Сделать elasti c поиск вернет только имена полей, соответствующие моему запросу - PullRequest
0 голосов
/ 24 апреля 2020

Я использую elasti c запрос поиска для запроса к моей базе данных.
В моей базе данных будут разные объекты, и у каждого объекта будут имена полей.
Если я задаю какое-либо ключевое слово в качестве своего запроса, я получаю все объекты, имена полей которых соответствуют моему запросу. Сюда входят и другие имена полей для этого конкретного объекта.
Мой вопрос: есть ли способ получить объекты только с именами полей, которым сопоставляется мой запрос?
Например, атрибуты моих объектов ["first name", "last name", "city"]. Предположим, мой объект Obj1 имеет имя как «AB C», а мой объект Obj2 имеет город как «AB C». Теперь, когда я даю любую строку запроса "AB C", результат должен быть похож на это.

{
  "results": [
    {
      "first_name": "ABC"
    },
    {
      "city": "ABC"
    }
  ],
  "result_count": 2,
  "cursor": "2"
}

Любые предложения приветствуются. Заранее спасибо

1 Ответ

0 голосов
/ 24 апреля 2020

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

С подсветкой вы можете добавлять собственные теги HTML / CSS. Пожалуйста, ознакомьтесь с документацией по выделению ниже.

https://www.elastic.co/guide/en/elasticsearch/reference/7.6/search-request-body.html#request -body-search-подсветка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...