КодировкиПоддержка UTF-8 и однобайтных наборов символовZend_Search_Lucene в своей работе использует кодировку UTF-8. Файлы индекса хранят данные unicode в кодировке Modified UTF-8 от Java. Ядро Zend_Search_Lucene полностью поддерживает его за одним исключением. [1] Действующая кодировка для входных данных может быть указана через API Zend_Search_Lucene. Данные будут автоматически преобразованы в кодировку UTF-8. Используемый по умолчанию анализатор текста
Несмотря на это, используемый по умолчанию анализатор текста
(который также применяется в парсере запросов) использует
Совместимый с UTF-8 анализатор текстаZend_Search_Lucene также содержит совместимый с UTF-8 анализатор текста с ограниченным функционалом.
Он разбивает на лексемы данные для индексации в режиме UTF-8, не испытывая проблем с любыми входящими в UTF-8 символами. Данный анализатор имеет два ограничения:
Из-за этих ограничений он не используется по умолчанию, но может быть полезен некоторым.
Нечувствительность к регистру может быть сэмулирована с помощью
То же самое преобразование должно выполняться и для запросов:
[1]
Zend_Search_Lucene поддерживает только символы
Basic Multilingual Plane (от 0x0000 до 0xFFFF) и не
поддерживает дополнительные символы (символы, чьи коды больше
0xFFFF).
Java 2 представляет эти символыв виде пары значений
символьного типа (16 бит), перое из диапазона 0xD800-0xDBFF,
второе из диапазона 0xDC00-0xDFFF. Тогда они кодируются как
обычные символы UTF-8 в шести байтах. Стандартное
представление UTF-8 использует четыре байта для
дополнительных символов.
[2]
Преобразование в 'ASCII//TRANSLIT' может зависеть от текущей
локали и операционной системы.
|
|