Подстановочный знак в начале searchterm-Lucene

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

например, * myword

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

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

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

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

9
задан tim 5 August 2010 в 07:27
поделиться

1 ответ

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

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

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

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

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

16
ответ дан 4 December 2019 в 12:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: