将同义词分析器添加到elasticsearch索引

发布于 2021-02-01 11:46:48

我有一个现有的Elasticsearch索引,我想添加一个分析器,但是当我执行此命令时

{
"analysis" : {
    "analyzer" : {
        "synonym" : {
            "tokenizer" : "whitespace",
            "filter" : ["synonym"]
        }
    },
"filter" : {
            "synonym" : {
                "type" : "synonym",
                "synonyms_path" : "synonym.txt",
                "ignore_case" : true
            }
        }
    }
}

我得到一个错误

{“错误”:“ IndexAlreadyExistsException [[nuxeo]已经存在]”,“状态”:400}

所以我必须在添加或刷新同义词文件之前删除索引不是很聪明。添加分析器的简单方法是吗?还是至少要刷新它?谢谢

关注者
0
被浏览
129
1 个回答
  • 面试哥
    面试哥 2021-02-01
    为面试而生,有面试问题,就找面试哥。

    您需要先关闭索引,更新分析器设置,然后再打开索引。这是更新现有分析仪设置的唯一方法。请注意,仅更改索引时未使用但已使用的分析器才有意义

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


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看