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



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

这里有一个例子:

  • 假设我有一个查询"a B C"
  • 此插件将把此查询转换为以下内容:
    • 和(A,B,C)+或(A,B,C)*0.000001

我通过在Solr中编写一个简单的运行时插件实现了这一点,但不知道如何在ElasticSearch中做到这一点。

任何指针都将不胜感激。

如果您正在研究boosting,则无需编写插件,只需使用查询DSL(带有should子句的bool查询)或function_score查询即可获得更高级的用例。如果这还不够,你可以通过插件编写自己的查询,但这是为了更高级的用例,你通常不需要这样做。

最新更新