Function 多匹配查询功能评分
我有一个弹性查询,其中包含一个多匹配查询Function 多匹配查询功能评分,function,
elasticsearch,relevance,Function,
elasticsearch,Relevance,我有一个弹性查询,其中包含一个多匹配查询 "multi_match" => [ "query" => "Will Smith" "type" => "best_fields" "fields" => [ "title^10", "description^7", "keywords", "name" ] "oper
"multi_match" => [
"query" => "Will Smith"
"type" => "best_fields"
"fields" => [
"title^10",
"description^7",
"keywords",
"name"
]
"operator" => "and"
]
我想为多匹配查询添加两个函数分数查询。。。
并对具有短语类型的多匹配查询赋予更高的权重。。还有一个权重较小的多匹配查询,它具有最佳\u字段
类型
我的意思是,与我搜索的关键词完全相同的文档必须具有更高的\u分数
我在bool中编写了查询和函数_分数,必须查询。。。但是结果没有改变
有人知道如何管理我的查询以获得更好的结果吗
谢谢。我可以告诉你我是如何做类似的事情的。请看下面的查询:
{
"query": {
"bool": {
"should": [
{
"multi_match": {
"query": "SEARCH TERM HERE",
"fields": [
"title^70",
"description^30",
"content^20"
],
"type": "phrase",
"boost": 100
}
},
{
"multi_match": {
"query": "SEARCH TERM HERE",
"fields": [
"title^30",
"description^25",
"content^10"
],
"type": "most_fields",
"minimum_should_match": "100%",
"boost": 50
}
},
{
"multi_match": {
"query": "SEARCH TERM HERE",
"fields": [
"title^25",
"description^15",
"content^10"
],
"type": "most_fields",
"minimum_should_match": "50%",
"boost": 25
}
},
...
]
}
}
}
第一个multi_match
仅在找到完整搜索短语时匹配文档,并将整个结果提升为100
第二部分从搜索词中搜索100%的单词。因此,单词的顺序并不重要,但所有单词都必须出现在搜索的文档中。升压=50
第三部分搜索50%匹配。意味着并非所有单词都必须在文档中才能在结果中返回。升压=25
…
部分意味着我对剩下的结果有更多的了解。但并不是每种情况都需要它
boost
值是我自己在多次尝试中选择的,不可能适用于所有情况。你必须记住,相关性的背后有一个相当复杂的算法。有关更多信息,请查看:
我可以向你展示我是如何做类似的事情的。请看下面的查询:
{
"query": {
"bool": {
"should": [
{
"multi_match": {
"query": "SEARCH TERM HERE",
"fields": [
"title^70",
"description^30",
"content^20"
],
"type": "phrase",
"boost": 100
}
},
{
"multi_match": {
"query": "SEARCH TERM HERE",
"fields": [
"title^30",
"description^25",
"content^10"
],
"type": "most_fields",
"minimum_should_match": "100%",
"boost": 50
}
},
{
"multi_match": {
"query": "SEARCH TERM HERE",
"fields": [
"title^25",
"description^15",
"content^10"
],
"type": "most_fields",
"minimum_should_match": "50%",
"boost": 25
}
},
...
]
}
}
}
第一个multi_match
仅在找到完整搜索短语时匹配文档,并将整个结果提升为100
第二部分从搜索词中搜索100%的单词。因此,单词的顺序并不重要,但所有单词都必须出现在搜索的文档中。升压=50
第三部分搜索50%匹配。意味着并非所有单词都必须在文档中才能在结果中返回。升压=25
…
部分意味着我对剩下的结果有更多的了解。但并不是每种情况都需要它
boost
值是我自己在多次尝试中选择的,不可能适用于所有情况。你必须记住,相关性的背后有一个相当复杂的算法。有关更多信息,请查看: