Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Solr,将字符串数组强制转换为有效负载数组_Solr - Fatal编程技术网

Solr,将字符串数组强制转换为有效负载数组

Solr,将字符串数组强制转换为有效负载数组,solr,Solr,我有一个solrcloud通过mongoconnector连接到mongo数据库。我想在solr中使用有效负载功能,但我不能正确地转换它。我成功地将其作为字符串导入,如下所示: "topCategoryScoreList":["2107|510", "1225|940"], 然后是一个简单的复制域: <copyField source = "topCategoryScoreList" dest = "topCategoryPayload"/> 该字段定义

我有一个solrcloud通过mongoconnector连接到mongo数据库。我想在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>

TopCategoryCoreList
topCategoryPayload
topCategoryPayload
|
但这张纸条也起了作用。我设法解决的是在一个位置字段中连接纬度和经度(但这些字段不是多值字段)。 我应该为此写一个插件吗?还有其他想法吗?
任何帮助或建议都将不胜感激。

您可能需要简化并尝试:

   <processor class="solr.CloneFieldUpdateProcessorFactory">  
                <str name="fieldName">topCategoryScoreList</str>
                <str name="dest">topCategoryPayload</str>
   </processor>

<processor class="solr.LogUpdateProcessorFactory" />
<processor class="solr.RunUpdateProcessorFactory" />


TopCategoryCoreList
topCategoryPayload