Солр дисмакс подсвечивающий не уважающий анализатор
В схеме Solr 3.6.2 есть два field
декларации, text
а также exact
<field name="text" type="text" indexed="true" stored="true" />
<field name="exact" type="string" indexed="true" stored="true" />
Бывшее использование StandardTokenizer
и последний KeywordTokenizer
,
Solr запросы, описывающие проблему:
?hl=true
&hl.fl=text,exact
&defType=edismax
&qf=text+exact <-------- here
&q=a-b
Выделите вывод для точного поля:<em>a</em>-<em>b</em>
, Проблема сводка по полю exact
производится с использованием анализатора из text
,
?hl=true
&hl.fl=text,exact
&defType=edismax
&qf=exact <-------- here
&q=a-b
Выделите вывод для точного поля:<em>a-b</em>
, Просто удалив text
от qf
мы получаем правильный анализатор, почему?
1 ответ
Решение
С debugQuery
на
+DisjunctionMaxQuery(((exact:a-b) | ((text:a text:b)~2)))
Подсветка Solr после нахождения совпадения в exact
также, кажется, совпадают a
а также b
только на основании наличия в запросе. hl.requireFieldMatch=true
действительно борется с этим!