Redissearch нечеткий поиск на китайском языке
введите сюда описание изображения
Я хочу выполнить нечеткий поиск в Redissearch.
имя представляет собой текстовое поле. Когда я попробовал
FT.SEARCH panda_beta.mp2c.job_store.json:index '@name_fts:*店员* @pk:{16509}' RETURN 2 pk company_id LIMIT 0 1
но не могу найти результат.
Когда я попытался установить name='大员大学路创智天地店'
и искать
FT.SEARCH panda_beta.mp2c.job_store.json:index '@name_fts:*大员* @pk:{16509}' RETURN 2 pk company_id LIMIT 0 1```
the result is output.Why? How can I resolve it?
1 ответ
Для китайского языка необходимо указать язык при создании индекса.
Взгляни наFT.CREATE
документация :
ЯЗЫК {default_lang}
если установлено, указывает язык по умолчанию для документов в индексе. По умолчанию английский.
LANGUAGE_FIELD {lang_attribute}
— атрибут документа, установленный в качестве языка документа.
Во время индексации для предоставленного языка используется стеммер. Если отправлен неподдерживаемый язык, команда возвращает ошибку. Поддерживаемые языки: арабский, баскский, каталанский, датский, голландский, английский, финский, французский, немецкий, греческий, венгерский, индонезийский, ирландский, итальянский, литовский, непальский, норвежский, португальский, румынский, русский, испанский, шведский, тамильский, Турецкий и китайский.
При добавлении документов на китайском языке установите LANGUAGE chinese, чтобы индексатор правильно маркировал термины. Если вы используете язык по умолчанию, условия поиска извлекаются на основе знаков препинания и пробелов. Токенизатор китайского языка использует алгоритм сегментации (через Friso), который сегментирует текст и проверяет его по предопределенному словарю. См. Стемминг для получения дополнительной информации.
ИFT.SEARCH
документация :
ЯЗЫК {язык}
используйте стеммер для предоставленного языка во время поиска расширения запроса. При запросе документов на китайском языке установите китайский язык, чтобы правильно обозначить термины запроса. По умолчанию английский. Если отправлен неподдерживаемый язык, команда возвращает ошибку. См. список языков в FT.CREATE.