У меня относительно небольшой индекс, содержащий около 4000 мест. Помимо прочего, я использую его для заполнения поля автозаполнения в форме поиска.
Мой индекс содержит документы с полем Location, содержащим такие значения, как
- Огайо
- Дейтон, Огайо
- Дублин, Огайо
- Колумбус, штат Огайо
Я хочу, чтобы я мог набрать "ohi", чтобы все эти результаты появлялись, и сейчас ничего не отображается, пока я не наберу полное слово "ohio".
Я использую Lucene.NET v2.3.2.1, и соответствующая часть моего кода выглядит следующим образом для настройки моего запроса ....
BooleanQuery keywords = new BooleanQuery();
QueryParser parser = new QueryParser("location", new StandardAnalyzer());
parser.SetAllowLeadingWildcard(true);
keywords.Add(parser.Parse("\"*" + location + "*\""), BooleanClause.Occur.SHOULD);
luceneQuery.Add(keywords, BooleanClause.Occur.MUST);
Короче говоря, я бы хотел, чтобы это работало как предложение LIKE, подобное
SELECT * from Location where Name LIKE '%ohi%'
Могу ли я сделать это с Lucene?