【发布时间】:2012-08-04 09:28:10
【问题描述】:
我正在编辑一个 lucene .net 实现 (2.3.2) 以包括词干和自动通配符(在单词末尾添加 *)。
我发现带有通配符的确切单词不起作用。 (所以 stack* 适用于 stackoverflow,但 stackoverflow* 没有受到影响),并且想知道是什么原因造成的,以及如何解决它。
提前致谢。 (也感谢你没有问我为什么要实现自动通配符和词干。)
我将让查询始终作为查询的前缀,这样我就不必在查询中添加任何讨厌的“*”,所以我们会看看是否有什么变得清楚。
编辑:只有词干的词不能使用通配符。示例 Silicate* 不起作用,但 silic* 起作用。
【问题讨论】:
-
您的分析器标记器如何“stackoverflow”?
-
肯定是重复的(抱歉),但不是完全一致的。我不明白为什么这不起作用。我想这是因为通配符短语的分析方式与索引不同,但更具体的答案可能会对我有所帮助。
-
@jpountz 抱歉,刚刚意识到它只发生在词干的情况下。所以“硅酸盐*”不起作用,但“stackoverflow*”确实起作用。
标签: lucene lucene.net wildcard stemming