0
比方說,我有我的索引兩個文件:ElasticSearch同義詞返回多個結果
{
"name": "dog"
}
和
{
"name": "dog - hypoallergenic"
}
我已經創建了一個同義詞映射文件類似如下:
PUT syn_test
{
"settings": {
"analysis": {
"filter": {
"my_synonym_filter": {
"type": "synonym",
"synonyms": ["puppy=>dog","canine=>dog","kitten=>cat","feline=>cat"]
}
},
"analyzer": {
"my_synonyms": {
"tokenizer": "standard",
"filter": [
"lowercase",
"my_synonym_filter"
]
}
}
}
},
"mappings": {
"animal": {
"properties": {
"id": {
"type": "long"
},
"name": {
"type": "string",
"analyzer": "my_synonyms"
}
}
}
}
}
我已經索引了兩個文件:
POST syn_test/animal
{
"name": "dog - hypoallergenic"
}
POST syn_test/animal
{
"name": "dog"
}
當我搜索puppy
或canine
,這是在我的索引映射映射爲同義詞dog
,我得到兩個dog
和dog - hypoallergenic
結果。
我對於puppy
或canine
查詢的期望輸出將僅返回dog
。有沒有辦法強制查詢只返回來自同義詞的精確匹配?