在搜索中给文档字段不同的优先级

时间:2015-08-05 15:38:42

标签: elasticsearch field

我有以下查询:

'{"query": {"query_string": {"query": "ABC"}'

这将搜索给定index \ type中的所有字段 恩。 Mytype有field1,field2,field3 这将匹配" ABC"到field1,field2,field3

3个字段的等值 我需要优先考虑现场排名 所以我们要说优先级应该是field2,field3,field1

如何修改搜索以设置字段排名/优先级?

在我的研究中,我看到了_score,但看起来它用于优先考虑每个文档而不是字段。

2 个答案:

答案 0 :(得分:2)

使用提升查询并根据所需的优先级对字段进行加权:https://www.elastic.co/guide/en/elasticsearch/guide/current/_boosting_query_clauses.html

答案 1 :(得分:0)

这是更新的Elasticsearch版本的更新。 这样的查询应根据相应字段的内容提高结果:

GET /_search
{ 
  "query":{
    "simple_query_string" : {
      "query": "ABC",
      "fields": [
        "field2^3",
        "field3^2",
        "field1^1"]
    }
  }  
}

field2 之后注意“ ^ 3”,这将提高结果,因此,如果在所有字段中都找到“ ABC”,则它们的排序方式为:

  1. doc,其中 field2 包含“ ABC”
  2. doc,其中 field3 包含“ ABC”
  3. doc,其中 field1 包含“ ABC”
相关问题