Подстановочный знак в начале поискового запроса -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. Я не проверял это, хотя.