有没有办法在 Elasticsearch 复合查询中只增加前 X 个子句匹配?

问题描述

我有一个 Elasticsearch 查询需要匹配一个术语字段,然后根据一个布尔字段增加一定数量的文档。

例如:我想要标题包含“水碗”的所有文档,并且在这些文档中,前 100 个“已验证”设置为 true 的文档应该被提升到顶部。基本设置是:

 {
   "query": {
     "bool": {
       "must": [
         { "match": { "title": { "query": "water bowl"} } }
       ],"should": [
        { 
            "match": {
                "verified":{
                    "query": true,"boost":6 
                }                   
            }
        }
       ]
     }
   }
 }

我正在努力解决的部分是那些被提升到列表顶部的部分,我只想提升 verified = true 的前 100 个结果。其余的应该按照 match 正常排名。

无论如何我都找不到在一个查询中执行此操作的任何想法?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...