Solr выделяет неправильные слова - PullRequest
0 голосов
/ 15 января 2020

У меня есть документ, который

{'remaining': 'planet holly wood las vegas','id': 'c6d8e7e5-7ba9-4b68-ae0b-bb31ec4872f3'}

мой запрос remaining:(((mirage OR *holly* OR (planet AND hollywood)) AND (las AND vegas)) AND id:c6d8e7e5-7ba9-4b68-ae0b-bb31ec4872f3)

в результате выделения:

{'c6d8e7e5-7ba9-4b68-ae0b-bb31ec4872f3': {'remaining': ['<em>planet</em> <em>holly</em> wood <em>las</em> <em>vegas</em>']}}

Почему planet выделены? Я использую Solr 8,4 Спасибо.

1 Ответ

0 голосов
/ 15 января 2020

Подсвечивается, потому что это часть вашего запроса.

В общем, подсветка работает для всех токенов, которые соответствуют запросу, а не только для тех, которые дают попадание (и по умолчанию попадание даже не необходимо в поле, на котором вы подсвечиваете - просто, чтобы токен запроса присутствовал в выделенном значении).

Вы можете слегка изменить это, используя hl.requireFieldMatch, но я не уверен, что это Вы будете работать с дополнительными предложениями в вашем OR утверждении.

hl.requireFieldMatch

По умолчанию false, все условия запроса будут выделены для каждое поле, которое нужно выделить (hl.fl) независимо от того, к каким полям относится анализируемый запрос. Если задано значение true, будут подсвечены только те условия запроса, которые выровнены с подсвечиваемым полем.

Полный список вариантов выделения доступен в справочном руководстве .

...