java - 设置 search_analyzer 时,必须设置字段 [filename] 上的分析器。 Elasticsearch 错误

标签 java elasticsearch kibana elastic-stack

在为我的elasticsearch index_analyzer设置映射时收到以下错误消息

请查找下面的错误消息

{
  "error": {
    "root_cause": [
      {
        "type": "mapper_parsing_exception",
        "reason": "analyzer on field [filename] must be set when search_analyzer is set"
      }
    ],
    "type": "mapper_parsing_exception",
    "reason": "Failed to parse mapping [doc]: analyzer on field [filename] must be set when search_analyzer is set",
    "caused_by": {
      "type": "mapper_parsing_exception",
      "reason": "analyzer on field [filename] must be set when search_analyzer is set"
    }
  },
  "status": 400
}

请查找我尝试过的映射详细信息

PUT /documents_test8
{
   "settings" : {
      "analysis" : {
         "analyzer" : {
            "filename_search" : {
               "tokenizer" : "filename",
               "filter" : ["lowercase"]
            },
            "filename_index" : {
               "tokenizer" : "filename",
               "filter" : ["lowercase","edge_ngram"]
            }
         },
         "tokenizer" : {
            "filename" : {
               "pattern" : "[^\\p{L}\\d]+",
               "type" : "pattern"
            }
         },
         "filter" : {
            "edge_ngram" : {
               "side" : "front",
               "max_gram" : 20,
               "min_gram" : 1,
               "type" : "edgeNGram"
            }
         }
      }
   },
   "mappings" : {
      "doc" : {
         "properties" : {
            "filename" : {
               "type" : "text",
               "search_analyzer" : "filename_search",
               "index_analyzer" : "filename_index"
            }
         }
      }
   }
}

最佳答案

index_analyzer 属性不再存在,您需要使用 analyzer 代替

"mappings" : {
  "doc" : {
     "properties" : {
        "filename" : {
           "type" : "text",
           "search_analyzer" : "filename_search",
           "analyzer" : "filename_index"              <-- change this
        }
     }
  }
}

关于java - 设置 search_analyzer 时,必须设置字段 [filename] 上的分析器。 Elasticsearch 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50800306/

相关文章:

regex - Kibana 正则表达式不起作用

java.sql.SQLException:参数 IN 或 OUT 缺失,位于 l'index::3

amazon-web-services - AWS 容器服务 : set max_map_count

elasticsearch - 使用Cisco Syslog的Logstash字符编码

php - Elasticsearch完全匹配字段

elasticsearch - 无法启动 Kibana 7.5.0 fatal error 尚未对配置文件进行任何更改

elasticsearch - 如何在Kibana中过滤聚合结果( Elasticsearch )?

java - 如何在 if 语句之外获取变量的值

java - 与某些函数进行“或”运算为真

java - Android Studio Gson 到内部存储