elastic / elasticsearch

Free and Open Source, Distributed, RESTful Search Engine
https://www.elastic.co/products/elasticsearch
Other
69.91k stars 24.73k forks source link

null_pointer_exception during index mapping #18803

Closed Alkalit closed 8 years ago

Alkalit commented 8 years ago

Elasticsearch version: 2.3.3

JVM version: 1.8.0_91

OS version: Ubuntu 16.04 LTS

Description of the problem including expected versus actual behavior: Error response during index mapping

{
   "error": {
      "root_cause": [
         {
            "type": "null_pointer_exception",
            "reason": null
         }
      ],
      "type": "null_pointer_exception",
      "reason": null
   },
   "status": 500
}

Steps to reproduce: 1.

PUT /haystack/
{
  "settings": {
    "analysis": {
      "filter": {
        "haystack_edgengram": {
          "max_gram": 15,
          "type": "edgeNGram",
          "min_gram": 2
        },
        "haystack_ngram": {
          "max_gram": 15,
          "type": "nGram",
          "min_gram": 3
        }
      },
      "tokenizer": {
        "haystack_ngram_tokenizer": {
          "max_gram": 15,
          "type": "nGram",
          "min_gram": 3
        },
        "haystack_edgengram_tokenizer": {
          "max_gram": 15,
          "type": "edgeNGram",
          "side": "front",
          "min_gram": 2
        }
      },
      "analyzer": {
        "edgengram_analyzer": {
          "filter": [
            "haystack_edgengram",
            "lowercase"
          ],
          "type": "custom",
          "tokenizer": "standard"
        },
        "ngram_analyzer": {
          "filter": [
            "haystack_ngram",
            "lowercase"
          ],
          "type": "custom",
          "tokenizer": "standard"
        }
      }
    }
  }
}

2.

PUT /haystack/_mapping/modelresult
{
    "properties": {
      "inside_id": {
        "type": "long"
      },
      "text": {
        "type": "string",
        "analyzer": "edgengram_analyzer"
      },
      "django_ct": {
        "include_in_all": false,
        "index": "not_analyzed",
        "type": "string"
      },
      "type_claster_id": {
        "type": "long"
      },
      "closed_at": {
        "type": "date"
      },
      "is_closed": {
        "type": "boolean"
      },
      "geo_type_region_id": {
        "type": "long"
      },
      "priority": {
        "type": "long"
      },
      "shingles": {
        "type": "string",
        "analyzer": "russian"
      },
      "board": {
        "type": "string",
        "analyzer": "russian"
      },
      "subscribers_names": {
        "type": "string",
        "analyzer": "russian"
      },
      "type": {
        "type": "long"
      },
      "claster_code": {
        "type": "long"
      },
      "views": {
        "type": "long"
      },
      "buy_seo_text": {
        "type": "string",
        "analyzer": "russian"
      },
      "updated_at": {
        "type": "date"
      },
      "geo_type_slug": {
        "type": "string",
        "analyzer": "russian"
      },
      "sell_seo_text": {
        "type": "string",
        "analyzer": "russian"
      },
      "geo_type_id": {
        "type": "long"
      },
      "name": {
        "type": "string",
        "analyzer": "edgengram_analyzer"
      },
      "attached": {
        "type": "boolean"
      },
      "ad_type": {
        "type": "string",
        "analyzer": "russian"
      },
      "filters_ids": {
        "type": "string",
        "analyzer": "russian"
      },
      "subject": {
        "type": "string",
        "analyzer": "russian"
      },
      "django_id": {
        "include_in_all": false,
        "index": "not_analyzed",
        "type": "string"
      },
      "is_approved": {
        "type": "boolean"
      },
      "author": {
        "type": "string",
        "analyzer": "russian"
      },
      "content": {
        "type": "string",
        "analyzer": "russian"
      },
      "views_today": {
        "type": "long"
      },
      "owner_id": {
        "type": "long"
      },
      "body": {
        "type": "string",
        "analyzer": "edgengram_analyzer"
      },
      "description": {
        "type": "string",
        "analyzer": "russian"
      },
      "parent": {
        "type": "long"
      },
      "key": {
        "type": "long"
      },
      "slug": {
        "type": "string",
        "analyzer": "russian"
      },
      "last_activity_at": {
        "type": "date"
      },
      "thread": {
        "type": "string",
        "analyzer": "russian"
      },
      "url": {
        "type": "string",
        "analyzer": null
      },
      "created_at": {
        "type": "date"
      },
      "title": {
        "type": "string",
        "analyzer": "edgengram_analyzer"
      },
      "geo_object": {
        "type": "long"
      },
      "attributed": {
        "type": "boolean"
      },
      "published": {
        "type": "boolean"
      },
      "primary_filter_id": {
        "type": "long"
      },
      "geo_type_region_slug": {
        "type": "string",
        "analyzer": "russian"
      }
    }
  }

Provide logs (if relevant):

[2016-06-09 17:34:49,914][INFO ][cluster.metadata         ] [Micro] [haystack] creating index, cause [api], templates [], shards [5]/[1], mappings []
[2016-06-09 17:34:50,650][INFO ][cluster.routing.allocation] [Micro] Cluster health status changed from [RED] to [YELLOW] (reason: [shards started [[haystack][4]] ...]).
[2016-06-09 17:34:57,408][DEBUG][action.admin.indices.mapping.put] [Micro] failed to put mappings on indices [[haystack]], type [modelresult]
java.lang.NullPointerException
    at org.elasticsearch.index.mapper.core.TypeParsers.parseAnalyzersAndTermVectors(TypeParsers.java:211)
    at org.elasticsearch.index.mapper.core.TypeParsers.parseTextField(TypeParsers.java:250)
    at org.elasticsearch.index.mapper.core.StringFieldMapper$TypeParser.parse(StringFieldMapper.java:161)
    at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parseProperties(ObjectMapper.java:305)
    at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parseObjectOrDocumentTypeProperties(ObjectMapper.java:218)
    at org.elasticsearch.index.mapper.object.RootObjectMapper$TypeParser.parse(RootObjectMapper.java:139)
    at org.elasticsearch.index.mapper.DocumentMapperParser.parse(DocumentMapperParser.java:118)
    at org.elasticsearch.index.mapper.DocumentMapperParser.parse(DocumentMapperParser.java:99)
    at org.elasticsearch.index.mapper.MapperService.parse(MapperService.java:508)
    at org.elasticsearch.cluster.metadata.MetaDataMappingService$PutMappingExecutor.applyRequest(MetaDataMappingService.java:257)
    at org.elasticsearch.cluster.metadata.MetaDataMappingService$PutMappingExecutor.execute(MetaDataMappingService.java:230)
    at org.elasticsearch.cluster.service.InternalClusterService.runTasksForExecutor(InternalClusterService.java:468)
    at org.elasticsearch.cluster.service.InternalClusterService$UpdateTask.run(InternalClusterService.java:772)
    at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.runAndClean(PrioritizedEsThreadPoolExecutor.java:231)
    at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.run(PrioritizedEsThreadPoolExecutor.java:194)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
[2016-06-09 17:34:57,409][WARN ][rest.suppressed          ] /haystack/_mapping/modelresult Params: {index=haystack, type=modelresult}
java.lang.NullPointerException
    at org.elasticsearch.index.mapper.core.TypeParsers.parseAnalyzersAndTermVectors(TypeParsers.java:211)
    at org.elasticsearch.index.mapper.core.TypeParsers.parseTextField(TypeParsers.java:250)
    at org.elasticsearch.index.mapper.core.StringFieldMapper$TypeParser.parse(StringFieldMapper.java:161)
    at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parseProperties(ObjectMapper.java:305)
    at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parseObjectOrDocumentTypeProperties(ObjectMapper.java:218)
    at org.elasticsearch.index.mapper.object.RootObjectMapper$TypeParser.parse(RootObjectMapper.java:139)
    at org.elasticsearch.index.mapper.DocumentMapperParser.parse(DocumentMapperParser.java:118)
    at org.elasticsearch.index.mapper.DocumentMapperParser.parse(DocumentMapperParser.java:99)
    at org.elasticsearch.index.mapper.MapperService.parse(MapperService.java:508)
    at org.elasticsearch.cluster.metadata.MetaDataMappingService$PutMappingExecutor.applyRequest(MetaDataMappingService.java:257)
    at org.elasticsearch.cluster.metadata.MetaDataMappingService$PutMappingExecutor.execute(MetaDataMappingService.java:230)
    at org.elasticsearch.cluster.service.InternalClusterService.runTasksForExecutor(InternalClusterService.java:468)
    at org.elasticsearch.cluster.service.InternalClusterService$UpdateTask.run(InternalClusterService.java:772)
    at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.runAndClean(PrioritizedEsThreadPoolExecutor.java:231)
    at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.run(PrioritizedEsThreadPoolExecutor.java:194)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
nik9000 commented 8 years ago

"analyzer": null

There is your problem! Send a string there....

I'll add a better error message.

Alkalit commented 8 years ago

Thanks alot for quick response. I spent almost a day for this error.