solr中uniqueKey的问题

时间:2011-03-04 14:38:03

标签: solr

我是solr的新手,在创建索引时我将字符串附加到数据库表id

我在schema.xml中的字段如下

<field name="id" type="string" indexed="true" stored="true" required="true"/>
<uniqueKey>id</uniqueKey>

我正在传递'GROUP1'作为id,但它正在存储[B @ 1e090ee这样。

我怎样才能存储相同的值(GROUP1)而不是[B @ 1e090ee?

请帮忙

3 个答案:

答案 0 :(得分:1)

是group_id字符串还是某种数字数据类型?
如果它不是字符串,则需要使用适当的编码cast it to char before concatenation

还要将编码(与您的MySQL数据库编码匹配)参数添加到dataSource标记,如下所示:

<dataSource 
    driver="com.mysql.jdbc.Driver" 
    url="jdbc:mysql://host/dbname" 
    batchSize="-1" 
    user="username" 
    password="password" 
    readOnly="true" 
    autoCommit="true" 
    encoding="UTF-8" />

答案 1 :(得分:0)

您使用的是哪个数据库?
在db中直接执行查询时,您是否看到了正确的值?

恕我直言,问题必须是DataImportHandler,或者你的group_id字段实际上有这样的值([B @ 1e090ee]。) 您是否检查过encoding中的dataCofig's dataSource param是否与您的数据库编码相同?

您可以发布dataConfig文件吗?

答案 2 :(得分:0)

@mbonaci

我正在使用mysql数据库。

当我执行相同的查询时,结果很好

以下是我的数据配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
<dataSource driver="com.mysql.jdbc.Driver" url="jdbc:mysql://host/dbname" batchSize="-1" user="username" password="password" readOnly="true" autoCommit="true" />
  <document name="products">
        <entity name="item" query="select group_id,group_title,description,DATE_FORMAT(created_date, '%Y-%m-%dT%H:%i:%sZ') as createdDate,group_status,CONCAT('GROUP',group_id) as id,'GROUP' as itemtype  from collaboration_groups where group_status=1 ">
            <field column="id" name="id" />
            <field column="group_id" name="itemid" />
            <field column="itemtype" name="itemtype" />
            <field column="group_title" name="fullName" />
            <field column="description" name="description"/>
            <field column="createdDate" name="createdDate"/>
        </entity>
 </document>
</dataConfig>