2

json 形式でデータを返すように SolrQuery を指定するにはどうすればよいですか? データのクエリに使用しているコードは次のとおりです。SolrDocument を取得したら、それを json オブジェクト/文字列に変換するにはどうすればよいですか?

 SolrQuery sQuery = new SolrQuery();
 sQuery.setQuery("name:test");
 QueryResponse resp = server.query(sQuery);
 SolrDocumentList docs = resp.getResults();
4

3 に答える 3

17

solrjからJSONUtilクラスをインポートします。これには、solrドキュメント用のjsonコンバーターがあります。または、そのクラスのコードが表示されている場合は、簡単に記述できます。

import org.apache.noggit.JSONUtil;

SolrQuery sQuery = new SolrQuery();
sQuery.setQuery("name:test");
QueryResponse resp = server.query(sQuery);
SolrDocumentList docs = resp.getResults();
String returnValue = JSONUtil.toJSON(docs); //this has the json documents
于 2013-03-04T18:27:00.063 に答える
3

SolrJは、定義されたPOJOとしてドキュメントを取得/変換するように設計されています。ドキュメントをJSONに変換する場合は、Jacksonなどのライブラリを使用してSolrDocumentからJSONに変換する必要があります。

これがあなたにとっての選択肢であるかどうかはわかりませんが、すでにJSONとしてフォーマットされているSolrからの応答を取得することを検討する可能性があることを述べておきたいと思います。詳細については、 SolJSONを参照してください。この場合、SolrJを使用する必要はありません。最も簡単な方法は、(java httpクライアントライブラリを介して)ストレートhttp呼び出しを使用し、SolJSON手法を使用してSolrからJSON応答を取得することです。

于 2012-10-22T12:47:50.530 に答える