Полнотекстовый поиск с фильтрацией

Не могу построить правильно запрос, возможно было, но то ли пропустил, то ли не могу правильно понять как сформулировать, не нахожу.

Суть проблемы:
У меня в базе есть два поля:

  • название
  • адрес

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

Хотя вообще если я правильно понимаю это должно быть так

  "query": {
    "bool": {
      "must": [
        {"match": {
          "name": "***"
        }},
        {"match": {
          "address": "***"
        }}
      ]
    }
  }

Но это решение не совсем все таки верное - сейчас пробую по разному, все таки ерунду оно дает.

Мне надо чтоб именно выборка из выборки была - то есть по name выбрало и уже среди найденного искало наиболее близкое по адресу. А в данном варианте оно ищет не так

То есть совпадение по имени обязательно, а по адресу желательна? Может, тогда имя в must, а адрес в should?

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.