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
。有没有办法强制查询只返回来自同义词的精确匹配?