Термин фильтр внутри функции распада - PullRequest
0 голосов
/ 08 октября 2019

У меня есть этот блок оценки функции запроса

  "must": {
    "function_score": {
      "min_score":0.1,
      "boost": 1,
      "functions": [
        {
          //i want to do term filter here
          //"query" : {"term": {"location_type":"landmark"} },
          "linear": {
            "coordinates": {
              "offset": "500m",
              "origin": [
                106.8456,
                -6.2088
              ],
              "scale": "1m"
            }
          }
        },
        { //another function here}
      ]
    }
  }

Теперь у меня вопрос: можно ли выполнять фильтрацию терминов вместе с функцией линейного затухания вasticsearch?

Так что я буду показывать элементы внутри координат и только с типом ориентира location_type.

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

1 Ответ

0 голосов
/ 09 октября 2019

Вам нужно использовать ключевое слово filter вместо query, и тогда оно будет работать:

  "must": {
    "function_score": {
      "min_score":0.1,
      "boost": 1,
      "functions": [
        {
  -->     "filter" : {"term": {"location_type":"landmark"} },
          "linear": {
            "coordinates": {
              "offset": "500m",
              "origin": [
                106.8456,
                -6.2088
              ],
              "scale": "1m"
            }
          }
        },
        { //another function here}
      ]
    }
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...