ElasticSearch vs. Solr search/update workflow plugability


(Bob Lawson) #1

I just completed a project to extend Solr as follows:

  1. subclassed the QueryComponent class to add a mandatory filter query (fq) for all user searches

  2. subclassed the UpdateRequestProcessor class to add fields to a document prior to indexing

I then wired up these custom classes in solrconfig.xml and placed my jar file in a lib directory under solr home. Everything ran great. So easy.

Question: Can I do the equivalent in ElasticSearch 4.3.1? I ask because I came across this comparison, which claims that ElasticSearch 2.0 does not provide Pluggable search/update workflow as I described above with Solr. I haven't found any comparisons for more recent versions, nor have I found anything in the ElasticSearch documentation that answers my question.

Thanks in advance for your help!


(Adrien Grand) #2

It is true that Elasticsearch's extension points are completely different from Solr's. Some things that you can do with Solr can't be done with Elasticsearch and vice-versa.

  1. could easily be done with a filtered alias https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-aliases.html#filtered

  2. is more complicated: there is the mapping transform feature https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-transform.html but this has been deprecated because getting the source document out of sync with the document that was passed to the indexing chain created some corner cases. Hopefully there will be something better to replace it soon. Otherwise you can do it externally, eg. using logstash (which is something that LOTs of users do)


(Bob Lawson) #3

Adrien, thank you SO MUCH for responding. Your suggestions are excellent, and I will pursue them. Thanks again and happy holidays!


(system) #4