{"id":26851,"date":"2024-04-02T11:15:37","date_gmt":"2024-04-02T09:15:37","guid":{"rendered":"https:\/\/www.codemotion.com\/magazine\/?p=26851"},"modified":"2024-04-04T15:32:34","modified_gmt":"2024-04-04T13:32:34","slug":"oramasearch-your-new-favorite-search-engine","status":"publish","type":"post","link":"https:\/\/www.codemotion.com\/magazine\/backend\/oramasearch-your-new-favorite-search-engine\/","title":{"rendered":"OramaSearch: Your New Favorite Search Engine"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\" id=\"h-what-is-oramasearch\">What Is OramaSearch<\/h2>\n\n\n\n<p>Welcome to OpenDev Explorer, where I explore the Open Source world with an eye on <strong>developer experience<\/strong>. I am Riccardo (aka TheZal), and today I will talk to you about OramaSearch, an open-source search engine with a &#8220;battery included&#8221; and zero dependencies.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-general-overview\">General Overview<\/h2>\n\n\n\n<p>&#8220;<em>It&#8217;s not the finding, but the searching<\/em>&#8221; is one of the mottos of OramaSearch, an open-source search engine ready out of the box and with zero dependencies. Originally named Lyra as an exercise for a talk by <strong>Michele Riva<\/strong> to explain how a full-text search engine works, it has since become a real project thanks to the feedback from the community (<a href=\"https:\/\/github.com\/askorama\/orama\" class=\"ek-link\">5800 stars on GitHub and thousands of downloads in a few months)<\/a> who found in Orama Search a powerful and optimized search engine that is simple to use and able to meet all the community&#8217;s requests.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-instruction-manual\">Instruction Manual<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-installation\">Installation<\/h3>\n\n\n\n<p>Installing OramaSearch is very simple; it is available on all major package managers (npm, yarn, pnpm) and can be installed with a simple command:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">npm<\/span> <span class=\"hljs-selector-tag\">i<\/span> <span class=\"hljs-keyword\">@orama<\/span>\/orama<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Or you can directly import it into a browser module:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">html<\/span>&gt;<\/span>\n  <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">body<\/span>&gt;<\/span>\n    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">script<\/span> <span class=\"hljs-attr\">type<\/span>=<span class=\"hljs-string\">\"module\"<\/span>&gt;<\/span><span class=\"javascript\">\n      <span class=\"hljs-keyword\">import<\/span> { create, search, insert } <span class=\"hljs-keyword\">from<\/span> <span class=\"hljs-string\">'https:\/\/unpkg.com\/@orama\/orama@latest\/dist\/index.js'<\/span>\n      <span class=\"hljs-comment\">\/\/ ...<\/span>\n    <\/span><span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">script<\/span>&gt;<\/span>\n  <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">body<\/span>&gt;<\/span>\n<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">html<\/span>&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\" id=\"h-usage\">Usage<\/h2>\n\n\n\n<p>First, you need to create a new instance (from now on database) with an index schema.<\/p>\n\n\n\n<p>The schema represents the searchable properties of the document to be inserted into the database. It is also possible to have additional unindexed properties, as long as these are not needed in the search.<\/p>\n\n\n\n<p>An example of usage (taken directly from the official documentation) is as follows:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-keyword\">import<\/span> { create, search, insert } <span class=\"hljs-keyword\">from<\/span> <span class=\"hljs-string\">'@orama\/orama'<\/span>\n\n<span class=\"hljs-keyword\">const<\/span> db = <span class=\"hljs-keyword\">await<\/span> create({\n  <span class=\"hljs-attr\">schema<\/span>: {\n    <span class=\"hljs-attr\">name<\/span>: <span class=\"hljs-string\">'string'<\/span>,\n    <span class=\"hljs-attr\">description<\/span>: <span class=\"hljs-string\">'string'<\/span>,\n    <span class=\"hljs-attr\">price<\/span>: <span class=\"hljs-string\">'number'<\/span>,\n    <span class=\"hljs-attr\">meta<\/span>: {\n      <span class=\"hljs-attr\">rating<\/span>: <span class=\"hljs-string\">'number'<\/span>,\n    },\n  },\n})\n\n<span class=\"hljs-keyword\">await<\/span> insert(db, {\n  <span class=\"hljs-attr\">name<\/span>: <span class=\"hljs-string\">'Wireless Headphones'<\/span>,\n  <span class=\"hljs-attr\">description<\/span>: <span class=\"hljs-string\">'Experience immersive sound quality with these noise-cancelling wireless headphones.'<\/span>,\n  <span class=\"hljs-attr\">price<\/span>: <span class=\"hljs-number\">99.99<\/span>,\n  <span class=\"hljs-attr\">meta<\/span>: {\n    <span class=\"hljs-attr\">rating<\/span>: <span class=\"hljs-number\">4.5<\/span>,\n  },\n})\n\n<span class=\"hljs-keyword\">const<\/span> searchResult = <span class=\"hljs-keyword\">await<\/span> search(db, {\n  <span class=\"hljs-attr\">term<\/span>: <span class=\"hljs-string\">'headphones'<\/span>,\n})\n\n<span class=\"hljs-built_in\">console<\/span>.log(searchResult.hits.map(<span class=\"hljs-function\">(<span class=\"hljs-params\">hit<\/span>) =&gt;<\/span> hit.document))<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\" id=\"h-the-developer-experience-with-oramasearch\">The Developer Experience With OramaSearch<\/h2>\n\n\n\n<p>The greatest success of Orama Search is that the community turned it into a real project (and product). The community has acclaimed Orama thanks to its fantastic developer experience and simplicity of use.<\/p>\n\n\n\n<p>Several points improve the developer experience of OramaSearch:<\/p>\n\n\n\n<p>1 &#8211; The documentation is clear and well-done<br>2 &#8211; The community is very active and responds very quickly to questions asked on GitHub or Slack<br>3 &#8211; The library is very well written and allows you to start using it in a few minutes<br>4 &#8211; Orama provides several official plugins that allow the use of Orama in different contexts (such as on Astro)<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-the-extra-mile\">The Extra Mile<\/h2>\n\n\n\n<p>OramaSearch has some features that give it an extra mile, making it a very powerful and flexible search engine.<\/p>\n\n\n\n<p>Having been designed to contain a vector database inside, OramaSearch natively implements vector search of elements.<\/p>\n\n\n\n<p>It also implements geo-search functionality, allowing searching for elements based on their geographical location.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-comparison-with-the-status-quo\">Comparison with the Status Quo<\/h2>\n\n\n\n<p>There are several full-text search engines (such as ElasticSearch), but I don&#8217;t think there is one on the market that has the same arsenal as OramaSearch.<\/p>\n\n\n\n<p>However, I am sure that at the moment there is no utility as powerful as Orama that shares its simplicity of use, making Orama Search unique in its kind.<\/p>\n\n\n\n<p>Regarding search speed, Orama Search is one of the fastest search engines I have ever tried, and this is another point in its favor.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Exploring OramaSearch with Michele Riva - Indexing and searching blog posts\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube-nocookie.com\/embed\/WO1KqYD2akQ?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>What Is OramaSearch Welcome to OpenDev Explorer, where I explore the Open Source world with an eye on developer experience. I am Riccardo (aka TheZal), and today I will talk to you about OramaSearch, an open-source search engine with a &#8220;battery included&#8221; and zero dependencies. General Overview &#8220;It&#8217;s not the finding, but the searching&#8221; is&#8230; <a class=\"more-link\" href=\"https:\/\/www.codemotion.com\/magazine\/backend\/oramasearch-your-new-favorite-search-engine\/\">Read more<\/a><\/p>\n","protected":false},"author":193,"featured_media":26790,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","_uag_custom_page_level_css":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[36],"tags":[11962],"collections":[],"class_list":{"0":"post-26851","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-backend","8":"tag-oramasearch","9":"entry"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.9 (Yoast SEO v26.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>OramaSearch: Your New Favorite Search Engine<\/title>\n<meta name=\"description\" content=\"OramaSearch is a full-text search engine with something extra. Read the article to discover all the details.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.codemotion.com\/magazine\/backend\/oramasearch-your-new-favorite-search-engine\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"OramaSearch: Your New Favorite Search Engine\" \/>\n<meta property=\"og:description\" content=\"OramaSearch is a full-text search engine with something extra. Read the article to discover all the details.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.codemotion.com\/magazine\/backend\/oramasearch-your-new-favorite-search-engine\/\" \/>\n<meta property=\"og:site_name\" content=\"Codemotion Magazine\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Codemotion.Italy\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-04-02T09:15:37+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-04T13:32:34+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/03\/oramasearch.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"720\" \/>\n\t<meta property=\"og:image:height\" content=\"405\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"TheZal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:site\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"TheZal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/backend\/oramasearch-your-new-favorite-search-engine\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/backend\/oramasearch-your-new-favorite-search-engine\/\"},\"author\":{\"name\":\"TheZal\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/f3f099160f0d8f2f80c5e4f3c8d53503\"},\"headline\":\"OramaSearch: Your New Favorite Search Engine\",\"datePublished\":\"2024-04-02T09:15:37+00:00\",\"dateModified\":\"2024-04-04T13:32:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/backend\/oramasearch-your-new-favorite-search-engine\/\"},\"wordCount\":502,\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/backend\/oramasearch-your-new-favorite-search-engine\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/03\/oramasearch.webp\",\"keywords\":[\"OramaSearch\"],\"articleSection\":[\"Backend\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/backend\/oramasearch-your-new-favorite-search-engine\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/backend\/oramasearch-your-new-favorite-search-engine\/\",\"name\":\"OramaSearch: Your New Favorite Search Engine\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/backend\/oramasearch-your-new-favorite-search-engine\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/backend\/oramasearch-your-new-favorite-search-engine\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/03\/oramasearch.webp\",\"datePublished\":\"2024-04-02T09:15:37+00:00\",\"dateModified\":\"2024-04-04T13:32:34+00:00\",\"description\":\"OramaSearch is a full-text search engine with something extra. Read the article to discover all the details.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/backend\/oramasearch-your-new-favorite-search-engine\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.codemotion.com\/magazine\/backend\/oramasearch-your-new-favorite-search-engine\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/backend\/oramasearch-your-new-favorite-search-engine\/#primaryimage\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/03\/oramasearch.webp\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/03\/oramasearch.webp\",\"width\":720,\"height\":405,\"caption\":\"OramaSearch\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/backend\/oramasearch-your-new-favorite-search-engine\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Backend\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/backend\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"OramaSearch: Your New Favorite Search Engine\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"name\":\"Codemotion Magazine\",\"description\":\"We code the future. Together\",\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\",\"name\":\"Codemotion\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"width\":225,\"height\":225,\"caption\":\"Codemotion\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Codemotion.Italy\/\",\"https:\/\/x.com\/CodemotionIT\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/f3f099160f0d8f2f80c5e4f3c8d53503\",\"name\":\"TheZal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/01\/avatar-100x100.png\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/01\/avatar-100x100.png\",\"caption\":\"TheZal\"},\"description\":\"Hello there! My name is Riccardo (aka TheZal), a passionate software engineer who loves to combine his passion for code with his love for fantasy realms like Dungeons and Dragons, Harry Potter, Star Wars, LOTR, etc., etc. I'm really into studying and exploring new technologies (with a lot of love for Open Source). I'm also a co-owner of a 12-year-old dachshund called Poldo, who is the mascot of my blog!\",\"sameAs\":[\"http:\/\/www.thezal.dev\"],\"url\":\"https:\/\/www.codemotion.com\/magazine\/author\/thezal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"OramaSearch: Your New Favorite Search Engine","description":"OramaSearch is a full-text search engine with something extra. Read the article to discover all the details.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.codemotion.com\/magazine\/backend\/oramasearch-your-new-favorite-search-engine\/","og_locale":"en_US","og_type":"article","og_title":"OramaSearch: Your New Favorite Search Engine","og_description":"OramaSearch is a full-text search engine with something extra. Read the article to discover all the details.","og_url":"https:\/\/www.codemotion.com\/magazine\/backend\/oramasearch-your-new-favorite-search-engine\/","og_site_name":"Codemotion Magazine","article_publisher":"https:\/\/www.facebook.com\/Codemotion.Italy\/","article_published_time":"2024-04-02T09:15:37+00:00","article_modified_time":"2024-04-04T13:32:34+00:00","og_image":[{"width":720,"height":405,"url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/03\/oramasearch.webp","type":"image\/webp"}],"author":"TheZal","twitter_card":"summary_large_image","twitter_creator":"@CodemotionIT","twitter_site":"@CodemotionIT","twitter_misc":{"Written by":"TheZal","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.codemotion.com\/magazine\/backend\/oramasearch-your-new-favorite-search-engine\/#article","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/backend\/oramasearch-your-new-favorite-search-engine\/"},"author":{"name":"TheZal","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/f3f099160f0d8f2f80c5e4f3c8d53503"},"headline":"OramaSearch: Your New Favorite Search Engine","datePublished":"2024-04-02T09:15:37+00:00","dateModified":"2024-04-04T13:32:34+00:00","mainEntityOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/backend\/oramasearch-your-new-favorite-search-engine\/"},"wordCount":502,"publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/backend\/oramasearch-your-new-favorite-search-engine\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/03\/oramasearch.webp","keywords":["OramaSearch"],"articleSection":["Backend"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.codemotion.com\/magazine\/backend\/oramasearch-your-new-favorite-search-engine\/","url":"https:\/\/www.codemotion.com\/magazine\/backend\/oramasearch-your-new-favorite-search-engine\/","name":"OramaSearch: Your New Favorite Search Engine","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/backend\/oramasearch-your-new-favorite-search-engine\/#primaryimage"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/backend\/oramasearch-your-new-favorite-search-engine\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/03\/oramasearch.webp","datePublished":"2024-04-02T09:15:37+00:00","dateModified":"2024-04-04T13:32:34+00:00","description":"OramaSearch is a full-text search engine with something extra. Read the article to discover all the details.","breadcrumb":{"@id":"https:\/\/www.codemotion.com\/magazine\/backend\/oramasearch-your-new-favorite-search-engine\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.codemotion.com\/magazine\/backend\/oramasearch-your-new-favorite-search-engine\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/backend\/oramasearch-your-new-favorite-search-engine\/#primaryimage","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/03\/oramasearch.webp","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/03\/oramasearch.webp","width":720,"height":405,"caption":"OramaSearch"},{"@type":"BreadcrumbList","@id":"https:\/\/www.codemotion.com\/magazine\/backend\/oramasearch-your-new-favorite-search-engine\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.codemotion.com\/magazine\/"},{"@type":"ListItem","position":2,"name":"Backend","item":"https:\/\/www.codemotion.com\/magazine\/backend\/"},{"@type":"ListItem","position":3,"name":"OramaSearch: Your New Favorite Search Engine"}]},{"@type":"WebSite","@id":"https:\/\/www.codemotion.com\/magazine\/#website","url":"https:\/\/www.codemotion.com\/magazine\/","name":"Codemotion Magazine","description":"We code the future. Together","publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.codemotion.com\/magazine\/#organization","name":"Codemotion","url":"https:\/\/www.codemotion.com\/magazine\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","width":225,"height":225,"caption":"Codemotion"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Codemotion.Italy\/","https:\/\/x.com\/CodemotionIT"]},{"@type":"Person","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/f3f099160f0d8f2f80c5e4f3c8d53503","name":"TheZal","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/01\/avatar-100x100.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/01\/avatar-100x100.png","caption":"TheZal"},"description":"Hello there! My name is Riccardo (aka TheZal), a passionate software engineer who loves to combine his passion for code with his love for fantasy realms like Dungeons and Dragons, Harry Potter, Star Wars, LOTR, etc., etc. I'm really into studying and exploring new technologies (with a lot of love for Open Source). I'm also a co-owner of a 12-year-old dachshund called Poldo, who is the mascot of my blog!","sameAs":["http:\/\/www.thezal.dev"],"url":"https:\/\/www.codemotion.com\/magazine\/author\/thezal\/"}]}},"featured_image_src":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/03\/oramasearch-600x400.webp","featured_image_src_square":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/03\/oramasearch-600x405.webp","author_info":{"display_name":"TheZal","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/thezal\/"},"uagb_featured_image_src":{"full":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/03\/oramasearch.webp",720,405,false],"thumbnail":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/03\/oramasearch-150x150.webp",150,150,true],"medium":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/03\/oramasearch-300x169.webp",300,169,true],"medium_large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/03\/oramasearch.webp",720,405,false],"large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/03\/oramasearch.webp",720,405,false],"1536x1536":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/03\/oramasearch.webp",720,405,false],"2048x2048":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/03\/oramasearch.webp",720,405,false],"small-home-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/03\/oramasearch-100x100.webp",100,100,true],"sidebar-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/03\/oramasearch-180x128.webp",180,128,true],"genesis-singular-images":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/03\/oramasearch.webp",720,405,false],"archive-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/03\/oramasearch-400x225.webp",400,225,true],"gb-block-post-grid-landscape":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/03\/oramasearch-600x400.webp",600,400,true],"gb-block-post-grid-square":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/03\/oramasearch-600x405.webp",600,405,true]},"uagb_author_info":{"display_name":"TheZal","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/thezal\/"},"uagb_comment_info":0,"uagb_excerpt":"What Is OramaSearch Welcome to OpenDev Explorer, where I explore the Open Source world with an eye on developer experience. I am Riccardo (aka TheZal), and today I will talk to you about OramaSearch, an open-source search engine with a &#8220;battery included&#8221; and zero dependencies. General Overview &#8220;It&#8217;s not the finding, but the searching&#8221; is&#8230;&hellip;","lang":"en","_links":{"self":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/26851","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/users\/193"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/comments?post=26851"}],"version-history":[{"count":3,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/26851\/revisions"}],"predecessor-version":[{"id":26931,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/26851\/revisions\/26931"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media\/26790"}],"wp:attachment":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media?parent=26851"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/categories?post=26851"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/tags?post=26851"},{"taxonomy":"collections","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/collections?post=26851"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}