我有一個索引將一些字段存儲爲數組,因爲它們可能有多個值,比如第一個/最後一個名字,因爲我們在Maiden名稱上保留歷史數據,暱稱ectElasticsearch查詢字段有多個值,一個匹配得分相等
{
"_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",
},
然而,當我這樣做,其中一個文檔對屬性有多個值的搜索,它會給出比一個文件,讓只在使用匹配
屬性有一個價值較低的分數指數在上方,它獲得了第二個更高的紀錄,因爲第一個紀錄有兩個姓氏,而第二個紀錄是一個
我怎麼能說如果我匹配多個值的字段上的一個值,它被評爲相同的 作爲只有一個值的字段?像Max我需要在這裏匹配是1
POST /structured/entity/_search?explain=true
{
"query": {
"bool":{
"should":[
{
"match_phrase_prefix":{
"FIRST_NAME":{"query":"debbi"}
}
},
{
"match_phrase_prefix":{
"LAST_NAME":"frogameni"
}
}
]
}
}
}
任何幫助非常感謝
,請在您的elasticsearch.yml文件中放入index.similarity.default.type:BM25。優秀的答案! –