Проблема с запросом 'match_phrase_prefix' для поиска elasti c - PullRequest
1 голос
/ 18 марта 2020

У меня проблема с запросом с использованием match_phrase_prefix. P.ex скажем у меня есть запись с display_name = "переполнение стека". Если я сделаю запрос, используя «stack» или «stack over», он найдет запись, но не, если я попробую «stack o». Я заметил, что об этом уже спрашивали, и проблема с префиксом, но я не нашел правильного ответа. Есть мысли?

1 Ответ

0 голосов
/ 18 марта 2020

Возвращает документы для stack o, чтобы увидеть его, следуйте приведенному ниже примеру.

Отображение индекса

{
  "mappings": {
    "properties": {
      "display_name": {
        "type": "text"
      }
    }
  }
}

Индекс документа

{
   "display_name" : "stack overflow"
}

Поиск query

{
    "query": {
        "match_phrase_prefix" : {
            "display_name" : {
                "query" : "stack o"
            }
        }
    }
}

И он возвращает индексированный выше do c

"hits": [
         {
            "_index": "so-60620921-match-prefix",
            "_type": "_doc",
            "_id": "1",
            "_score": 0.5753642,
            "_source": {
               "display_name": "stack overflow"
            }
         }
      ]

Вы можете даже проверить официальный ES do c пример , где он возвращает документ для quick brown f.

...