2016-09-16 153 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_entext_es你输入数据到这两个领域无论langage检测的,那是什么copyField是应该做的。

updateRequestProcessor实际上会复制(而不是移动),因为您设置了<bool name="langid.map.keepOrig">true</bool>

除此之外,处理器的配置看起来很好,只需删除这些copyField,并确保映射字段text_entext_es在您的架构中定义良好。

0

感谢您的高举! 问题通过移除复制场解决,创建的动态领域

  • schema.xml
*_es
  • *_en