2017-02-09 135 views
0

我需要将数据从mysql db注入SOlR索引。 pb是我的数据库中的字符是UTF8,我需要将它们转换为LATIN1,因为有重音。 有什么想法?SOLR + Mysql:如何将utf8转换为latin1

+0

Solr原生使用UTF-8,但确保数据库实际上使用UTF-8连接(当驱动程序正在连接时为'SET NAMES UTF8',如果可能则通过JDBC字符串) – MatsLindh

回答

1

一般来说,这是不可能的,因为UTF8跨越整个Unicode范围,目前1,112,064个码点,Latin1不超过256个。如果您的文本使用完全由Latin1覆盖的语言,则可以简单地过滤表示代码点高于255的UTF8字符(实际执行此操作的方式取决于您正在使用的技术并且未在您的问题中提及)。

即使您的语言只使用256以下的字母字符,也可能您的文本包含一些较高级别的UTF8非字母字符:这是一个常见问题,但是,您希望将Latin1用于搜索引擎索引,你可能会忽略非字母字符(这些字符包括表情符号,当今网络中非常常见的字符,YMMV)

我不明白为什么你不能在整个过程中使用UTF-8:Solr支持它。

+0

ok,在这种情况下,我不会使用solr,因为我应该这样做。当我启动我的数据导入时,例如“Vincent 5Ô在我的数据库中,并想在我的solr中使用“Vincent 5à”。也许这是solr配置的问题?你可以帮我吗 ? – Vince

+0

那么,你可以开始[这里](https://wiki.apache.org/solr/FAQ#Why_don.27t_International_Characters_Work.3F)。如果您需要更多帮助,您应该编辑您的问题,指定您在所有涉及的服务器和客户端上使用的操作系统和应用程序软件,所发布的命令以及所有相关详细信息。从你写的(“Vincent 5Ô)我认为这是一个更多的问题,从数据库正确导出比导入到Solr,但没有更多的细节,我不能多说。 – Dario