我有一个字段" 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!
我该如何解决这个问题?
谢谢!
答案 0 :(得分:0)
通过创建从text
到text_en
和text_es
的copyField,您可以将传入数据传入这两个字段,而不管语言检测是什么,这就是copyField应该做的事情。
updateRequestProcessor实际上会复制(而不是移动),因为您设置了<bool name="langid.map.keepOrig">true</bool>
。
除此之外,处理器的配置看起来很好,只需删除这些copyField并确保在架构中明确定义映射字段text_en
和text_es
。
答案 1 :(得分:0)
感谢抬头! 通过删除复制字段和创建动态字段
解决了该问题*_es
和*_en
中schema.xml