SOLR Dropping Emoji杂项字符

时间:2013-11-04 17:45:08

标签: unicode solr lucene emoji

看起来SOLR正在考虑什么应该是有效的Unicode字符无效,并删除它们。

通过启用查询调试来查看解析器对我的查询执行的操作,我“证明了这一点”。这是一个例子:

查询='ァ☀'(\ u30a1 \ u2600)

这是SOLR用它做的事情:

'调试':{     'rawquerystring':U '\ u30a1 \ u2600',     '查询字符串':U '\ u30a1 \ u2600',     'parsedquery':U '(+ DisjunctionMaxQuery((文本:\ u30a1)))/ no_coord',     'parsedquery_toString':U '+(文本:\ u30a1)',

正如你所看到的那样,'ァ'没问题,但它是“黑太阳”角色。

我没有尝试过所有Block,但我已经确认它也不喜欢⛿(\ u26ff)和♖(\ u2656)。

我正在使用带有Jetty的SOLR,因此不应该应用各种TomCat问题WRT字符编码。

1 个答案:

答案 0 :(得分:1)

这很可能与分析仪有关。我没有看到任何指定对这些字符的处理的确切内容,但它们可能被StandardAnalyzer(或者你可能正在使用的任何分析器)作为标点符号处理,因此不会出现在最后的查询。 StandardAnalyzer实现了UAX-29, Unicode Text Segmentation中前进的规则,以便将输入分成令牌。