看起来 SOLR 正在考虑什么应该是有效的 Unicode 字符是无效的,并删除它们。
我通过打开查询调试来“证明”这一点,以查看解析器对我的查询做了什么。这是一个例子:
查询 = 'ァ☀' (\u30a1\u2600)
这是 SOLR 用它做的事情:
'debug':{ 'rawquerystring':u'\u30a1\u2600', 'querystring':u'\u30a1\u2600', 'parsedquery':u'(+DisjunctionMaxQuery((text:\u30a1)))/no_coord' , 'parsedquery_toString':u'+(文本:\u30a1)',
如您所见,“ァ”没问题,但它吃掉了“黑太阳”角色。
我还没有尝试过所有的 Block,但我已经确认它也不喜欢 ⛿ (\u26ff) 和 ♖ (\u2656)。
我将 SOLR 与 Jetty 一起使用,因此不应该应用各种 TomCat 问题 WRT 字符编码。