【问题标题】:SOLR Special Characters and EmoticonsSOLR 特殊字符和表情
【发布时间】:2016-02-22 15:32:39
【问题描述】:

我想索引包含特殊字符(如货币符号)和表情符号的文本数据。目前我正在使用以下代码来索引这些数据: <fieldTypename="text"class="solr.TextField"> <analyzer> <tokenizerclass="solr.WhitespaceTokenizerFactory"/> <filterclass="solr.LowerCaseFilterFactory"/> <filterclass="solr.KeywordRepeatFilterFactory"/> <filterclass="solr.StopFilterFactory"words="stopwords.txt" ignoreCase="true"/> </analyzer>
但是在检索数据时,我可以看到所有特殊字符和表情符号都被破坏了,例如
��1,590.79 的债务已清偿��436.00

请建议在这里可以做什么。

应用程序流程:数据首先存储在 HBASE 中,并通过实时索引器将其更新到 SOLR。

CDH 版本:5.4.5 SOLR 版本:4.10.3 HBASE VEer:1.0.0

【问题讨论】:

  • 我猜这是 UTF-16? Solr 需要 UTF-8。您可能必须在您的应用程序中转换为 UTF-8。我不知道您使用的是什么语言,但 Java 的 CharsetEncoder 可能对您有用。
  • 尝试使用 java -DFileEncoding 属性将 Java 代码编码更改为 UTF-8。当我检查 UTF-8 字符列表时,这些符号也属于 UTF-8。

标签: solr lucene hbase codepages indexer


【解决方案1】:

我通过将笑脸转换为 HTMLHex 然后将其存储到 SOLR 来解决这个问题。现在在 SOLR 中,我可以看到完整的十六进制代码,并且可以转换回笑脸。
使用的库:
Lib to convert emoticons to Hex emoji-java

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多