C# 字段中的多词搜索
我最近开始在lucene.net上玩一个内部项目。我希望使用lucene.net创建一种类型的自动完成。我的索引存储显示名称,当我进行通配符搜索时,即James*它工作正常 问题似乎是当单词之间出现空格时,即James Bon,它似乎忘记了第一个单词,开始尝试匹配Bon 不确定我是否做错了什么,但尝试使用了一些不同的分析仪,但没有运气 有人有什么想法能让我走上正轨吗 2012年11月28日 在再次查看我的项目后,我意识到我正在使用MultiFieldQueryParser来尝试搜索多个字段。尝试了更改默认运算符的建议,但没有成功C# 字段中的多词搜索,c#,lucene.net,C#,Lucene.net,我最近开始在lucene.net上玩一个内部项目。我希望使用lucene.net创建一种类型的自动完成。我的索引存储显示名称,当我进行通配符搜索时,即James*它工作正常 问题似乎是当单词之间出现空格时,即James Bon,它似乎忘记了第一个单词,开始尝试匹配Bon 不确定我是否做错了什么,但尝试使用了一些不同的分析仪,但没有运气 有人有什么想法能让我走上正轨吗 2012年11月28日 在再次查看我的项目后,我意识到我正在使用MultiFieldQueryParser来尝试搜索多个字段。尝试
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);
默认情况下,Lucene.net对提供的术语执行
或搜索,而不是和搜索。使用此代码进行更改:
parser.SetOperator(QueryParser.DEFAULT_OPERATOR_AND);
若您只是在单个字段上执行多词查询,那个么您希望多词的行为类似于“like”操作符,然后使用下面的行
parser.DefaultOperator = QueryParser.Operator.AND;
您是否尝试过queryParser.SetDefaultOperator(queryParser.Operator.AND)代码>?“Lucene支持在单个术语中进行单字符和多字符通配符搜索(而不是在短语查询中)。”感谢您的建议。我会尝试一下,让你知道。