Elasticsearch Объединение термина и запроса фразы и проблемы производительности

Ниже я поделился необработанным запросом Elastic Search. Я использовал ElasticSearch 6.X verison.

В указанном выше запросе ElasticSearch Raw я пытаюсь сгенерировать результат, подобный этой команде t-sql ниже.

Вот команда T-Sql

Select * from where Departman=”IT” and CountryCoude=”US” and employeeName Like’Ey%’ and employeeSurname like’Ars%’ and birthdate>=’1991-01-01’

Вот необработанный запрос для ElasticSearch

Примечание: поле Departman и Country помечено как [ключевое слово], чтобы получить точное соответствие.

   {
  "size": 3,
  "query": {
    "bool": {
      "must": [
        {
          "match_phrase_prefix": {
            "employeeName": {
              "query": "Ey"
            }
          }
        },
        {
          "match_phrase_prefix": {
            "emplotyeSurname": {
              "query": "Ars"
            }
          }
        },
        {
          "range": {
            "birthday": {
              "gte": "1991-01-01T00:00:00"
            }
          }
        }
      ],
      "filter": [
        {
          "terms": {
            "Departman": [
              "IT"
            ]
          }
        },
        {
          "terms": {
            "CountyryCode": [
              "US"
            ]
          }
        }
      ]
    }
  }
}

У меня есть несколько вопросов об этом упругом поисковом запросе.

Во-первых, я пытаюсь объединить термин и сопоставить запрос. Я прав или у вас есть какой-нибудь совет для меня?

Там я использовал ключевое слово фильтра в департаменте и стране. Моя цель состоит в том, чтобы использовать возможность кеширования ElasticSearch для фильтров через отдел и поле countryCode. Есть ли я прав?

0 ответов

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