elasticsearch - 根据字段的存在提升文档

标签 elasticsearch

是否可以根据字段的存在来提高文档的相关性?我读过 function score queries但我想知道如何考虑存在 - 根据我的理解,field_value_factor 适用于字段的内容,而不是它的存在。

最佳答案

函数得分查询是可能的,但是得分函数在计算上是昂贵的并且不是必需的(请记住下面使用的 exists 查询在 2014 年可能不可用)。

可以执行以下操作:

POST _search
{
  "query": {
    "bool" : {
      "should" : [
        { 
          match_all: {
            "boost": 10
          } 
        },
        {
         "exists": {
           "field": "some_field_that_should_exist"
          }
        }           
      ],
      "minimum_should_match" : 2,
    }
  }
}

如果 should 匹配最少为 2,我们说两个子句都必须匹配才能使 should 子句匹配。这可以防止提升应用于没有该字段的文档。

关于elasticsearch - 根据字段的存在提升文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23563768/

相关文章:

ruby-on-rails - 如何使用 Searchkick/ElasticSearch 获取嵌套的分面

elasticsearch - 升级到 Elastic Search NEST 7.0.1 破坏了检查索引是否存在的代码

elasticsearch - 在排序之前映射字段的值

amazon-web-services - 尝试将数据索引到 Amazon elasticsearch

node.js - 如何从 Node JS 访问 AWS Elasticsearch

mysql - ElasticSearch river JDBC MySQL 不删除记录

elasticsearch - Elasticsearch索引已损坏

elasticsearch - 在Elasticsearch中,如何在没有整个对象的情况下返回整个嵌套字段?

elasticsearch - 检查Elasticsearch中不存在的文档

Elasticsearch:摄取节点 - 使用脚本处理器填充索引字段