Elasticsearch: невозможно получить результаты из поля ключевого слова - PullRequest
0 голосов
/ 16 сентября 2018

У меня есть поле, отображаемое как текст и включающее другое поле, отображаемое как ключевое слово (fields ключевое слово).Я вставляю данные и гарантирую, что они могут быть получены с использованием любого запроса.Однако, когда я запрашиваю дополнительное поле (сопоставленное как ключевое слово), я вообще не могу найти никаких данных.Вот пример (упрощенный):

POST people/_mapping/_doc
{
  "properties": {
    "name": {
      "type": "text"
    },
    "bio": {
      "type": "text",
      "fields": {
        "keyword": {
          "type": "keyword"
        }
      }
    }
  }
}

А вот запрос:

POST people/_search
{
  "query": {
    "match": {
      "bio.keyword": "Portugal"
    }
  }
}

То же самое происходит независимо от случая (Португалия против Португалии).В чем причина такого поведения?

Ответы [ 2 ]

0 голосов
/ 16 сентября 2018

В эластичном поиске, если у вас есть поле типа текста, скажите description.

Одно значение описания: He likes dog but hate cat.

Индекс возврата для этого поля: He/like/dog/but/hate/cat

И есть еще одно поле «ключевое слово», которое представляет собой description.keyword, которое в точности равно He likes dog but hate cat.

Поле ключевого слова требует 100% соответствия.

0 голосов
/ 16 сентября 2018

Понял:

Поля ключевых слов доступны для поиска только по их точному значению

Ссылки: https://www.elastic.co/guide/en/elasticsearch/reference/current/keyword.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...