在searchterm -Lucene的开头的通配符

tim*_*tim 9 lucene.net

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

例如*myword

也许是因为在搜索项目之前搜索"所有内容"很安静.

尽管如此,我们还是希望在开始时使用通配符.有谁知道这是否可能?

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

提前致谢

Man*_*red 16

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

是的,你可以在搜索词的开头通过via获得通配符

var queryParser = new QueryParser(LuceneVersion, "content", new StandardAnalyzer(LuceneVersion));
queryParser.SetAllowLeadingWildcard(true);
Run Code Online (Sandbox Code Playgroud)

但你需要了解性能后果.在此博客中查找更详细的源代码.

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

  • 截至今天,在这现在是一个属性: parser.AllowLeadingWildcard = true; (2认同)