2015-11-20 4 views
0

Je souhaite Indexer des données de texte contenant des caractères spéciaux tels que des symboles monétaires et des émoticônes. Actuellement, j'utilise le code suivant pour indexer ces données: <fieldTypename="text"class="solr.TextField"> <analyzer> <tokenizerclass="solr.WhitespaceTokenizerFactory"/> <filterclass="solr.LowerCaseFilterFactory"/> <filterclass="solr.KeywordRepeatFilterFactory"/> <filterclass="solr.StopFilterFactory"words="stopwords.txt" ignoreCase="true"/> </analyzer>
Mais lors de la récupération des données, je peux voir que tous les caractères spéciaux et les émoticônes et gâté par ex.
Debtof1,590.79settledfor436.00

S'il vous plaît suggérer ce qui peut être fait ici. Flux d'application: Les données sont d'abord stockées dans HBASE et avec les indexeurs en temps réel, elles sont mises à jour vers SOLR.Caractères spéciaux et émoticônes SOLR

CDH Ver: 5.4.5 SOLR Ver: 4.10.3 Hbase Veer:

1.0.0
+1

Je devine que c'est UTF-16? Solr a besoin de l'UTF-8. Vous devrez probablement convertir en UTF-8 dans votre application. Je ne sais pas quelle langue vous utilisez, mais le CharsetEncoder de Java pourrait vous être utile. – TMBT

+0

J'ai essayé de changer le codage du code Java en UTF-8 en utilisant la propriété java -DFileEncoding. Ces symboles sont également sous UTF-8 lorsque j'ai vérifié la liste de caractères UTF-8. –

Répondre

0

I résolu en convertissant smileys à HTMLHex puis stocker à SOLR. En SOLR maintenant je peux voir ce code Hex intact et qui peut être converti en smileys.
Bibliothèque d'occasion:
Lib to convert emoticons to Hex emoji-java