ElasticSearch 6.2.4 java.lang.IllegalArgumentException:文档包含至少一个巨大术语

时间:2018-10-26 07:11:45

标签: elasticsearch indexing lucene elasticsearch-6

我正在使用Elasticsearch 6.2.4,并且试图在Elasticsearch中建立数据索引。

这是我正在使用的模板:

{
   "order": 0,
   "template": "logs-*",
   "settings": {
      "index": {
         "analysis": {
            "analyzer": {
               "ngram-msg-analyzer": {
                  "filter": [
                     "lowercase",
                     "standard"
                  ],
                  "min_gram": "3",
                  "type": "custom",
                  "max_gram": "3",
                  "tokenizer": "ngram",
                  "min": "0",
                  "max": "2147483647"
               }
            }
         },
         "number_of_shards" : "3",
         "number_of_replicas" : "1"
      }
   },
   "mappings": {
      "_doc": {
         "dynamic_templates": [
            {
               "ts": {
                  "mapping": {
                     "format": "epoch_millis",
                     "type": "date"
                  },
                  "match_mapping_type": "string",
                  "match": "*_ts"
               }
            },
            {
               "strings_notanalyzed": {
                  "unmatch": "*_analyzed",
                  "mapping": {
                     "index": true,
                     "type": "keyword"
                  },
                  "match_mapping_type": "string"
               }
            }
         ],
         "properties": {
            "server_ts": {
               "format": "strict_date_optional_time||epoch_millis",
               "type": "date"
            },
            "log_message": {
               "analyzer": "ngram-msg-analyzer",
               "index": true,
               "type": "text",
               "fields": {
                  "std": {
                     "analyzer": "standard",
                     "type": "text"
                  },
                  "raw": {
                     "ignore_above": 2147483647,
                     "type": "keyword"
                  }
               }
            },
            "message": {
               "index": true,
               "type": "text"
            }
         }
      }
   },
   "aliases": {}
}

我已将ignore_above选项设置为最大值,以避免丢失消息,但是,对于长度超过32766的术语,我仍然在Elasticsearch索引日志中遇到以下错误。

  

无法执行包含[1406]个请求的批量项目(索引)BulkShardRequest [[logs-2018-10-25] [1]]   java.lang.IllegalArgumentException:文档在field =“ log_message.raw”(其UTF8编码比最大长度32766长)中至少包含一个巨大术语,所有这些都被跳过。请更正分析仪以免产生此类条款。第一个庞大术语的前缀是:'[82、101、113、117、101、115、116、32、112、114、111、99、101、115、115、105、110、103、32、101 ,120、99、101、112、116、105、111、110、58、32] ...',原始消息:字节的长度最多为32766;得到了86139

为什么即使将ignore_above设置为如此高的值也会发生这种情况?

0 个答案:

没有答案