0

Solr 4 を使用して Java Web アプリケーションで検索しています。Solr は JSON 応答を生成し、そこから検索結果を抽出して HTML に変換し、ユーザーがそれを読み取れるようにする必要があります。私は 1 つの解決策を知っていますが、それはばかげているように思えます。賢明なアイデアがあるに違いないと思います。

{
  "responseHeader": {
    "status": 0,
    "QTime": 0,
    "params": {
      "fl": "id,title",
      "indent": "true",
      "q": "solr",
      "wt": "json"
    }
  },
  "response": {
    "numFound": 3,
    "start": 0,
    "docs": [
      {
        "id": "1",
        "title": "Solr cookbook"
      },
      {
        "id": "2",
        "title": "Solr results"
      },
      {
        "id": "3",
        "title": "Solr perfect search"
      }
    ]
  }
}

その後、このテキストを次のように評価します。

var obj = eval ("(" + txt + ")");

HTMLページを生成するには、どちらかを使用できます

 <script>
document.getElementById("id").innerHTML = obj.response.docs[1].id
document.getElementById("title").innerHTML = obj.response.docs[1].title
</script>

or

document.write(obj.response.docs[1].id);

ただし、solr が異なるオブジェクト構造で応答を返すたびに制限があります。つまり、オブジェクトには age フィールドがあるかもしれませんが、クエリに依存するため、他のオブジェクトにはありません。


単一の JSP ページを使用して、すべての検索クエリの検索結果 (Google など) を表示したい


スキーマが異なる可能性のある検索結果に対して機能する単一のコードセグメントを作成することは可能ですか?

私の場合に発生する可能性のあるエラーが発生した後、Javascriptが機能しなくなります。これも問題です。 for ループを使用してオブジェクト階層をトラバースすると、エラーが発生しやすくなります。

シングルビューページで可能ですか ありがとうございます。

4

2 に答える 2

0

JSON からデータを抽出し、JS を介して HTML をレンダリングする代わりに、Solr で容易にサポートされる Velocity テンプレートを使用することをお勧めします。

ドキュメントはこちら

于 2013-03-28T12:36:58.433 に答える
0

ajax-solrの使用を検討することをお勧めします- Solr へのユーザー インターフェイスを作成するための JavaScript フレームワーク

于 2013-03-28T13:28:25.847 に答える