2015-09-08 3 views
0

Я использую запрос фразы для поиска hibernate lucene в моем коде. Я работаю, но я хочу сделать точный поиск, который является регистром Insensitive.I попробовал термин запрос, но он чувствителен к регистру. Я хочу найти например:lucene фраза точный поиск

BeautifulRainy Day. Если я ищу «дождливый день», результат должен быть 0 ударов. Если я ищу «прекрасный день», результат должен быть 1 удар. Если я ищу «День», результат должен быть 0 ударов.

В принципе, я хочу, чтобы поиск типа java (.equalignorecase) не содержал (.contains). Я хочу продолжать использовать запрос фразы, если это возможно.

ответ

0

Если вы хотите нечувствительность к регистру, вы должны индексировать свои данные без учета регистра.

Вы можете сделать это, например, добавив другое поле в свой класс с помощью значения toLowerCase() вашего String и вместо этого поискате это поле.

(Или, может быть, спящий режим поиска позволяет регистронезависимое индексацию с опцией?)

0

Привет Пожалуйста, пройти через этот answer дается мне. которые ищут нечувствительный к регистру термин. Только что прошли строку поиска в двойных кавычках, которые действуют как поиск точного соответствия.

QueryParser parser = new QueryParser(Version.LUCENE_34, "TITLE" ,new StandardAnalyzer(Version.LUCENE_34)); 

    Query query; 

    query = parser.parse("\"beautifulrainy Day\""); 

    TopDocs hits = searcher.search(query,3); 

Здесь TITLE это имя поля, так название поля, которое вы использовали в момент индексации.

Смежные вопросы