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
Другие вопросы по тегам