Id字段为长类型

时间:2018-02-06 13:39:37

标签: solr lucene

我正在尝试将Id字段用作Long并收到此错误:

ERROR: Error CREATEing SolrCore 'brands': Unable to create core 
[brands] Caused by: uniqueKey field (id) can not be configured to use a 
Points based FieldType: plong

这是我的schema.xml:

<?xml version="1.0" encoding="UTF-8"?>
<schema name="brands-config" version="1.6">
<uniqueKey>id</uniqueKey>
<fieldType name="plong" class="solr.LongPointField" docValues="true"/>
<fieldType name="string" class="solr.StrField" sortMissingLast="true" docValues="true"/>
<field name="name" type="string"/>
<field name="id" type="plong" multiValued="false" indexed="true" required="true" stored="true"/>
</schema>

我的solrconfig.xml是基本的 - 只删除了in this thread提到的部分,但没有帮助。

有没有办法让我的id字段类型变长?我这样做是为了避免过多的映射。

2 个答案:

答案 0 :(得分:0)

我真的不确定为什么你需要长数据类型。要回答您的问题,Solr查询高程组件使用String作为键,因此您的唯一键不能很长。

如果你需要解决这个问题,那么你可以考虑创建一个复制字段,并将其作为一个长期使用,并使用if作为你的操作。

答案 1 :(得分:0)

here所述,您不能将基于点的字段用作uniqueKey。 相反,您可以使用string类型。