Solr Language Detection
У меня есть поле "текст", которое мне нужно скопировать в text_en или text_es на основе языка "текст". Ниже приведен мой managed_schema.xml:
<updateRequestProcessorChain name="langid">
<processor class="org.apache.solr.update.processor.TikaLanguageIdentifierUpdateProcessorFactory">
<bool name="langid">true</bool>
<str name="langid.fl">text</str>
<str name="langid.langField">tweet_lang</str>
<str name="langid.whitelist">es,en</str>
<bool name="langid.map">true</bool>
<!--bool name="langid.map.individual">true</bool-->
<str name="langid.map.individual.fl">text</str>
<bool name="langid.map.keepOrig">true</bool>
<str name="langid.fallback">ko</str>
</processor>
<processor class="solr.LogUpdateProcessorFactory" />
<processor class="solr.RunUpdateProcessorFactory" />
</updateRequestProcessorChain>
Я создал поле для копирования text_en и text_es. Когда я публикую данные на испанском языке, данные копируются из текста в text_en и text_es!
Как мне это решить?
Спасибо!
2 ответа
Создавая copyFields из text
в text_en
а также text_es
вы получаете входящие данные в оба поля независимо от обнаружения языка, именно это и должен делать copyField.
UpdateRequestProcessor фактически сделает копию (а не переместится), потому что вы установили <bool name="langid.map.keepOrig">true</bool>
,
Кроме того, конфигурация процессора выглядит нормально, просто удалите эти copyFields и убедитесь, что сопоставленные поля text_en
а также text_es
хорошо определены в вашей схеме.
Спасибо за внимание! Проблема решается удалением полей копирования и созданных динамических полей
*_es
а также*_en
вschema.xml