gpt4 book ai didi

c# - 如何让 Lucene (.NET) 使用通配符正确突出显示?

转载 作者:太空狗 更新时间:2023-10-29 21:47:40 25 4
gpt4 key购买 nike

我直接在我的 ASP.NET/C# Web 应用程序中使用 Lucene.NET API。当我使用通配符(如“fuc*”)进行搜索时,荧光笔不会突出显示任何内容,但当我搜索整个单词(如“fuchsia”)时,它会很好地突出显示。 Lucene 是否能够使用与匹配相同的逻辑来突出显示?

以下各种可能相关的代码片段:

var formatter = new Lucene.Net.Highlight.SimpleHTMLFormatter(
"<span class='srhilite'>",
"</span>");

var fragmenter = new Lucene.Net.Highlight.SimpleFragmenter(100);
var scorer = new Lucene.Net.Highlight.QueryScorer(query);
var highlighter = new Lucene.Net.Highlight.Highlighter(formatter, scorer);
highlighter.SetTextFragmenter(fragmenter);

然后在每次点击...

string description = Server.HtmlEncode(doc.Get("Description"));
var stream = analyzer.TokenStream("Description",
new System.IO.StringReader(description));
string highlighted_text = highlighter.GetBestFragments(
stream, description, 1, "...");

我正在使用 QueryParser 和 StandardAnalyzer。

最佳答案

您需要确保将解析器重写方法设置为 SCORING_BOOLEAN_QUERY_REWRITE

自从 Lucene v2.9 出现以来,这种改变似乎变得必要了。

希望对您有所帮助,

关于c# - 如何让 Lucene (.NET) 使用通配符正确突出显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2837642/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com