Elasticsearch中是否有等效的Solr RequestHandler?

时间:2016-06-11 09:28:29

标签: elasticsearch solr

我目前正在评估是否可以将基于Solr的后端移至Elasticsearch。

但是,我似乎无法解决的问题是,如果在Elasticsearch中Solr中配置了自定义请求处理程序(如在solrconfig.xml中配置的那样),则可以使用它。

对于上下文,在我们的Solr配置中,我们有许多静态定义的请求处理程序,其中包含一组预配置的facet,ranged facet,facet pivotots。类似于下面的东西,在solrconfig.xml中配置:

<requestHandler name="/foo" class="solr.SearchHandler">
    <lst name="defaults">
        <str name="fl">
           field1,
           field2
        </fl>
        <str name="facet.field">bar</str>
        <str name='facet.range'>range_facet</str>
        <str name='f.range_facet.facet.range.start'>0</str>
        <str name='f.range_facet.facet.range.end'>10</str>
        <str name='f.range_facet.facet.range.gap'>1</str>
    </lst>
</requestHandler>

然后,我可以直接从RequestHandler获取一组文档,类似于http://solr-host:8983/solr/collection-name/foo?q=*:* 并且Solr将返回仅包含所需字段和构面的文档集。从根本上说,执行查询的应用程序不需要知道(或配置为)在查询时请求所有返回的元素。

我的问题是 - 在Elasticsearch中,是否有能力配置一个只返回所需聚合和/或字段的端点,而不必在查询时将这些聚合和/或字段发布到API?

1 个答案:

答案 0 :(得分:2)

有一篇很好的文章,https://sematext.com/blog/2014/04/29/parametrizing-queries-in-solr-and-elasticsearch/。弹性搜索基本上使用模板代替处理程序来进行与搜索相关的查询调用。存储的模板数量也可供使用。请参阅此处的文档Template Query

相关问题