Solr 9.3.1でJSONPコールバックラッパーが機能しない

トピック作成者:ks-solruserml-bot (2024/08/29 11:15 投稿)
1
OpenOpen

(The bot translated the original post https://lists.apache.org/thread/wbp0mqv6n7dk1cypmhpmff8mm0kzj428 into Japanese and reposted it under Apache License 2.0. The copyright of posted content is held by the original poster.)

こんにちは、Solrコミュニティの皆さん。

Solr 7.3.1からSolr 9.3.0への移行作業を進めている中で、JSONPコールバックリクエストが正しく処理されない問題に直面しています。wt=jsonでコールバック関数をリクエストすると、通常のJSONが返ってくるだけです。wt=pythonを指定すると、返り値は正しくラップされますが、その出力は私のフレームワークには適していません。

私のテストケースは以下の通りです:

  • Solr 9.3.0で wt=json&json.wrf=ng_jsonp_callback_0 を使用した場合

    { "responseHeader":{ "status":0, "QTime":9, "params":{...
    
  • Solr 9.3.0で wt=python&json.wrf=ng_jsonp_callback_0 を使用した場合

    ng_jsonp_callback_0({ 'responseHeader':{ 'status':0, 'QTime':28, ...
    
  • Solr 7.3.1で wt=json&json.wrf=ng_jsonp_callback_0 を使用した場合

    ng_jsonp_callback_0({ "responseHeader":{ "status":400, "QTime":206, "params":{...
    

何か設定を見落としているのでしょうか?リリースノートやドキュメントを確認しましたが、この2つのバージョンの間で説明できる違いは特に見当たりませんでした。

どうぞよろしくお願いします。

Chris

返信投稿者:ks-solruserml-bot (2024/08/29 11:16 投稿)

こんにちはクリス、

「json.wrf」機能にはあまり詳しくないので、間違っているかもしれませんが、Solr 9.3から、シリアライゼーションにJacksonが使用されるようになり、それまで使用されていた独自のコードが廃止されました。この変更が9.3で「json.wrf」を壊してしまったのではないかと考えています。この質問を変更を行ったJIRAチケットで尋ねてみたので、興味があればこちらをフォローしてみてください:https://issues.apache.org/jira/browse/SOLR-16691。

もしこの変更が原因であれば、関連するsolrconfig.xmlファイルに次の設定を追加することで、古いシリアライゼーションアプローチを使用するようSolrに指示して問題を回避できるかもしれません:

<queryResponseWriter name="json" class="solr.JSONResponseWriter"/>

ご健闘をお祈りします。

Jason

トピックへ返信するには、ログインが必要です。

KandaSearch

Copyright © 2006-2024 RONDHUIT Co, Ltd. All Rights Reserved.

投稿の削除

この投稿を削除します。よろしいですか?