0

SOLR は、有効な Unicode 文字を無効と見なし、それらを削除しているようです。

クエリのデバッグをオンにして、パーサーがクエリで何をしていたかを確認することで、これを「証明」しました。次に例を示します。

クエリ = 'ァ☀' (\u30a1\u2600)

SOLRがそれを使って行ったことは次のとおりです。

'debug':{ 'rawquerystring':u'\u30a1\u2600', 'querystring':u'\u30a1\u2600', 'parsedquery':u'(+DisjunctionMaxQuery((text:\u30a1)))/no_coord' , 'parsedquery_toString':u'+(text:\u30a1)',

ご覧のとおり、「ァ」では問題ありませんでしたが、「Black Sun」の文字を ATE しました。

すべてのブロックを試したわけではありませんが、⛿ (\u26ff) と ♖ (\u2656) も気に入らないことを確認しました。

私は Jetty で SOLR を使用しているため、さまざまな TomCat の問題 WRT 文字エンコーディングは適用されません。

4

1 に答える 1

1

これは、Analyzer と関係がある可能性が非常に高いです。StandardAnalyzerこれらの種類の文字の処理を正確に指定するものは何も見当たりませんが、おそらく(または使用しているアナライザー によって) 句読点として非常に扱われているため、最終的なクエリには表示されません。入力をトークンに分離するために 、UAX-29、Unicode Text SegmentationStandardAnalyzerで設定された規則を実装します。

于 2013-11-04T18:13:00.213 に答える