Wildcard at the Beginning of a searchterm -Lucene

僤鯓⒐⒋嵵緔 提交于 2019-11-28 07:21:25

问题


As far as i know lucene(.net) doesn't support the wildcard at the beginning of a searchterm --> http://lucene.apache.org/java/2_0_0/queryparsersyntax.html "Note: You cannot use a * or ? symbol as the first character of a search."

for example *myword

maybe because it's quiet difficult to search "everything" before the searchterm.

Despite that, We are looknig for a way to use the wildcard at the beginning. Does anyone know if this is possible?

One Thought was asearchterm, bsearchterm, ....z*searchterm ... but that seems a bit random to me.

thanks in advance


回答1:


Your question is tagged with Lucene.NET so I assume you mean the .NET version rather than the Java version.

Yes, you can have wildcards at the beginning of a search term by via

var queryParser = new QueryParser(LuceneVersion, "content", new StandardAnalyzer(LuceneVersion));
queryParser.SetAllowLeadingWildcard(true);

but you need to be aware of the performance consequences. Find more detailed source code in this blog.

Since Lucene.NET is a port of the Java version, I suspect you could use the same approach for the Java version. I didn't verify this, though.



来源:https://stackoverflow.com/questions/3412585/wildcard-at-the-beginning-of-a-searchterm-lucene

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!