Недавно я начал играть с lucene.net для внутреннего проекта на работе. Я хочу создать тип автозаполнения с помощью lucene.net. В моем индексе хранится отображаемое имя, и когда я делаю поиск подстановочных знаков. Джеймс * работает отлично.Несколько слов поиска в поле
Проблема, кажется, в том, что пространство между словом i.e. 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);
Вы пробовали 'queryParser.SetDefaultOperator (QueryParser.Operator.AND);'? –
«Lucene поддерживает одно- и многосимвольные групповые поисковые запросы в пределах одного термина (не в фразовых запросах)». [Источник] (http://lucene.apache.org/core/old_versioned_docs/versions/2_9_1/queryparsersyntax.html) –
Спасибо за предложение. Попробуй и расскажи. –