В моем источнике данных есть много специальных символов, таких как косая черта, минус, плюс и т. Д. Многие из этих символов приносят проблемы в lucene.
Вот почему я решил закодировать все строки, которые я поместил в индекс.
Например, яблоко / груша станет яблоком% 2Fpear
Я полагаю, что поиск той же строки вернет мне этот документ.
Но я возвращаюсь домой с пустыми руками. Что не так?
- EDIT -
После некоторого дурачения я заметил, что запросы, которые я создаю в Luke с помощью StandardAnalyzer (с любым анализатором в этом отношении), изменяют мой% 2 в пространстве. Отсюда нет результатов. Можно ли как-нибудь сделать так, чтобы запрос анализатора не конвертировал эти? Может быть, я должен использовать другой метод экранирования, чем% XX?
- Подробнее -
Я использую StandardAnalyzer как для индексации, так и для запросов.
Я не кодирую пробелы. Это одна из причин, по которой я быстро применил свою собственную кодировку вместо использования кодировщика URL по умолчанию.
Превращение яблоко / груша в яблочная груша имело бы смысл, но по моим реальным данным это не всегда (с помощью фруктовой штуки, чтобы защитить невинных) и построение интеллекта на том, когда вставьте пробелы, и когда не будет слишком много рисков.
Используя Люка, я вижу, что мое поле содержит appel% 2Fpear . Поиск fruitName: приложение работает. Поиск fruitName: appel% 2Fpear не делает и не делает fruitName: appel% 2fpear .