Разрыв слова в языках без пробелов между словами (например, азиатский)?
Я бы хотел, чтобы полнотекстовый поиск MySQL работал с текстом на японском и китайском, а также на любом другом языке. Проблема заключается в том, что эти языки и, возможно, другие языки обычно не имеют пробелов между словами. Поиск бесполезен, когда вы должны ввести то же предложение, что и в тексте.
Я не могу просто поставить пробел между каждым символом, потому что английский тоже должен работать. Я хотел бы решить эту проблему с PHP или MySQL.
Могу ли я настроить MySQL для распознавания символов, которые должны быть их собственными единицами индексации? Есть ли модуль PHP, который может распознавать эти символы, чтобы я мог просто бросить пробелы вокруг них для индекса?
Обновить
Частичное решение:
$string_with_spaces =
preg_replace( "/[".json_decode('"\u4e00"')."-".json_decode('"\uface"')."]/",
" $0 ", $string_without_spaces );
Это делает класс персонажей из, по крайней мере, некоторых из символов, которые мне нужно обработать специально. Я, наверное, должен упомянуть, что можно индексировать текст.
Кто-нибудь знает все диапазоны символов, которые мне понадобятся для вставки пробелов?
Кроме того, должен быть лучший, портативный способ представления этих символов в PHP? Исходный код в буквальном Unicode не идеален; Я не узнаю всех персонажей; они могут не отображаться на всех машинах, которые мне приходится использовать.