gpt4 book ai didi

Elasticsearch 查询具有多个值的字段,一个匹配得分相等

转载 作者:行者123 更新时间:2023-11-29 02:57:15 25 4
gpt4 key购买 nike

我有一个索引将一些字段存储为数组,因为它们可以有多个值,比如名字/姓氏,因为我们保留关于娘家姓、昵称等的历史数据

     {
"_index": "structured",
"_type": "entity",
"_id": "0000230799",
"_score": 1,
"_source": {
"FIRST_NAME": [
"Deborah",
"Debbie"
],

"LAST_NAME": [
"Loverde",
"Frogameni"
]
}
},
{
"_index": "structured",
"_type": "entity",
"_id": "0000309483",
"_score": 1,
"_source": {
"FIRST_NAME": [
"Anthony",
"Tony"
],
"LAST_NAME": "Frogameni",
},

但是,当我在某个文档的属性上有多个值的情况下进行搜索时,它会给出比在匹配的属性上只有一个值的文档更低的分数

使用上面的索引,它对第二个记录的评分更高,因为第一个记录有两个姓氏,而第二个记录有一个

我怎么能说如果我在具有多个值的字段上匹配一个值,它的得分相同作为只有一个值的字段?就像我需要匹配的最大值是 1

   POST /structured/entity/_search?explain=true
{
"query": {
"bool":{
"should":[
{

"match_phrase_prefix":{
"FIRST_NAME":{"query":"debbi"}
}

},
{

"match_phrase_prefix":{
"LAST_NAME":"frogameni"
}

}

]
}

}
}

非常感谢任何帮助

最佳答案

考虑切换到 BM25-similarity model .具体来说,您希望将 b 值设置为 0

另外,下面是 Elasticsearch/Lucene 的默认相似度模型和 BM25 的更深入比较:Similarity in Elasticsearch .

关于Elasticsearch 查询具有多个值的字段,一个匹配得分相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22235606/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com