Elasticsearch: как объединить регулярное выражение с фильтром - PullRequest
0 голосов
/ 20 марта 2019

У меня есть поиск, который в некоторых ситуациях нужно искать с помощью запроса регулярных выражений

GET my-index/_search
{
  "query": {
    "regexp":{  
      "name":".*something.*"
    }  
  }

}

А иногда нужно отфильтровать, например:

GET /my-index/_search
{  
  "query":{  
      "bool":{  
      "filter":[  
           {  
              "term":{  
                 "createdByEmail.keyword":"me.email@example.com"
              }
           }
      ]
  }
}  

Я хочу объединить эти 2 так, чтобы это показывало только те разрешения, в которых имя соответствует регулярному выражению, а madeByEmail соответствует адресу электронной почты, который я отправляю.

1 Ответ

2 голосов
/ 20 марта 2019

Вы можете добавить первый запрос в условие must, как показано ниже:

{
  "query": {
    "bool": {
      "must": [
        {
          "regexp": {
            "name": ".*something.*"
          }
        }
      ],
      "filter": [
        {
          "term": {
            "createdByEmail.keyword": "me.email@example.com"
          }
        }
      ]
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...