为什么Solr 6.1将JSON单值转换为数组?

时间:2016-08-08 15:30:43

标签: solr

我正在从4.7升级到6.1。我之前在solrconfig.xml中指定了字段,但希望转移到托管架构方式,这样我就可以随时添加带有新字段的JSON。

问题是6.1托管架构正在将字符串值或数字等转换为数组。这会导致排序错误,因为Solr无法对数组值进行排序,并且将单值日期转换为具有单个值的数组。

SolrConfig.xml 6.1有这个:

<processor class="solr.AddSchemaFieldsUpdateProcessorFactory">
  <str name="defaultFieldType">strings</str>
  <lst name="typeMapping">
    <str name="valueClass">java.lang.Boolean</str>
    <str name="fieldType">booleans</str>
  </lst>
  <lst name="typeMapping">
    <str name="valueClass">java.util.Date</str>
    <str name="fieldType">tdates</str>
  </lst>
  <lst name="typeMapping">
    <str name="valueClass">java.lang.Long</str>
    <str name="valueClass">java.lang.Integer</str>
    <str name="fieldType">tlongs</str>
  </lst>
  <lst name="typeMapping">
    <str name="valueClass">java.lang.Number</str>
    <str name="fieldType">tdoubles</str>
  </lst>
</processor>

我尝试将数据类型设为单数,例如strings - &gt; string但是没有用。

谢谢!

1 个答案:

答案 0 :(得分:0)

已创建的字段是问题

(很抱歉回答我自己的问题,但我在其他人之前找到了答案)

将上述代码段更改为单数据类型可以正常工作......

如果您已经使用不同的solrconfig.xml动态创建了字段,那么您将其重新加载以具有单个字段,默认值将按预期工作但您已经定义了现有字段。

要解决此问题,请卸载核心,删除核心,重新创建核心,将solrconfig.xml更改为所需的设置,然后在其中添加文档。

之后它运作良好。

<强>更新

我建议您编辑manage-schema中找到的/var/solr/data/CORE_NAME/conf文件,并预定义您希望保留默认行为的字段。您也可以通过管理界面添加字段来执行此操作。