在searchterm -Lucene的开头的通配符

时间:2010-08-05 07:27:33

标签: lucene.net

据我所知,lucene(.net)在searchterm开头不支持通配符 - > http://lucene.apache.org/java/2_0_0/queryparsersyntax.html “注意:您不能使用*或?符号作为搜索的第一个字符。”

例如,

* myword

也许是因为在搜索项目之前搜索“所有内容”很安静。

尽管如此,我们期待在开始时使用通配符的方法。 有谁知道这是否可行?

一个想法是 searchterm,b searchterm,.... z * searchterm ......但这对我来说似乎有点随意。

提前致谢

1 个答案:

答案 0 :(得分:16)

你的问题用Lucene.NET标记,所以我假设你的意思是.NET版本而不是Java版本。

是的,您可以通过

在搜索字词的开头添加通配符
var queryParser = new QueryParser(LuceneVersion, "content", new StandardAnalyzer(LuceneVersion));
queryParser.SetAllowLeadingWildcard(true);

但您需要了解性能后果。在此blog中找到更详细的源代码。

由于Lucene.NET是Java版本的一个端口,我怀疑你可以对Java版本使用相同的方法。不过,我没有证实这一点。