【发布时间】:2012-09-26 02:20:05
【问题描述】:
我正在使用 Lucene.net 为大约 200 万种产品的数据库编写一个搜索引擎。我正在使用Snowball Analyzer,到目前为止,我对性能和结果集印象深刻。
我似乎无法克服的一个问题是检测搜索输入中缺少的空格。
例如:
用户正在寻找“Black Diamond”品牌产品,但他们搜索的是“blackdiamond”。
由于雪球分析器为 Black Diamond 创建了两个单独的 Tokens,因此我得到 0 个结果。
我可以采取什么方法来纠正这个问题?我对Shingle Analyzer(n-gram) 进行了一些研究,但不确定这是否有帮助。
是否可以将Shingle Analyzer 与SpellChecker 结合使用(这会是一个有效的解决方案)吗?如果我可以在发生这种情况时通过 Did You Mean: 'Black Diamond'? 链接提示人们,这将是一个主意。
【问题讨论】:
-
看看 lucene 4.0 WordBreakSpellChecker issues.apache.org/jira/browse/LUCENE-3523。如果它易于移植,那将是一个简单的解决方案
-
我会试一试的。我敢打赌它对 4.0 有其他依赖关系。我正在运行 3.0,但也许我可以复制这个概念。谢谢
标签: lucene search-engine lucene.net