2016-10-30 11 views
0

私は弾性検索に基づいて検索エンジンを作成し、ajaxとjqueryを使用してウェブページに接続します。誰かが検索を入力すると、すべての一致結果が30未満の場合は1つのWebページに表示されます。ほとんどの場合、合計一致結果は600以上ですが、Webページは30の結果しか表示しません。コンソールで それは、全試合結果は650が、ウェブページ表示のみ30結果であり、ここでこのウェブページ内のjquery内のページ設定

data: Object 
    hits: Object 
    hits: Array[10] 
    max_score : 1.2333 
    total : 650 

のように示しています。

ページングを実装するにはどうすればよいですか。私は、Webページ上でそれらの結果を表示するために使用されるコードは

$.ajax({ 
     url: '/elastic/', 
     type: 'GET', 
     data: {"data": text}, 
     success: function (response) { 
      $('.pagination').remove(); 
      data = JSON.parse(response); 
      console.log(data);    
     for (var hit in data.data.hits.hits) 
      { 
      var source = data.data.hits.hits[hit]._source; 
      $('.div').append(source.user_name + '/' + 
       source.name +'<br/>'); 
       } 

      }, searchText = text;  } 

ここで私は、ページネーションを実装する必要がありますされ、私はここで改ページの関連する例を探してみましたが、私は何も見つかりませんでした。毎回検索結果が異なります。場合によっては500件の一致結果があり、時には10件があります。 誰かに私にヒント/ガイダンスやページネーションの実装方法の例を教えてもらえますか?私は最後の数日から試しています。

答えて

0

from and size parameters(クエリパラメータまたはデータパラメータとして)を使用できます。一方、Scroll APIもあります。あなたはそれをチェックすることができますhttps://www.elastic.co/guide/en/elasticsearch/reference/2.4/search-request-scroll.html

+0

@ Hkullekci私はfromとsizeパラメータを知っていますが、私はWebページにデータを表示しているとき、どうすればこれらのパラメータを使用できますか?どのようにページングを実装できますか?あなたの提案やヒント。私は本当に感謝します。 –

+0

最初にページが読み込まれたときに、結果から合計のドキュメント数を取得できます。その後、この数とあなたのページサイズはあなたにページリストを与えます。このロジックは、コントローラ上で処理できます。次に、テンプレートにページ番号を書き込むことができます。その後、あなたのelasticsearchリクエストごとに、現在のページ番号を送信する必要があります。 – hkulekci

+0

気高い私はあなたのポイントを得た。あなたに私に短い例を教えてもらえますか、すでにある場合は、私がより良いアイデアを得るために指摘することができますか? –

関連する問題