我最近开始在工作中使用 lucene.net 进行内部项目。我正在寻找使用 lucene.net 创建一种自动完成功能。我的索引存储显示名称,当我进行通配符搜索时,即 James*,它工作正常。
问题似乎是当空格出现在单词之间时,即 James Bon* 它似乎忘记了第一个单词并开始尝试匹配 Bon。
不确定我是否做错了什么,但尝试使用一些不同的分析器但没有运气。
有人有任何想法可以让我走上正轨吗?
28/11/2012
再次查看我的项目后,我意识到我正在使用 MultiFieldQueryParser 来尝试搜索多个字段。尝试了更改 DefaultOperator 的建议,但没有运气。
var analyzer = new StandardAnalyzer(Lucene.Net.Util.Version.LUCENE_30);
var mparser = new MultiFieldQueryParser(Lucene.Net.Util.Version.LUCENE_30, new string[] { "displayname", "company", "email" }, analyzer);