В эластичный поиск я хочу запросить, где я фильтрую данные с термином, и если термин не передан, он должен игнорировать его - PullRequest
0 голосов
/ 27 июня 2019

Я использую запрос multi_match и получаю результаты должным образом, однако, когда я пытаюсь добавить фильтр в запрос, я получаю результаты, но я хочу, чтобы, если в фильтре не было пропущено ни одного члена, он не должен давать ошибка и игнорировать ее.

Я пытался использовать bool must и filter внутри filter, но я все еще получаю сообщение об ошибке. Ниже то, что я имею до сих пор:

{
  "query": {
    "bool": {
      "must": {
        "multi_match": {
          "fields": ["name", "tags"],
          "query": text,
          "fuzziness": "AUTO",
          "operator": "and"
        }
      },
      "filter": [
        {
          "term": {
            "active": true
          },
          "term": {
            "enable": true
          },
          "term": {
            "category": "xxxxxxxx"
          }
        }
      ]
    }
  },
  "_source": [
    "name",
    "_id",
    "productImageURL",
    "inflationPrice",
    "discountedPrice"
  ],
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...