我是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?
请帮忙
答案 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>