【发布时间】:2015-07-24 08:47:39
【问题描述】:
如果我有一个包含这些内容的 fullText 字段
In 2014 and 2015 the results were ... [more] ... and Sony are developing ... [more]
并查询
+loadTime:[2014 TO 2015] +fullText:sony
荧光笔选择 2014 年和 2015 年 作为最佳片段。如何让荧光笔忽略来自查询的 loadTime 部分的匹配项并使用来自搜索的 fullText 部分的匹配项?我想查看 ... sony ... 片段,即使它的分数低于(刚刚发生的)匹配全文的日期部分。
我的代码:
ScoreDoc[] hits = [create search];
IFormatter formatter = new SimpleHTMLFormatter("<b>", "</b>");
QueryScorer scorer = new QueryScorer(query, );
Highlighter highlighter = new Highlighter(formatter, scorer);
for (int i = 0; i < hits.Length; i++)
{
int docId = hits[i].Doc;
float score = hits[i].Score;
Document doc = search.Doc(docId);
string fragments = string.Empty;
if (collectFragments)
{
TokenStream stream = _analyzer.TokenStream("", new StringReader(doc.Get(AppConstants.Fields.FullText)));
fragments = highlighter.GetBestFragments(stream, doc.Get(AppConstants.Fields.FullText), 2, "...");
}
...
}
【问题讨论】:
标签: text lucene full-text-search lucene.net