问题描述
我无法理解弹性搜索查询以及同义词表的实现。有了一般查询,我没有任何搜索问题,但是将同义词合并成为我的问题。
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
}
}
}
}
}
}
请注意:
-
同义词文件中的更改不会反映在更改之前建立索引的文档中。为此,需要重新索引。
-
您不能更改现有字段的映射(包括分析器)。如果要更改现有文档的映射,需要做的是使用更新后的映射将这些文档重新索引到另一个索引。
-
搜索查询不支持“设置”。