2016-09-16 3 views
0

У меня есть поле «текст», которое мне нужно скопировать в text_en или text_es на основе языка «текст». Ниже мой managed_schema.xml:Solr Обнаружение языка

<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.When я отправляю данные на испанском языке, данные копируются из текста в text_en и text_es, как хорошо!

Как это решить?

Спасибо!

ответ

0

Создавая copyFields от texttext_en до и text_es вы получаете входящие данные в обоих полях независимо от обнаружения языка сайта, то есть то, что copyField должен делать.

UpdateRequestProcessor фактически сделает копию (а не движение), потому что вы установили <bool name="langid.map.keepOrig">true</bool>.

Кроме этого конфигурация процессора выглядит нормально, просто удалите эти экземпляры copyFields и убедитесь, что отображаемые поля text_en и text_es четко определены в вашей схеме.

0

Спасибо за помощь! Проблема решается путем удаления полей копирования и созданные динамические поля

  • *_es и
  • *_en в schema.xml
Смежные вопросы