我正在运行以下查询以在弹性搜索中提升multi_match的完全匹配。但是,没有得到预期的结果。
我的目标是按顺序提升:" java开发人员" > java AND developer> java OR开发人员
有人可以帮忙解决这个问题吗?需要知道如何在此处为match_phrase提供提升以及如何在match_phrase中添加剩余字段
"query": {
"bool": {
"must": [
{
"multi_match": {
"query": "java developer",
"fields": [
"title",
"content",
"tags",
"summary"
]
}
}
],
"should": [
{
"match_phrase": {
"title": "java developer"
}
},
{
"multi_match": {
"query": "java developer",
"fields": [
"title",
"content",
"tags",
"summary"
],
"operator": "and",
"boost": 4
}
}
]
}
}
非常感谢你的帮助。
答案 0 :(得分:15)
这对我有用:
"query": {
"bool": {
"must": [
{
"multi_match": {
"query": "java developer",
"fields": [
"title",
"content",
"tags",
"summary"
]
}
}
],
"should": [
{
"multi_match": {
"query": "java developer",
"fields": [
"title",
"content",
"tags",
"summary"
],
"type": "phrase",
"boost": 10
}
},
{
"multi_match": {
"query": "java developer",
"fields": [
"title",
"content",
"tags",
"summary"
],
"operator": "and",
"boost": 4
}
}
]
}
}
答案 1 :(得分:2)
将多重匹配查询的类型设置为Example:
"query": {
{
"multi_match" : {
"query": "java developer",
"type": "best_fields",
"fields": ["title", "content", "tags", "summary" ]
}
}
}