我的同义词存储在数据库中,当在数据库中更改同义词时,我想更新索引中的任何值,这些值可能会因同义词更改而更改.
我可以想到有两个部分.一,找出要重新索引的文件.二,弄清楚如何告诉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)
但这似乎没有做我想要的.也就是说,据我所知,索引设置不会更新.
我正在尝试做什么?如果是这样,任何想法我做错了什么?
此外,我相信我可以通过更新同义词文件(如果我必须使用文件)来实现这一点,但这有点复杂,我想避免的事情.
谢谢你的帮助,埃里克
Eri*_*ric 10
事实证明,您可以通过编程方式告诉ElasticSearch同义词已更改.也就是说,没有必要更新同义词文件.这是必要的基本步骤:
有一个用于重新加载同义词文件lindstromhenrik/elasticsearch-analysis-file-watcher-synonym 的项目,尽管我不知道它是否适用于最新版本。也许您可以从使用插件并在查询时扩展同义词开始,因为在查询时您将更新所有同义词,而不是重新索引您认为因同义词文件发生更改而应该更新的文档。
| 归档时间: |
|
| 查看次数: |
9444 次 |
| 最近记录: |