Apache Solr возвращает только те поля, в которых было найдено значение / строка запроса - PullRequest
0 голосов
/ 07 февраля 2019

Я только начинаю работать с Apache Solr.

Я успешно прошел учебники по Apache и теперь создал свою собственную коллекцию и проиндексировал мои файлы.

Хотя документация обширна, яне могу найти, если есть способ запросить все поля, но только вернуть поля, в которых была найдена строка / запрос поиска.

Например, если у меня есть файл: Filename: Weekly Report For Company X.pdf

Связанные / индексированные метаданные:

"id":"S:\\Weekly Reports\\JAN\\Weekly Report For Company X.PDF",
"date":["2017-11-02T19:14:07Z"],
"pdf_pdfversion":[1.6],
"company":["Microsoft"],
"access_permission_can_print_degraded":[true],
"subject":["weekly report; reports; weekly"],
"contenttypeid":["0x010100F29081EC69D67544A17D8172A093E42E"],
"dc_format":["application/pdf; version=1.6"],

Если я запрашиваю «Еженедельный отчет», я хочу только вернуть поля 'id' и 'subject', так как это единственные поля, которые содержат фактические запрошенныеценности.Если бы другие поля содержали строку, я бы тоже хотел, чтобы они возвращались.

Я склоняюсь к «это невозможно сделать» (но надеюсь, что я ошибаюсь), поскольку я сравниваю это с запросом SQL.Он должен знать, какие поля возвращать в операторе SQL, и не удаляет поля на основе отсутствия совпадающей строки.

Поскольку я не знаю совпадающие поля перед выполнением запроса, я не могу использовать опцию списка фильтров вточка выполнения запроса.

Возможно ли это?

1 Ответ

0 голосов
/ 08 февраля 2019

Хотя это может быть не совсем то, что вам нужно, но вы можете имитировать подобное поведение с подсветкой.

Все, что вам нужно сделать - это создать dismax запрос с qfвсе имеющиеся у вас поля (например, qf=id,subject,company)

Затем вам нужно запросить выделение , запросить все поля для него (hl.fl=id,subject,company) и enable hl.requireFieldMatch который заставит Solr возвращать только те поля, которые были сопоставлены для запроса.

В этом случае у вас будет выделенный раздел, который будет содержать идентификаторы совпадающих документов и только выделенное содержимое matched поля

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