同义词可以取代现有的语汇单元或 通过使用 {ref}/analysis-synonym-tokenfilter.html[ 同义词
语汇单元过滤器],添加到语汇单元流中:
PUT /my_index
{
"settings": {
"analysis": {
"filter": {
"my_synonym_filter": {
"type": "synonym", (1)
"synonyms": [ (2)
"british,english",
"queen,monarch"
]
}
},
"analyzer": {
"my_synonyms": {
"tokenizer": "standard",
"filter": [
"lowercase",
"my_synonym_filter" (3)
]
}
}
}
}
}
-
首先,我们定义了一个
同义词
类型的语汇单元过滤器。 -
我们在 [synonym-formats] 中讨论同义词格式。
-
然后我们创建了一个使用
my_synonym_filter
的自定义分析器。
Tip
|
同义词可以使用 |
通过 analyze
API 来测试我们的分析器,显示如下:
GET /my_index/_analyze?analyzer=my_synonyms
Elizabeth is the English queen
Pos 1: (elizabeth)
Pos 2: (is)
Pos 3: (the)
Pos 4: (british,english) (1)
Pos 5: (queen,monarch) (1)
-
所有同义词与原始词项占有同一个位置。
这样的一个文件将匹配任何以下的查询: English queen
、British queen
、 English monarch
或 British monarch
。
即使是一个短语查询也将会工作,因为每个词项的位置已被保存。
Tip
|
在索引和搜索中使用相同的同义词语汇单元过滤器是多余的。 如果在索引的时候,我们用 是否在搜索或索引的时候做同义词扩展可能是一个困难的选择。我们将探索更多的选择 [synonyms-expand-or-contract]。 |