gpt4 book ai didi

elasticsearch - 使用预先存在的索引设置基本 ElasticSearch + WordNet 同义词

转载 作者:行者123 更新时间:2023-12-02 22:12:16 27 4
gpt4 key购买 nike

我正在尝试学习如何将“同义词功能”正确添加到我现有的 ElasticSearch 设置中。到目前为止,这是我对这个过程的理解。如果您能指出我的任何误解,我将不胜感激 - 我是 elasticsearch 的新手。

来自 this page我了解到我需要添加一个同义词分析器和一个同义词过滤器,其中包含我的同义词文件的路径到我的索引配置中,这样它看起来像这样:

{
"index" : {
"analysis" : {
"analyzer" : {
"synonym" : {
"tokenizer" : "whitespace",
"filter" : ["synonym"]
}
},
"filter" : {
"synonym" : {
"type" : "synonym",
"format" : "wordnet",
"synonyms_path" : "analysis/wordnet_synonyms.txt"
}
}
}
}
}

来自 this page我已经学会了如何添加分析器:

curl -XPOST 'localhost:9200/myindex/_close'

curl -XPUT 'localhost:9200/myindex/_settings' -d '{
"analysis" : {
"analyzer":{
"synonym":{
"tokenizer":"whitespace",
"filter" : ["synonym"]
}
}
}
}'

curl -XPOST 'localhost:9200/myindex/_open'

但我不知道如何添加过滤器。会这么简单吗?:

curl -XPOST 'localhost:9200/myindex/_close'

curl -XPUT 'localhost:9200/myindex/_settings' -d '{
"analysis" : {
"filter":{
"synonym":{
"type" : "synonym",
"format" : "wordnet",
"synonyms_path" : "analysis/wordnet_synonyms.txt",
"ignore_case" : true
}
}
}
}'

curl -XPOST 'localhost:9200/myindex/_open'

我也不知道 analysis/wordnet_synonyms.txt 相对于哪里。在 this page它说“相对于 config 位置”。 config 位置在哪里?在 etc/elasticsearch 某处(在 Ubuntu 上)?谢谢!

编辑: This answer给出这个作为解决方案:

curl -XPOST 'localhost:9200/myindex/_close'
curl -XPUT 'localhost:9200/myindex/_settings' -d '{
"analysis" : {
"analyzer" : {
"synonym" : {
"tokenizer" : "whitespace",
"filter" : ["synonym"]
}
},
"filter":{
"synonym":{
"type" : "synonym",
"format" : "wordnet",
"synonyms_path" : "analysis/wordnet_synonyms.txt",
"ignore_case" : true
}
}'
curl -XPOST 'localhost:9200/myindex/_open'

这可能吗?一位评论者表示,更改分析器设置时需要重新创建索引 - 这是真的吗?而且我仍然不确定将“wordnet_synonyms.txt”放在哪里。

最佳答案

最简单的方法是先删除您的索引,然后使用分析器和同义词标记过滤器创建它,就像这样(我还添加了一个映射类型和一个虚拟字段来向您展示如何使用您的分析器):

curl -XDELETE localhost:9200/myindex

curl -XPUT localhost:9200/myindex -d '{
"settings": {
"index" : {
"analysis" : {
"analyzer" : {
"synonym" : {
"tokenizer" : "whitespace",
"filter" : ["synonym"]
}
},
"filter" : {
"synonym" : {
"type" : "synonym",
"format" : "wordnet",
"synonyms_path" : "analysis/wordnet_synonyms.txt"
}
}
}
}
},
"mappings": {
"typename": {
"fieldname": {
"type": "string",
"analyzer": "synonym"
}
}
}
}'

您需要将 analysis/wordnet_synonyms.txt 文件放在与您的 elasticsearch.yml 配置文件相同的文件夹中。在 Ubuntu 上,它将位于

/etc/elasticsearch/analysis/wordnet_synonyms.txt

关于elasticsearch - 使用预先存在的索引设置基本 ElasticSearch + WordNet 同义词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39798518/

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