{
  "index": {
    "number_of_shards": "1",
    "number_of_replicas": "0",
    "max_result_window": 100000000
  },
  "analysis": {
    "analyzer": {
      "codeprefix_analyzer": {
        "tokenizer": "codeprefix_tokenizer",
        "filter": [
          "lowercase"
        ]
      },
      "codefull_analyzer": {
        "tokenizer": "codefull_tokenizer",
        "filter": [
          "lowercase"
        ]
      },
      "lowercase_analyzer": {
        "tokenizer": "standard",
        "filter": [
          "lowercase"
        ]
      },
      "number_analyzer": {
        "tokenizer": "number_tokenizer"
      },
      "number_ngram_analyzer": {
        "tokenizer": "number_ngram_tokenizer",
        "filter": [
          "lowercase"
        ]
      },
      "number2_analyzer": {
        "tokenizer": "standard",
        "filter": [
          "lowercase", "number_filter"
        ]
      },
      "letter_analyzer": {
        "tokenizer": "letter2_tokenizer",
        "filter": [
          "lowercase"
        ]
      },
      "letter2_analyzer": {
        "tokenizer": "letter_tokenizer",
        "filter": [
          "lowercase"
        ]
      },
      "keywordignorespace_analyzer": {
        "tokenizer": "keyword",
        "char_filter": [
          "replace_whitespace"
        ]
      }
    },
    "tokenizer": {
      "codeprefix_tokenizer": {
        "type": "edge_ngram",
        "min_gram": 2,
        "max_gram": 50,
        "token_chars": [
          "letter",
          "digit"
        ]
      },
      "codefull_tokenizer": {
        "type": "ngram",
        "min_gram": 2,
        "max_gram": 50
      },
      "number_tokenizer": {
        "type": "pattern",
        "pattern": "\\D+"
      },
      "number_ngram_tokenizer": {
        "type": "ngram",
        "min_gram": 2,
        "max_gram": 50,
        "token_chars": [
          "digit"
        ]
      },
      "letter_tokenizer": {
        "type": "pattern",
        "pattern": "\\W+"
      },
      "letter2_tokenizer": {
        "type": "pattern",
        "pattern": "[^a-zA-Z]"
      }
    },
    "filter": {
      "number_filter" : {
        "type" : "pattern_capture",
        "preserve_original" : true,
        "patterns" : [
          "(\\d+)"
        ]
      },
      "ascii_filter" : {
        "type" : "asciifolding",
        "preserve_original" : true
      }
    },
    "char_filter": {
      "replace_whitespace": {
        "type": "mapping",
        "mappings": [
          "\\u0020=>"
        ]
      }
    }
  }
}
