第一种实现方式:
同义词可以取代现有的语汇单元或 通过使用同义词语汇单元过滤器,添加到语汇单元流中。首先,我们定义了一个同义词类型的语汇单元过滤器。然后我们创建了一个使用同义词类型的语汇单元过滤器的自定义分析器。
PUT http://localhost:9200/temp_index
{
"settings": {
"analysis": {
"filter": {
"my_synonym_filter": {
"type": "synonym",
"expand": true,
"ignore_case": true
"synonyms_path" : "analysis/synonym.txt"
"synonyms": [
"british,english",
"queen,monarch"
"usa, america, united states => usa"
]
}
},
"analyzer": {
"my_synonyms": {
"tokenizer": "ik_max_word",
"filter": [
"lowercase",
"my_synonym_filter"
]
}
}
}
}
}
同义词一般格式:
简单扩展:我们可以把同义词列表中的任意一个词扩展成同义词列表所有的词。
举例 "jump,hop,leap"
简单收缩:把左边的多个同义词映射到了右边的单个词。它必须同时应用于索引和查询阶段,以确保查询词项映射到索引中存在的同一个值。
举例 "leap,hop => jump"
类型扩展:类型扩展是完全不同于简单收缩或扩张,并不是平等看待所有的同义词,而是扩大了词的意义,使被拓展的词更为通用。
举例"cat => cat,pet","kitten => kitten,