我处在一个场景中,如果它有一个唯一的关键字,我需要在Index中提供更多相关性。让我提供一个场景。 假设我需要搜索 znkdref不成功一词,因此结果将包含 znkdref 或不成功或 znkdref不成功<的内容< / strong>但是在这里我希望 znkdref不成功的内容具有最高的相关性,然后 znkdref 的内容应该具有较少的相关性,然后内容不成功应该具有最少的相关性。
有没有办法实现这个?我很乐意得到任何帮助
答案 0 :(得分:0)
您想使用Query Time Boosting,特别是Prioritized Clauses。
简而言之,您需要提取您想要提升的关键字,并构建一个查询来增强您想要的部分。
{
"query": {
"bool": {
"should": [{
"match": {
"content": {
"query": "znkdref",
"boost": 2
}
}
},
{
"match": {
"content": {
"query": "unsuccessfull"
}
}
}]
}
}
}
根据评论进行更新:
如果您想知道文档为什么得到它所做的分数(可能标识“关键字”),那么您可以将“explain”作为查询参数传递或将其设置在根POST有效负载中。结果现在将具有文档频率计数和子分数。
答案 1 :(得分:0)
你是说&#34; znkdref&#34;是一个独特的关键字?例如,&#34; znkdref&#34;是一个特殊的名称。如果是的话。
相关性得分函数在https://www.elastic.co/guide/en/elasticsearch/guide/current/practical-scoring-function.html
中描述我希望我的回答对你有所帮助。