Изменить стандартный анализатор Lucene

Я пытаюсь найти документы по названию с помощью StandardAnalyzer из Lucene 4.10.3. Я читаю цитаты из файла и добавляю двойные кавычки для построения запроса с помощью этого:

Query query = parser.parse("\""+doc.get("title")+"\"");

Проблема в том, что когда он читает цитату, ФИЛИППИНЫ СКАЗЫВАЮТ, ЧТО ДОЛГ ", ЛУЧЕНЕ, ЧЕМ МЕКСИКА возвращает эту ошибку

Cannot parse '"PHILIPPINES SAYS DEBT PACT "BETTER THAN MEXICO'S"': Lexical error at line 1, column 52.  Encountered: <EOF> after : ""

Как я могу решить это?

Спасибо!

1 ответ

Решение

Проблема заключается в том, что нужно избегать цитирования в тексте, который вы ищете. Вы можете избежать поиска текста, используя QueryParser.escape:

Query query = parser.parse("\"" + QueryParser.escape(doc.get("title")) + "\"");
Другие вопросы по тегам