Подстановочный знак в начале поискового запроса -Lucene

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

например * мое слово

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

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

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

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

1 ответ

Решение

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

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

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

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

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

Другие вопросы по тегам