нормализатор эластичного поиска не работает в нижнем регистре - PullRequest
0 голосов
/ 13 июня 2018

Я создал приведенный ниже нормализатор для поля code, чтобы запрашивать эластичный поиск в верхнем и нижнем регистре.

PUT my_index12
 {
  "settings": {
    "analysis": {
    "normalizer": {
       "my_normalizer": {
       "type": "custom",
       "char_filter": [],
       "filter": ["lowercase", "asciifolding"]
     }
   }
 }
},
"mappings": {
  "doc": {
    "properties": {
      "code": {
        "type": "keyword",
        "normalizer": "my_normalizer"
      }
    }
   }
  }
}

И я пытаюсь выполнить поиск с использованием подстановочного запроса, но не получаю никаких результатовбез нормализатора смогу получить с заглавными буквами, как именно это есть вasticsearch

get my_index12/_search
{ 
  "query": { 
  "wildcard": { 
  "code.keyword": { 
          "value": "*AB-7000-5000-Wk-21*" 
        } 
    } 
  } 
}

Пожалуйста, найдите мой индекс ниже

      {
        "_index": "my_index12",
        "_type": "doc",
        "_id": "2",
        "_score": 1,
        "_source": {
          "code": "ABCq123S"
        }
      },
      {
        "_index": "my_index12",
        "_type": "doc",
        "_id": "1",
        "_score": 1,
        "_source": {
          "code": "AB-7000-5000-Wk-21"
        }
      }

Если я попытаюсь сделать отображение для code.keyword

"mappings": {
"doc": {
"properties": {
  "code.keyword": {
    "type": "keyword",
    "normalizer": "my_normalizer"
  }
}

получаю указанную ниже ошибку при вставке документов в индекс

    {
  "error": {
    "root_cause": [
      {
        "type": "mapper_parsing_exception",
        "reason": "object mapping for [code] tried to parse field [code] as object, but found a concrete value"
      }
    ],
    "type": "mapper_parsing_exception",
    "reason": "object mapping for [code] tried to parse field [code] as object, but found a concrete value"
  },
  "status": 400
}
...