ElasticSearch:我可以像Solr一样编写查询时插件吗?

时间:2014-04-18 17:01:29

标签: elasticsearch

在Solr中,我能够编写一些查询时插件来进行某种查询重写(生成子查询等),但在ElasticSearch中我找不到类似的东西。例如,在Solr中我创建了一个插件,它创建一个OR子查询,对原始查询具有低乘法提升(默认情况下,原始查询是AND)。这里的要点是显示AND结果首先跟随OR结果,因为单独运行OR查询并不能保证所有查询字首先出现的结果。

以下是一个例子:

  • 我们说我有一个问题&A 39; A B C'
  • 此插件会将此查询转换为以下内容:
    • AND(A,B,C)+ OR(A,B,C)* 0.000001

我通过在Solr中编写一个简单的运行时插件来实现这一点,但不知道如何在ElasticSearch中执行此操作。

任何指针都会受到赞赏。

1 个答案:

答案 0 :(得分:0)

如果您正在考虑提升,您不需要编写插件,只需使用查询DSL(带有条款的bool查询)或function_score query来获取更高级的用例。如果这还不够,你总是可以通过插件编写自己的查询,但是对于更高级的用例,你通常不需要这样做。