gpt4 book ai didi

elasticsearch - 如何动态更改 ElasticSearch 的同义词

转载 作者:行者123 更新时间:2023-11-29 02:46:26 25 4
gpt4 key购买 nike

我的同义词存储在数据库中,当数据库中的同义词发生更改时,我想更新索引中可能因同义词更改而更改的任何值。

我可以想到这两个部分。第一,确定要重新索引哪些文档。第二,弄清楚如何告诉 ElasticSearch 同义词已更改。我正在努力解决第二个问题 - 告诉 ElasticSearch 同义词已更改。

有人提出了类似的问题 - 请参阅 Change dynamically elasticsearch synonyms - 但通过阅读该问题的答案,我无法弄清楚我需要什么。

目前,我的配置文件如下所示:

index :
analysis :
analyzer :
myanalyzer :
filter: [standard, mysynonymfilter]
filter :
mysynonymfilter :
type : synonym
synonyms : synonyms.txt
ignore_case : false
expand : true
format : solr

我的想法是做如下事情:

curl -XPUT 'http://127.0.0.1:9200/foo/_settings'  -d '
{
"filter" : {
"synonym" : {
"type" : "mysynonymfilter",
"synonyms" : [
"cosmos, universe"
]
}
}
}
'

但这似乎并没有达到我想要的效果。也就是说,据我所知,索引设置没有得到更新。

我想做的事情可行吗?如果是这样,知道我做错了什么吗?

此外,我相当确定我可以通过更新同义词文件(如果我必须使用文件)来实现它,但这有点复杂,我想避免这种情况。

感谢您的帮助,埃里克

最佳答案

事实证明,您可以通过编程方式告诉 ElasticSearch 同义词已更改。也就是说,没有必要更新同义词文件。以下是必要的基本步骤:

  • 关闭索引。
  • 用新的同义词列表更新索引设置。为了安全起见,我更新了索引的所有分析器、分词器和字符过滤器(不仅仅是同义词过滤器)——但我不确定是否有必要。
  • 打开索引。

关于elasticsearch - 如何动态更改 ElasticSearch 的同义词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18476736/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com