Répondre

0

N'est-ce pas une option d'utiliser simplement document.Get("field_name") et de renvoyer tout le contenu du champ d'une telle manière? Vous avez probablement votre document quelque part dans le contexte de toute façon (comme vous avez besoin d'ID de document à GetBestFragment()), alors pourquoi ne pas simplement l'utiliser?

+0

il ne sera pas mis en évidence – Midhat

+0

Vous pouvez envelopper ce contenu avec votre formattter html (je sais, c'est conceptuellement moche, mais parfois de telles choses sont inévitables). – buru

+0

Le problème serait où insérer le formatter html. C'est tout le point d'utiliser le surligneur – Midhat

2

Si vous utilisez SimpleFragListBuilder -fragmenter pour FastVectorHighlighter alors besoin de modifier une des propriétés statiques publiques de fragmenter pour gérer la taille du fragment:

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); 

(voir la source pour plus de détails - ' Lucene.Net 3.0.3 SimpleFragListBuilder.cs ' [http://lucenenet.apache.org/docs/3.0.3/dd/d38/_simple_frag_list_builder_8cs_source.html])

+0

Je voudrais définir SimpleFragListBuilder.MIN_FRAG_CHAR_SIZE = 0 juste pour ne pas avoir à vous en préoccuper. Et en envoyant fragCharSize: desiredMaximumLength. – Valentin