Elasticsearch Объединение термина и запроса фразы и проблемы производительности - PullRequest
0 голосов
/ 29 января 2019

Ниже я поделился необработанным запросом 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, помеченное как [ключевое слово], чтобы получить точное значениеmatching.

   {
  "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"
            ]
          }
        }
      ]
    }
  }
}

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

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

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

...