use*_*936 8 field elasticsearch
我有以下查询:
'{"query": {"query_string": {"query": "ABC"}'
Run Code Online (Sandbox Code Playgroud)
这将搜索给定 index\type ex 中的所有字段。Mytype 有 field1、field2、field3 这将匹配“ABC”到 field1、field2、field3
我需要优先排序字段排名的 3 个字段上放置了相等的值,所以假设优先级应该是 field2、field3、field1
如何修改我的搜索以设置字段排名/优先级?
在我的研究中,我看到了 _score,但它似乎用于对每个文档而不是字段进行优先级排序。
这是更新的 Elasticsearch 版本的更新。像这样的查询应该根据各自的字段内容提升结果:
GET /_search
{
"query":{
"simple_query_string" : {
"query": "ABC",
"fields": [
"field2^3",
"field3^2",
"field1^1"]
}
}
}
Run Code Online (Sandbox Code Playgroud)
注意field2后面的“^3” ,这会提升结果,所以如果在所有字段中找到“ABC”,它们将被排序为:
小智 4
使用 boost 查询并根据您想要的优先级对字段进行加权: https://www.elastic.co/guide/en/elasticsearch/guide/current/_boosting_query_clauses.html
| 归档时间: |
|
| 查看次数: |
10787 次 |
| 最近记录: |