Ключевое слово Elasticsearch не работает с фонетическим анализатором

Я хочу добавить кастом phonetic analyzerТакже я не хочу анализировать данную строку. Предположим, у меня есть две строки,

КАМРУЛЬСКИЙ ИСЛАМ

КАМРАЛЬСКИЙ ИСЛАМ

Я не хочу получать какой-либо результат с помощью строки запроса KAMRUL но хочу оба в результате строки запроса KAMRUL ISLAM,

Для этого я взял специальный фонетический анализатор с keyword токенизатор.

Настройки индекса:

PUT /my_index
{
  "settings": {
    "analysis": {
      "filter": {
        "dbl_metaphone": { 
            "tokenizer": "keyword",
          "type":    "phonetic",
          "encoder": "double_metaphone"
        }
      },
      "analyzer": {
        "dbl_metaphone": {
          "tokenizer": "keyword",
          "filter":    "dbl_metaphone" 
        }
      }
    }
  }
} 

Тип сопоставления:

PUT /my_index/_mapping/my_type
{
  "properties": {
    "name": {
        "type":     "string",
        "analyzer": "dbl_metaphone"
      }
    }
}

Я вставил данные с:

PUT /my_index/my_type/5
{
  "name": "KAMRUL ISLAM"
}

И моя строка запроса:

GET /my_index/my_type/_search
{
  "query": {
    "match": {
      "name": {
        "query": "KAMRAL"
      }
    }
  }
}

К сожалению, мне дают две строки. Я использую ES-1.7.1. Есть ли способ решить это?

Кроме того, пока я бегал

curl -XGET 'localhost:9200/my_index/_analyze?analyzer=dbl_metaphone' -d 'KAMRUL ISLAM'

Я получил результат:

{
  "tokens": [
    {
      "token": "KMRL",
      "start_offset": 0,
      "end_offset": 12,
      "type": "word",
      "position": 1
    }
  ]
}

И пока работает:

curl -XGET 'localhost:9200/my_index/_analyze?analyzer=dbl_metaphone' -d 'KAMRAL'

У меня есть:

{
  "tokens": [
    {
      "token": "KMRL",
      "start_offset": 0,
      "end_offset": 6,
      "type": "word",
      "position": 1
    }
  ]
}

0 ответов

Другие вопросы по тегам