我遇到了一个问题,我需要更新索引上的停用词,该索引将英语分析器指定为默认分析器。通常,分析器在索引的设置中指定:
{
"twitter": {
"settings": {
"index": {
"creation_date": "1469465586110",
"analysis": {
"filter": {
"lowercaseFilter": {
"type": "lowercase"
}
},
"analyzer": {
"default": {
"type": "english"
},
...
因此,分析器位于<index name>.settings.index.analysis.analyzer
为了更新分析器,我运行了以下命令:
curl -XPOST "http://localhost:9200/twitter/_close" && \
curl -XPUT "http://localhost:9200/twitter/_settings" -d'
{
"analysis": {
"analyzer": {
"default": {
"type": "english",
"stopwords": "_none_"
}
}
}
}' && \
curl -XPOST "http://localhost:9200/twitter/_open"
运行这些命令后,我验证了默认分析器正在分析文本并保留所有停用词。
但是,当我使用 Jest 客户端时,现在设置看起来像这样,并且分析没有正确进行(注意分析设置现在如何位于“members”属性下):
{
"twitter": {
"settings": {
"index": {
"members": {
"analysis": {
"analyzer": {
"default": {
"type": "english",
"stopwords": "_none_"
},