我有一个连接到mongo数据库的mongoconnector的solrcloud。我想在solr中使用有效负载功能,但无法正确转换。我设法将其导入为类似
的字符串 "topCategoryScoreList":["2107|510",
"1225|940"],
然后是一个简单的复制字段:
<copyField source = "topCategoryScoreList" dest = "topCategoryPayload"/>
该字段定义为:
<field name="topCategoryPayload" type="payload" indexed="true" stored="true" multiValued="true"/>
和有效载荷类型:
<fieldtype name="payload" stored="true" indexed="true" class="solr.TextField" >
<analyzer>
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.DelimitedPayloadTokenFilterFactory"
delimiter='|' encoder="float"/>
</analyzer>
</fieldtype>
但是没有用。我还尝试写一个updateRequestProcessorChain
<updateRequestProcessorChain name="payload">
<processor class="solr.CloneFieldUpdateProcessorFactory">
<lst name="source">
<str name="fieldName">topCategoryScoreList</str>
</lst>
<str name="dest">topCategoryPayload</str>
</processor>
<processor class="solr.ConcatFieldUpdateProcessorFactory">
<str name="fieldName">topCategoryPayload</str>
<str name="delimiter">|</str>
</processor>
<processor class="solr.LogUpdateProcessorFactory" />
<processor class="solr.RunUpdateProcessorFactory" />
</updateRequestProcessorChain>
但该注释也有效。我设法解决的问题是将纬度和经度连接在一个位置字段中(但这些不是多值字段)。 我应该为此写一个插件吗?还是其他想法? 任何帮助或建议,将不胜感激。
答案 0 :(得分:1)
可能您必须简化并尝试:
<processor class="solr.CloneFieldUpdateProcessorFactory">
<str name="fieldName">topCategoryScoreList</str>
<str name="dest">topCategoryPayload</str>
</processor>
<processor class="solr.LogUpdateProcessorFactory" />
<processor class="solr.RunUpdateProcessorFactory" />