如何解决如何使用Python中的同义词在弹性搜索中搜索查询
我无法理解弹性搜索查询以及同义词表的实现。有了一般查询,我没有任何搜索问题,但是将同义词合并成为我的问题。
es.search(index='data_inex',body={
"query": {
"match": {"inex": "tren"}
},"settings": {
"filter": {
"synonym": {
"type": "synonym","lenient": true,"synonyms": [ "foo,baz","tren,hut" ]
}
}
}
}
)
还可以使用文件代替此数组吗?
解决方法
检查文档:Click Here
您也可以配置同义词文件:
PUT /test_index
{
"settings": {
"index": {
"analysis": {
"analyzer": {
"synonym": {
"tokenizer": "whitespace","filter": [ "synonym" ]
}
},"filter": {
"synonym": {
"type": "synonym","synonyms_path": "analysis/synonym.txt" // <======== location of synonym file
}
}
}
}
}
}
请注意:
-
同义词文件中的更改不会反映在更改之前建立索引的文档中。为此,需要重新索引。
-
您不能更改现有字段的映射(包括分析器)。如果要更改现有文档的映射,需要做的是使用更新后的映射将这些文档重新索引到另一个索引。
-
搜索查询不支持“设置”。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。