Solr语言检测

时间:2016-09-16 00:03:24

标签: apache solr twitter-oauth solr6

我有一个字段" text",我需要根据" text"的语言将其复制到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 个答案:

答案 0 :(得分:0)

通过创建从texttext_entext_es的copyField,您可以将传入数据传入这两个字段,而不管语言检测是什么,这就是copyField应该做的事情。

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

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

答案 1 :(得分:0)

感谢抬头! 通过删除复制字段和创建动态字段

解决了该问题
  • *_es
  • *_en
  • schema.xml