我有以下查询:
'{"query": {"query_string": {"query": "ABC"}'
这将搜索给定index \ type中的所有字段 恩。 Mytype有field1,field2,field3 这将匹配" ABC"到field1,field2,field3
3个字段的等值 我需要优先考虑现场排名 所以我们要说优先级应该是field2,field3,field1
如何修改搜索以设置字段排名/优先级?
在我的研究中,我看到了_score,但看起来它用于优先考虑每个文档而不是字段。
答案 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”,则它们的排序方式为: