我正在从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
但是没有用。
谢谢!
答案 0 :(得分:0)
(很抱歉回答我自己的问题,但我在其他人之前找到了答案)
将上述代码段更改为单数据类型可以正常工作......
如果您已经使用不同的solrconfig.xml动态创建了字段,那么您将其重新加载以具有单个字段,默认值将按预期工作但您已经定义了现有字段。
要解决此问题,请卸载核心,删除核心,重新创建核心,将solrconfig.xml更改为所需的设置,然后在其中添加文档。
之后它运作良好。
<强>更新强>
我建议您编辑manage-schema
中找到的/var/solr/data/CORE_NAME/conf
文件,并预定义您希望保留默认行为的字段。您也可以通过管理界面添加字段来执行此操作。