【发布时间】:2013-03-05 13:32:18
【问题描述】:
我在使用 Lucene.NET 2.9.4 时遇到问题。也许有人可以帮助我。
目前当用户输入open这个词时,我会自动将搜索引擎更改为*open* .我已经设置了 QueryParser.SetAllowLeadingWildcard(true);我知道,这可能很贵...
我的文字是:
“您可以使用菜单文件/打开来编辑现有文档”
当我使用 open* 或 open 作为搜索词时,lucene 会找到文本。 p>
当我使用 *open* lucene 找不到文本。
为什么不呢?前导通配符有什么问题?我想在单词的开头、结尾和中间找到搜索词。
我想搜索打开和...
- foo bar => 不匹配
- 打开 foo bar => 匹配
- testopen foo bar => 匹配
- testopening foo bar => 匹配
我该怎么做?
【问题讨论】:
-
我在使用 Lucene 时也遇到过一些意外/不一致的结果,但通常是由于存储和查询分析器不匹配造成的。您确定数据是使用您尝试搜索的分析器提交到 Lucene 的吗?
-
是的,我确定。我只在我的程序中使用 StandardAnalyzer ...... new StandardAnalyzer(Lucene.Net.Util.Version.LUCENE_29, this.StopWordFile);