我正在尝试使用ES中索引的语言创建同义词搜索。
例如,
索引文档 - >名称:德语
同义词:德语,德语,XYZ
我想要的是,当我输入德语或德语或XYZ时,ES会给我德语...
这可能吗?
答案 0 :(得分:0)
是非常的。 ElasticSearch非常好地处理同义词。以下是我在群集中配置同义词的示例 -
curl -XPOST localhost:9200/**new-index** -d '{
"settings": {
"number_of_shards": 2,
"number_of_replicas": 0,
"analysis": {
"filter": {
"synonym": {
"type": "synonym",
"synonyms_path": "synonyms/synonyms.txt"
}
},
"analyzer": {
"synonym": {
"tokenizer": "lowercase",
"filter": [
"synonym"
]
}
}
}
},
"mappings": {
"**new-type**": {
"_all": {
"enabled": false
},
"properties": {
"Title": {
"type": "multi_field",
"store": "yes",
"fields": {
"Title": {
"type": "string",
"analyzer": "synonym"
}
}
}
}
}
}
}'
同义词文件的路径在同义词文件夹的 config 文件夹中查找并找到文本文件。对于您的要求,synonyms.txt的内容示例将是 -
German,Deutsch,XYZ
记住 - 如果您在索引时有一个小写过滤器,则同义词必须为小写。如果不工作则重新启动节点