Почему бы Solr не индексировать некоторые сегментированные слова
Я пытаюсь проиндексировать некоторые китайские документы с помощью Solr, но похоже, что Solr не индексирует некоторые сегментированные слова.
Анализатор, который я использую, является анализатором IK http://code.google.com/p/ik-analyzer/.
Поле для индексации:
<field name="hospital_alias_splitted" type="cn_ik" indexed="true" stored="true" multiValued="true" omitNorms="false"/>
cn_ik определение:
<fieldType name="cn_ik" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="org.wltea.analyzer.solr.IKTokenizerFactory" useSmart ="false"/>
</analyzer>
Например, слово, которое будет проиндексировано, это "AB" (без кавычек). После сегментации слов с использованием китайского анализатора я получил 3 токена, это "AB", "A" и "B".
Как мы видим, первый токен "AB" охватывает следующие два токена.
После передачи этих токенов Solr, похоже, что Solr только индексы "AB", "A" и "B" игнорируются. Потому что, когда я ищу "А" или "Б", ничего не получается.
Я предполагаю, что когда Solr индексирует "AB", оно уже достигает конца индексируемого слова, поэтому "A" и "B" игнорируются.
Использование Люка и обработчика запросов анализа не показывает мне больше подсказок. Я не уверен, что это ошибка или особенность Solr.
Любой комментарий или предложение?
Спасибо:)
1 ответ
(Поскольку я не могу комментировать вопрос, я пишу здесь)
Я бы порекомендовал вам попробовать это с разными анализаторами. Поскольку вы не сообщили нам свой анализатор, я предполагаю, что вы используете что-то по умолчанию, например, CJK и так далее.
Насколько я знаю, есть больше анализаторов для китайского и таких языков, как китайский, которые не имеют пробелов между двумя словами. Они также могут помочь вам.
Было бы очень приятно увидеть некоторую часть вашей схемы об этом поле...
редактировать: вы также можете проверить эту ссылку