是否可以在索引中存储elasticsearch的同义词?或者是否可以从像couchdb这样的数据库中获取同义词列表?我想通过REST-API动态地将同义词添加到elasticsearch.
我的同义词存储在数据库中,当在数据库中更改同义词时,我想更新索引中的任何值,这些值可能会因同义词更改而更改.
我可以想到有两个部分.一,找出要重新索引的文件.二,弄清楚如何告诉ElasticSearch同义词已经改变.我正在努力争取第二个 - 告诉ElasticSearch同义词已经改变了.
有一个类似的问题已被提出 - 请参阅更改动态弹性搜索同义词 - 但从阅读该问题的答案,我无法弄清楚我需要什么.
目前,我的配置文件如下所示:
index :
analysis :
analyzer :
myanalyzer :
filter: [standard, mysynonymfilter]
filter :
mysynonymfilter :
type : synonym
synonyms : synonyms.txt
ignore_case : false
expand : true
format : solr
Run Code Online (Sandbox Code Playgroud)
我的想法是做类似以下的事情:
curl -XPUT 'http://127.0.0.1:9200/foo/_settings' -d '
{
"filter" : {
"synonym" : {
"type" : "mysynonymfilter",
"synonyms" : [
"cosmos, universe"
]
}
}
}
'
Run Code Online (Sandbox Code Playgroud)
但这似乎没有做我想要的.也就是说,据我所知,索引设置不会更新.
我正在尝试做什么?如果是这样,任何想法我做错了什么?
此外,我相信我可以通过更新同义词文件(如果我必须使用文件)来实现这一点,但这有点复杂,我想避免的事情.
谢谢你的帮助,埃里克