4

値を持つタイトルとしてフィールドを持つドキュメントがあります-Mörder(oにウムラウト付き)。

次のメソッドを使用して Java でフェッチすると、両方の印刷コマンドで返される値は Morder (r にウムラウト付き) です。変。

Solr が提供する Web UI に進むと、タイトルは Mörder (o にウムラウト付き) です。

誰が何がうまくいかないのか教えてもらえますか?

    SolrQuery query = new SolrQuery();
    query.setParam("q", "<some query>");
    query.setStart(start);
    query.setRows(rows);
    query.setFacet(false);
    query.setFields("title");
    QueryResponse rsp = server.query(query);

    SolrDocumentList sdl = rsp.getResults();

    for (SolrDocument sdOl : sdl) {
        System.out.println(sdOl.getFieldValue("title"));
        System.out.println(new String(sdOl.getFieldValue("title").toString().getBytes, "UTF-8"));
    }

編集

私は実際に 2 つのコアのドキュメント タイトルを比較しています。1 つは正しいウムラウトを返しますが、もう 1 つは常にウムラウトを次の文字に移動します。

4

1 に答える 1

1

Unicode の分解は、Big/Little indian バイト変換によって台無しにされていますか? 勝手な(冗談半分の)推測です。

現実的には、答えはありませんが、Wiresharkを配置して、クライアントが何を求めているか、サーバーが何に答えているかを確認します。これにより、問題がサーバーを離れたときなのか、クライアントに到着したときなのかがわかります。

クライアントの構成はわかりませんが、トラフィックがバイナリとして通過する場合、XML に切り替えるクライアント オプションがいくつかあります。それ自体で問題が解決する場合、問題は javabin 形式にあります。そうでない場合は、少なくとも作業するための正確なクエリと応答があります。

于 2013-02-11T18:20:39.683 に答える