Я использую Lucene.net в своем проекте для поиска клиентов. У меня есть индекс Lucene, и поиск возвращает ожидаемые результаты для всех моих проиндексированных полей, однако, когда я ищу специально для клиентов в Индиане или Орегоне, я получаю нулевые результаты, несмотря на то, что моя база данных отражается иначе.Lucene Query для «OR» и «IN»
В моем тестовом примере эти состояния сокращены до IN и OR соответственно в моем индексе lucene. Поиск других полей даст результаты для клиентов в этих состояниях, поэтому я знаю, что они индексируются.
Пример:
State:(fl) returns results for customers in Florida, as expected.
State:(in) returns no results
State:(or) returns no results
State:(ar*) returns results for customers in Arkansas, as expected.
State:(in*) returns no results
State:(or*) returns no results
State:("mi") returns results for customers in Michigan, as expected.
State:("or") returns no results
State:("in") returns no results
State:("\\ca") returns results for customers in California, as expected.
State:("\\or") returns no results
State:("\\in") returns no results
На соответствующую записку, в поисках имен, содержащих AND, OR, и в работе без выпуска:
Name:(and*) returns results for Andrew, Andrea, Andy, etc.
Name:(in*) returns results for Inge, Ina, Indie, etc.
Name:(or*) returns results for Oris, Orlando, Orville, etc.
Я попытался следующие для создания своих индексов:
new Field("State", (String.IsNullOrWhiteSpace(ShippingState) ? "" : ShippingState), Field.Store.YES, Field.Index.ANALYZED);
new Field("State", (String.IsNullOrWhiteSpace(BillingState) ? "" : BillingState), Field.Store.YES, Field.Index.ANALYZED);
new Field("State", (String.IsNullOrWhiteSpace(ShippingState) ? "" : ShippingState) + " " + (String.IsNullOrWhiteSpace(BillingState) ? "" : BillingState), Field.Store.YES, Field.Index.ANALYZED);
Я также рассмотрел другие решения подобных проблем, такие как how to properly escape OR and AND in lucene query?, но мне не повезло в адаптации этих решений к этой проблеме. Я использую Lucene.NET 3.0.3.
Спасибо за вашу помощь, femtoRgon. Я внесу изменения в свой код. – mckennawebdev