FastVectorHighlighter подсветка фраз не работает с stemming
Попытка написать стеммер для хранения как основы, так и исходного слова привела к некоторым проблемам с выделением фраз с использованием FastVectorHighlighter
,
Входная строка foo bar baz
с ba
быть стволом bar
, Ниже изображение иллюстрирует анализ
Поиск по фразе дает совпадение, но не выделяет его вообще
http://localhost:8080/solr/select
?q="foo bar baz"
&qf=text
&hl.requireFieldMatch=true
&hl.fl=text
&hl.usePhraseHighlighter=true
&hl.boundaryScanner=breakIterator
&hl.useFastVectorHighlighter=true
&hl=true
&defType=edismax
куда hl.bs.type=WORD
используется boundayScanner
,
Оба подхода, hl.useFastVectorHighlighter=false
и цитаты из запроса, приводит к выделению для всех терминов.
Solr 3.6.2
используется, и поле определено ниже
<field name="text" type="text" indexed="true" stored="true"
multiValued="true" termVectors="true"
termPositions="true" termOffsets="true"/>
И анализируется как
<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="my.custom.StemmerFactory" preserveOriginal="true"/>
</analyzer>
</fieldType>
1 ответ
Решение
Оказывается hl.fragSize
не было установлено достаточно большое значение, чтобы включить всю выделенную последовательность. Глупые проблемы часто бывают худшими.