<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom"><title>Simon Willison's Weblog: elasticsearch</title><link href="http://simonwillison.net/" rel="alternate"/><link href="http://simonwillison.net/tags/elasticsearch.atom" rel="self"/><id>http://simonwillison.net/</id><updated>2025-05-26T07:23:17+00:00</updated><author><name>Simon Willison</name></author><entry><title>GitHub Issues search now supports nested queries and boolean operators: Here’s how we (re)built it</title><link href="https://simonwillison.net/2025/May/26/github-issues-search/#atom-tag" rel="alternate"/><published>2025-05-26T07:23:17+00:00</published><updated>2025-05-26T07:23:17+00:00</updated><id>https://simonwillison.net/2025/May/26/github-issues-search/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.blog/developer-skills/application-development/github-issues-search-now-supports-nested-queries-and-boolean-operators-heres-how-we-rebuilt-it/"&gt;GitHub Issues search now supports nested queries and boolean operators: Here’s how we (re)built it&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
GitHub Issues got a significant search upgrade &lt;a href="https://simonwillison.net/2025/Jan/16/evolving-github-issues/"&gt;back in January&lt;/a&gt;. Deborah Digges provides some behind the scene details about how it works and how they rolled it out.&lt;/p&gt;
&lt;p&gt;The signature new feature is complex boolean logic: you can now search for things like &lt;code&gt;is:issue state:open author:rileybroughten (type:Bug OR type:Epic)&lt;/code&gt;, up to five levels of nesting deep.&lt;/p&gt;
&lt;p&gt;Queries are parsed into an AST using the Ruby &lt;a href="https://github.com/kschiess/parslet"&gt;parslet&lt;/a&gt; PEG grammar library. The AST is then compiled into a nested Elasticsearch &lt;code&gt;bool&lt;/code&gt; JSON query.&lt;/p&gt;
&lt;p&gt;GitHub Issues search deals with around 2,000 queries a second so robust testing is extremely important! The team rolled it out invisibly to 1% of live traffic, running the new implementation via a queue and competing the number of results returned to try and spot any degradations compared to the old production code.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/elasticsearch"&gt;elasticsearch&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/github"&gt;github&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ops"&gt;ops&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/parsing"&gt;parsing&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ruby"&gt;ruby&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/scaling"&gt;scaling&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/search"&gt;search&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/github-issues"&gt;github-issues&lt;/a&gt;&lt;/p&gt;



</summary><category term="elasticsearch"/><category term="github"/><category term="ops"/><category term="parsing"/><category term="ruby"/><category term="scaling"/><category term="search"/><category term="github-issues"/></entry><entry><title>Elasticsearch is open source, again</title><link href="https://simonwillison.net/2024/Aug/29/elasticsearch-is-open-source-again/#atom-tag" rel="alternate"/><published>2024-08-29T20:50:41+00:00</published><updated>2024-08-29T20:50:41+00:00</updated><id>https://simonwillison.net/2024/Aug/29/elasticsearch-is-open-source-again/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.elastic.co/blog/elasticsearch-is-open-source-again"&gt;Elasticsearch is open source, again&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Three and a half years ago, Elastic &lt;a href="https://www.elastic.co/blog/licensing-change"&gt;relicensed their core products&lt;/a&gt; from Apache 2.0 to dual-license under the Server Side Public License (SSPL) and the new Elastic License, neither of which were OSI-compliant open source licenses. They &lt;a href="https://www.elastic.co/blog/why-license-change-aws"&gt;explained this change&lt;/a&gt; as a reaction to AWS, who were offering a paid hosted search product that directly competed with Elastic's commercial offering.&lt;/p&gt;
&lt;p&gt;AWS were also sponsoring an "open distribution" alternative packaging of Elasticsearch, created in 2019 in response to Elastic releasing components of their package as the "x-pack" under alternative licenses. Stephen O'Grady &lt;a href="https://redmonk.com/sogrady/2019/03/15/cloud-open-source-powder-keg/"&gt;wrote about that at the time&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;AWS subsequently forked Elasticsearch entirely, creating the &lt;a href="https://en.wikipedia.org/wiki/OpenSearch_(software)"&gt;OpenSearch&lt;/a&gt; project in April 2021.&lt;/p&gt;
&lt;p&gt;Now Elastic have made another change: they're triple-licensing their core products, adding the OSI-complaint AGPL as the third option.&lt;/p&gt;
&lt;p&gt;This announcement of the change from Elastic creator Shay Banon directly addresses the most obvious conclusion we can make from this:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;“Changing the license was a mistake, and Elastic now backtracks from it”. We removed a lot of market confusion when we changed our license 3 years ago. And because of our actions, a lot has changed. It’s an entirely different landscape now. We aren’t living in the past. We want to build a better future for our users. It’s because we took action then, that we are in a position to take action now.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;By "market confusion" I think he means the trademark disagreement (&lt;a href="https://www.elastic.co/blog/elastic-and-amazon-reach-agreement-on-trademark-infringement-lawsuit"&gt;later resolved&lt;/a&gt;) with AWS, who no longer sell their own Elasticsearch but sell OpenSearch instead.&lt;/p&gt;
&lt;p&gt;I'm not entirely convinced by this explanation, but if it kicks off a trend of other no-longer-open-source companies returning to the fold I'm all for it!

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="https://news.ycombinator.com/item?id=41394797"&gt;Hacker News&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/aws"&gt;aws&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/elasticsearch"&gt;elasticsearch&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/open-source"&gt;open-source&lt;/a&gt;&lt;/p&gt;



</summary><category term="aws"/><category term="elasticsearch"/><category term="open-source"/></entry><entry><title>The Cloud and Open Source Powder Keg</title><link href="https://simonwillison.net/2019/Mar/17/the-cloud-and-open-source-powder-keg/#atom-tag" rel="alternate"/><published>2019-03-17T19:08:18+00:00</published><updated>2019-03-17T19:08:18+00:00</updated><id>https://simonwillison.net/2019/Mar/17/the-cloud-and-open-source-powder-keg/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://redmonk.com/sogrady/2019/03/15/cloud-open-source-powder-keg/"&gt;The Cloud and Open Source Powder Keg&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Stephen O’Grady’s analysis of the Elastic v.s. AWS situation, where Elastic started mixing their open source and non-open source code together and Amazon responded by releasing their own forked “open distribution for Elasticsearch”. World War One analogies included!

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="https://twitter.com/jessfraz/status/1107042969004265473"&gt;@jessfraz&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/aws"&gt;aws&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/elasticsearch"&gt;elasticsearch&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/open-source"&gt;open-source&lt;/a&gt;&lt;/p&gt;



</summary><category term="aws"/><category term="elasticsearch"/><category term="open-source"/></entry><entry><title>django-zombodb</title><link href="https://simonwillison.net/2019/Feb/13/django-zombodb/#atom-tag" rel="alternate"/><published>2019-02-13T22:14:53+00:00</published><updated>2019-02-13T22:14:53+00:00</updated><id>https://simonwillison.net/2019/Feb/13/django-zombodb/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/vintasoftware/django-zombodb"&gt;django-zombodb&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
The hardest part of working with an external search engine like Elasticsearch is always keeping that index synchronized with your relational database. ZomboDB is a PostgreSQL extension which lets you create a new type of index backed by an external Elasticsearch cluster. Updated rows will be pushed to the index automatically, and custom SQL syntax can then be used to execute searches. django-zombodb is a brand new library by Flávio Juvenal which integrates ZomboDB directly into the Django ORM, letting you add Elasticsearch-backed functionality with just a few lines of extra configuration. It even includes custom Django migrations for enabling the extension in PostgreSQL!

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="https://twitter.com/simonw/status/1095808184575352832"&gt;@flaviojuvenal&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/django"&gt;django&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/elasticsearch"&gt;elasticsearch&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/postgresql"&gt;postgresql&lt;/a&gt;&lt;/p&gt;



</summary><category term="django"/><category term="elasticsearch"/><category term="postgresql"/></entry><entry><title>elasticsearch-dump</title><link href="https://simonwillison.net/2018/Apr/9/elasticsearch-dump/#atom-tag" rel="alternate"/><published>2018-04-09T22:10:36+00:00</published><updated>2018-04-09T22:10:36+00:00</updated><id>https://simonwillison.net/2018/Apr/9/elasticsearch-dump/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/taskrabbit/elasticsearch-dump"&gt;elasticsearch-dump&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Neat open source utility by TaskRabbit for importing and exporting data in bulk from Elasticsearch. It can copy data from one Elasticsearch cluster directly to another or to an intermediary file, making it a swiss-army knife for migrating data around. I successfully used the “docker run” incantation to execute it without needing to worry about having the correct version of Node.js installed.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/elasticsearch"&gt;elasticsearch&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/nodejs"&gt;nodejs&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/docker"&gt;docker&lt;/a&gt;&lt;/p&gt;



</summary><category term="elasticsearch"/><category term="nodejs"/><category term="docker"/></entry><entry><title>Building a Full-Text Search App Using Docker and Elasticsearch</title><link href="https://simonwillison.net/2018/Feb/1/docker-elasticsearch/#atom-tag" rel="alternate"/><published>2018-02-01T15:41:03+00:00</published><updated>2018-02-01T15:41:03+00:00</updated><id>https://simonwillison.net/2018/Feb/1/docker-elasticsearch/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://blog.patricktriest.com/text-search-docker-elasticsearch/"&gt;Building a Full-Text Search App Using Docker and Elasticsearch&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Deep, comprehensive tutorial from Patrick Triest showing how to use docker-compose to run three containers (Node API, nginx static content, elasticsearch) and then use that to build a neat Vue.js web search UI against 100 books from Project Gutenberg.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/elasticsearch"&gt;elasticsearch&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/nodejs"&gt;nodejs&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/docker"&gt;docker&lt;/a&gt;&lt;/p&gt;



</summary><category term="elasticsearch"/><category term="nodejs"/><category term="docker"/></entry><entry><title>Quoting Jason Tedor</title><link href="https://simonwillison.net/2017/Nov/14/elasticsearch/#atom-tag" rel="alternate"/><published>2017-11-14T22:40:00+00:00</published><updated>2017-11-14T22:40:00+00:00</updated><id>https://simonwillison.net/2017/Nov/14/elasticsearch/#atom-tag</id><summary type="html">
    &lt;blockquote cite="https://news.ycombinator.com/item?id=15699709"&gt;&lt;p&gt;We are actively developing cross datacenter replication (internally we are calling it "cross cluster replication" so you will likely see it referred to this in the future but of course this is subject to change). I can not give a timeframe, but it is one of the top features on the Elasticsearch roadmap.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p class="cite"&gt;&amp;mdash; &lt;a href="https://news.ycombinator.com/item?id=15699709"&gt;Jason Tedor&lt;/a&gt;&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/elasticsearch"&gt;elasticsearch&lt;/a&gt;&lt;/p&gt;



</summary><category term="elasticsearch"/></entry><entry><title>gillyb/sensitive: A native desktop version of the kibana sense plugin</title><link href="https://simonwillison.net/2017/Nov/4/sensitive/#atom-tag" rel="alternate"/><published>2017-11-04T19:35:41+00:00</published><updated>2017-11-04T19:35:41+00:00</updated><id>https://simonwillison.net/2017/Nov/4/sensitive/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/gillyb/sensitive"&gt;gillyb/sensitive: A native desktop version of the kibana sense plugin&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
I love using the Sense UI for developing against Elasticsearch, but it’s infuriatingly hard to obtain these days. You can install it as a Kibana plugin but I work with multiple Elasticsearch instances and I don’t want to have to get it installed on all of them. Until recently I was using a Chrome extension for it, but that’s now been disabled as containing malware and removed from the Chrome extension store. I’ve now switched to Sensitive, which packages Sense up as a native OS X application using Electron.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/elasticsearch"&gt;elasticsearch&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/electron"&gt;electron&lt;/a&gt;&lt;/p&gt;



</summary><category term="elasticsearch"/><category term="electron"/></entry><entry><title>The denormalized query engine design pattern</title><link href="https://simonwillison.net/2017/Aug/16/denormalized-query-engine/#atom-tag" rel="alternate"/><published>2017-08-16T22:49:22+00:00</published><updated>2017-08-16T22:49:22+00:00</updated><id>https://simonwillison.net/2017/Aug/16/denormalized-query-engine/#atom-tag</id><summary type="html">
    &lt;p&gt;I presented this talk &lt;a href="https://2017.djangocon.us/talks/the-denormalized-query-engine-design-pattern/"&gt;at DjangoCon 2017&lt;/a&gt; in Spokane, Washington. Below is the abstract, the slides and the YouTube video of the talk.&lt;/p&gt;
&lt;h4 id="abstract"&gt;Abstract&lt;/h4&gt;
&lt;p&gt;Most web applications need to offer search functionality. Open source tools like Solr and Elasticsearch are a powerful option for building custom search engines… but it turns out they can be used for way more than just search.&lt;/p&gt;
&lt;p&gt;By treating your search engine as a denormalization layer, you can use it to answer queries that would be too expensive to answer using your core relational database. Questions like “What are the top twenty tags used by my users from Spain?” or “What are the most common times of day for events to start?” or “Which articles contain addresses within 500 miles of Toronto?”.&lt;/p&gt;
&lt;p&gt;With the denormalized query engine design pattern, modifications to relational data are published to a denormalized schema in Elasticsearch or Solr. Data queries can then be answered using either the relational database or the search engine, depending on the nature of the specific query. The search engine returns database IDs, which are inflated from the database before being displayed to a user - ensuring that users never see stale data even if the search engine is not 100% up to date with the latest changes. This opens up all kinds of new capabilities for slicing, dicing and exploring data.&lt;/p&gt;
&lt;p&gt;In this talk, I’ll be illustrating this pattern by focusing on Elasticsearch - showing how it can be used with Django to bring new capabilities to your application. I’ll discuss the challenge of keeping data synchronized between a relational database and a search engine, and show examples of features that become much easier to build once you have this denormalization layer in place.&lt;/p&gt;

&lt;h4 id="denorm-query-video"&gt;Video&lt;/h4&gt;

&lt;iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/NzcvewgqYog" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="allowfullscreen"&gt;
&lt;/iframe&gt;

&lt;h4 id="denorm-query-slides"&gt;Slides&lt;/h4&gt;

&lt;iframe class="speakerdeck-iframe" style="border: 0px; background: rgba(0, 0, 0, 0.1) padding-box; margin: 0px; padding: 0px; border-radius: 6px; box-shadow: rgba(0, 0, 0, 0.2) 0px 5px 40px; width: 100%; height: auto; aspect-ratio: 560 / 420;" frameborder="0" src="https://speakerdeck.com/player/465a2d2f25bc449ebdafd19247ec9712" title="The denormalized query engine design pattern" allowfullscreen="true" data-ratio="1.3333333333333333"&gt;
&lt;/iframe&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/architecture"&gt;architecture&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/definitions"&gt;definitions&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/denormalisation"&gt;denormalisation&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/design-patterns"&gt;design-patterns&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/django"&gt;django&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/djangocon"&gt;djangocon&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/elasticsearch"&gt;elasticsearch&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/my-talks"&gt;my-talks&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="architecture"/><category term="definitions"/><category term="denormalisation"/><category term="design-patterns"/><category term="django"/><category term="djangocon"/><category term="elasticsearch"/><category term="my-talks"/></entry><entry><title>elasticsearch: Percolator</title><link href="https://simonwillison.net/2011/Feb/8/elasticsearch/#atom-tag" rel="alternate"/><published>2011-02-08T23:16:00+00:00</published><updated>2011-02-08T23:16:00+00:00</updated><id>https://simonwillison.net/2011/Feb/8/elasticsearch/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.elasticsearch.org/blog/2011/02/08/percolator.html"&gt;elasticsearch: Percolator&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Another fascinating elasticsearch feature: Percolator lets you register searches with your elasticsearch cluster, then pass in a document and have the matching query IDs returned. It’s an upside down search engine. I’m sure there are some very neat things you could build with this, I just haven’t figured out what they are just yet.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/elasticsearch"&gt;elasticsearch&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/search"&gt;search&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/recovered"&gt;recovered&lt;/a&gt;&lt;/p&gt;



</summary><category term="elasticsearch"/><category term="search"/><category term="recovered"/></entry><entry><title>ElasticSearch memcached module</title><link href="https://simonwillison.net/2010/May/15/elasticsearch/#atom-tag" rel="alternate"/><published>2010-05-15T10:17:00+00:00</published><updated>2010-05-15T10:17:00+00:00</updated><id>https://simonwillison.net/2010/May/15/elasticsearch/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.elasticsearch.com/docs/elasticsearch/modules/memcached/"&gt;ElasticSearch memcached module&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Fascinating idea: the ElasticSearch search server provides an optional memcached protocol plugin for added performance which maps simple HTTP to memcached. GET is mapped to memcached get commands, POST is mapped to set commands. This means you can use any memcached client to communicate with the search server.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/elasticsearch"&gt;elasticsearch&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/http"&gt;http&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/memcached"&gt;memcached&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/protocol"&gt;protocol&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/recovered"&gt;recovered&lt;/a&gt;&lt;/p&gt;



</summary><category term="elasticsearch"/><category term="http"/><category term="memcached"/><category term="protocol"/><category term="recovered"/></entry><entry><title>Search Engine Time Machine</title><link href="https://simonwillison.net/2010/Feb/17/elasticsearch/#atom-tag" rel="alternate"/><published>2010-02-17T22:32:55+00:00</published><updated>2010-02-17T22:32:55+00:00</updated><id>https://simonwillison.net/2010/Feb/17/elasticsearch/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.elasticsearch.com/blog/2010/02/16/searchengine_time_machine.html"&gt;Search Engine Time Machine&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Detailed explanation of how ElasticSearch provides high availability, through clever sharding and replication strategies and configurable gateways for long-term persistent storage.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/elasticsearch"&gt;elasticsearch&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/highavailability"&gt;highavailability&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/scaling"&gt;scaling&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/search"&gt;search&lt;/a&gt;&lt;/p&gt;



</summary><category term="elasticsearch"/><category term="highavailability"/><category term="scaling"/><category term="search"/></entry><entry><title>ElasticSearch: Your Data, Your Search</title><link href="https://simonwillison.net/2010/Feb/12/elasticsearch/#atom-tag" rel="alternate"/><published>2010-02-12T15:22:09+00:00</published><updated>2010-02-12T15:22:09+00:00</updated><id>https://simonwillison.net/2010/Feb/12/elasticsearch/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.elasticsearch.com/blog/2010/02/12/yourdatayoursearch.html"&gt;ElasticSearch: Your Data, Your Search&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
A neat example of how ElasticSearch’s schemaless indexes and native JSON support make it ridiculously easy to index different types of data and run queries across them.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/elasticsearch"&gt;elasticsearch&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/java"&gt;java&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/json"&gt;json&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/schemaless"&gt;schemaless&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/search"&gt;search&lt;/a&gt;&lt;/p&gt;



</summary><category term="elasticsearch"/><category term="java"/><category term="json"/><category term="schemaless"/><category term="search"/></entry><entry><title>Elastic Search</title><link href="https://simonwillison.net/2010/Feb/11/elastic/#atom-tag" rel="alternate"/><published>2010-02-11T18:33:14+00:00</published><updated>2010-02-11T18:33:14+00:00</updated><id>https://simonwillison.net/2010/Feb/11/elastic/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.elasticsearch.com/"&gt;Elastic Search&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Solr has competition! Like Solr, Elastic Search provides a RESTful JSON HTTP interface to Lucene. The focus here is on distribution, auto-sharding and high availability. It’s even easier to get started with than Solr, partly due to the focus on providing a schema-less document store, but it’s currently missing out on a bunch of useful Solr features (a web interface and faceting are the two that stand out). The high availability features look particularly interesting. UPDATE: I was incorrect, basic faceted queries are already supported.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="http://www.elasticsearch.com/blog/2010/02/08/youknowforsearch.html"&gt;ElasticSearch blog&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/elasticsearch"&gt;elasticsearch&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/http"&gt;http&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/java"&gt;java&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/json"&gt;json&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/lucene"&gt;lucene&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/rest"&gt;rest&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/scaling"&gt;scaling&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/search"&gt;search&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/sharding"&gt;sharding&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/solr"&gt;solr&lt;/a&gt;&lt;/p&gt;



</summary><category term="elasticsearch"/><category term="http"/><category term="java"/><category term="json"/><category term="lucene"/><category term="rest"/><category term="scaling"/><category term="search"/><category term="sharding"/><category term="solr"/></entry></feed>