Подтверждение того, что локаль вашего сайта — японская или что включена опция search tokenize chinese japanese korean
Да, я подтвердил, что оба параметра настроены правильно.
Произошло нечто удивительное. После изменения параметра «минимальная длина поискового запроса» со стандартного значения 2 на 1 теперь можно искать по катакане. Не знаю, почему это сработало, но имеет ли эта настройка к этому отношение?
Я могу воспроизвести эту проблему, и она в основном обусловлена сочетанием
и
Термин テスト преобразуется в テ ス ト после обработки через CppjiebaRb, что вызывает срабатывание нашего ограничителя min_search_length.
@sam Исправить это непросто, поскольку для окончательного решения подобных проблем с поиском по-японски нам нужен корректный токенизатор. Мы можем вносить точечные правки, но это превратится в бесконечную борьбу с последствиями.
В наши дни я не использую Ruby и не знаю требований Discourse, но, похоже, существует gem для «mecab».
Я обратился к этой теме, потому что обнаружил, что поиск некоторых слов не работает на моем публичном хостинге. У меня установлены следующие параметры:
минимальная длина поискового термина: 1
токенизация поиска для китайского, японского и корейского языков: включена
локаль по умолчанию: японская
Насколько я помню, я инициализировал сайт с английской локалью, а позже изменил настройку на японскую.
Слова, которые не удалось найти при поиске: «北側», «真上», «一般». Эти слова содержатся в этой теме. Многие слова работают, но эти — нет. Я не вижу никакой закономерности в том, почему одно слово ищется, а другое — нет.
Есть ли способ проверить сгенерированный поисковый индекс на хостинге? Я владею как Ruby, так и японским языком, поэтому, если существует способ увидеть, как Discourse генерирует поисковый индекс для CJK-языков, я могу быть полезен.
CppjiebaRb или cppjieba, упомянутые @tgxworld, судя по всему, предназначены для китайского языка. Используются ли они для японской локали?
K сожалению, MeCab не подходит, так как он распространяется под лицензией GPL, а мы предпочитаем использовать только зависимости с лицензиями MIT и BSD.
У нас есть pull-запрос, который добавит TinySegmenter: Javascriptだけで実装されたコンパクトな分かち書きソフトウェア — у него совместимая лицензия. Пожалуйста, попробуйте сегментацию и сообщите, насколько хорошо она работает. На сайте есть форма, которую можно использовать для тестирования.