【问题标题】:Solr DataImport encodingSolr 数据导入编码
【发布时间】:2012-08-14 12:54:08
【问题描述】:

我的 data-config.xml 看起来像这样。文件编码为带 BOM 的 UTF-8。

<?xml version="1.0" encoding="UTF-8"?>
<dataConfig>
  <dataSource type="JdbcDataSource" 
              driver="com.mysql.jdbc.Driver"
              url="jdbc:mysql://192.168.0.2/dasaran_old" 
              user="root" 
              password=""
              encoding="UTF-8"/>
  <document>
    <entity name="user" 
            query="SELECT CONCAT_WS('_', 1, u.`id`) AS id, u.`id` AS entity_id, 1 AS entity_type, fullname AS title, CONCAT_WS(' ', 'Դպրոց՝ ', s.title, 'դաս.՝', cl.title) AS description FROM das_user u INNER JOIN das_ref_student_to_class_to_school sts ON u.id = sts.student_id INNER JOIN das_school s ON sts.school_id = s.id INNER JOIN das_classes cl ON sts.class_id = cl.id WHERE u.role = 'student'">
    </entity>
  </document>
</dataConfig>

从 MySQL 中提取的 unicode 数据是 OK 的。但是查询中的 unicode 字符并没有作为 Unicode 插入到 Solr 索引中。

我收到这样的文件。

<doc>
<str name="description">?????? 65 ???.? 5-1</str>
<int name="entity_id">18126</int>
<int name="entity_type">1</int>
<str name="general">Ռուբեն Վարդանյան Արմենի</str>
<str name="id">[B@1bc6e3ce</str>
<str name="title">Ռուբեն Վարդանյան Արմենի</str>
</doc>

【问题讨论】:

    标签: mysql encoding solr dataimporthandler


    【解决方案1】:

    我认为 data-config.xml 上的编码与 jdbc 连接上使用的编码没有任何关系,您应该将其指定为 url 参数,详见this question

    参数为:

    jdbc:mysql://localhost:3306/administer?characterEncoding=utf8
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-20
      • 1970-01-01
      • 1970-01-01
      • 2011-08-26
      • 1970-01-01
      • 1970-01-01
      • 2017-08-26
      • 2013-01-26
      相关资源
      最近更新 更多