Мы используем Lucene.NET для осуществления полнотекстового поиска на веб-сайте клиентов. Сам поиск уже работает, но теперь мы хотим реализовать модификацию.
В настоящее время все термины добавляются *
, что заставляет Lucene выполнить то, что я бы классифицировал как StartsWith
поиск.
В будущем мы хотели бы иметь поиск, который выполняет что-то вроде Contains
, а не StartsWith
.
Мы используем
- Lucene.Net 2.9.2.2
- StandardAnalyzer
- QueryParser по умолчанию
Примеры:
(Title:Orch*)
совпадений: Orchestra
но:
(Title:rch*)
не соответствует: Orchestra
Мы хотим, чтобы первое и второе совпадали Orchestra
.
По сути, я хочу прямо противоположное тому, что было задано в этом вопросе, я не уверен, почему для этого человека Lucene выполнил Contains
, а не StartsWith
по умолчанию:
Почему этот запрос Lucene "содержит" вместо "startWith"?
Как мы можем это сделать?
У меня такое чувство, что это как-то связано с анализатором, но я не уверен.