Подстановочный знак в начале поискового запроса - Lucene - PullRequest
9 голосов
/ 05 августа 2010

Насколько я знаю, lucene (.net) не поддерживает подстановочный знак в начале запроса. -> http://lucene.apache.org/java/2_0_0/queryparsersyntax.html «Примечание: Вы не можете использовать символ * или? В качестве первого символа поиска.»

например * MyWord

может быть, потому что до "searchterm" трудно найти "все".

Несмотря на это, мы ищем способ использовать подстановочный знак в начале. Кто-нибудь знает, возможно ли это?

Одна мысль была searchterm, b searchterm, .... z * searchterm ... но мне это кажется немного случайным.

заранее спасибо

1 Ответ

16 голосов
/ 05 августа 2010

Ваш вопрос помечен Lucene.NET, поэтому я предполагаю, что вы имеете в виду версию .NET, а не версию Java.

Да, вы можете использовать подстановочные знаки в начале запроса с помощью

var queryParser = new QueryParser(LuceneVersion, "content", new StandardAnalyzer(LuceneVersion));
queryParser.SetAllowLeadingWildcard(true);

но вы должны знать о последствиях производительности. Найти более подробный исходный код в этом блоге .

Поскольку Lucene.NET является портом версии Java, я подозреваю, что вы можете использовать тот же подход для версии Java. Я не проверял это, хотя.

...