Возврат всего поля из GetBestFragment в FastVectorHighlighter
В Highlighter.Net мы можем использовать NullFragmenter для возврата всего содержимого поля. Есть ли способ сделать это в FastVectorHighlighter.Net?
3 ответа
Если вы используете SimpleFragListBuilder-fragmenter для FastVectorHighlighter, необходимо изменить общедоступные статические свойства фрагментатора для управления размером фрагмента:
var fieldContent = "some data";
SimpleFragListBuilder.MARGIN = fieldContent.Length;
SimpleFragListBuilder.MIN_FRAG_CHAR_SIZE = SimpleFragListBuilder.MARGIN*3;
var result = highlighter.GetBestFragment(.., fragCharSize: SimpleFragListBuilder.MIN_FRAG_CHAR_SIZE);
(подробности см. в источнике - 'Lucene.Net 3.0.3 SimpleFragListBuilder.cs' http://lucenenet.apache.org/docs/3.0.3/dd/d38/_simple_frag_list_builder_8cs_source.html).
Разве это не вариант просто использовать document.Get("field_name")
и вернуть все содержимое поля таким образом? В любом случае, вы, вероятно, хотите, чтобы документ был где-то в контексте (так как GetBestFragment()
), так почему бы просто не использовать его?
Существует патч для Java FVH, который утверждает, что делает это. Я лично не проверял это.