Какова наилучшая практика для запроса точного соответствия поля вasticsearch? - PullRequest
1 голос
/ 10 июля 2019

Каков наилучший способ запроса точного значения поля вasticsearch?Скажем, например, у меня есть:

profile: {
     email: "test@email.com"
}

Как проверить, есть ли в профиле точно такой же test@email.com адрес электронной почты?

1 Ответ

1 голос
/ 10 июля 2019

Всякий раз, когда вам требуется точный поиск, вы можете определить тип данных этого поля как keyword. Если вам требуется как частичный поиск (анализ), так и точный поиск по одному и тому же полю, вы можете определить подполе для того же поля и обратиться к этому подполю, когда требуется точный поиск.

Итак, определение поля выглядит так:

"email": {
  "type": "text",
  "fields": {
    "keyword": {
      "type": "keyword"
    }
  }
}

Затем вы можете использовать термин запроса для точного поиска.

{
  "query": {
    "term": {
      "email.keyword": "test@email.com"
    }
  }
}

ПРИМЕЧАНИЕ: Определение типа как keyword приводит к точному поиску с учетом регистра.

...