Возврат всего поля из 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, который утверждает, что делает это. Я лично не проверял это.

https://issues.apache.org/jira/browse/LUCENE-2464

Другие вопросы по тегам