2017-11-14 4 views
0

私はDBとしてelasticsearchを使用して、大量のログデータを格納しています。elasticsearchでページ分割を行う方法は? from vs scroll API

  1. 使用サイズおよびAPI今私は改ページを行うには 'から' を使用してい

  2. 利用スクロールAPI

から: 私は改ページを行うには2つの方法があることを知っています。フロントエンドとバックエンド(Java)のページとサイズのパラメータを取得する

searchSourceBuilder.size(size); 
searchSourceBuilder.from(page * size); 

ただし、 page*size> 10000の場合、ESからスローされます。

スクロールAPIを使用してページ番号付けを行うことはできますか?

スクロールAPIを使用すると、searchResponseオブジェクトは私に_scroll_idというbase64文字列のように見えます。

ページとサイズを制御するにはどうすればよいですか?

Scroll APIは、連続するページ番号のみをサポートしていますか?

答えて

0

あなたの言ったことは正しいです!

スクロールAPIを使用して従来のページ設定を行うことはできません。

私はこれはあなたの要件をカバーするために役立つかもしれないSearch After API

を見て、あなたを提案するかもしれません!

From/Sizeデフォルトの最大結果サイズは10,000です。それが記載されたよう

here

from + sizeができないことをindex.max_result_windowインデックスの設定よりもそのデフォルトあなたが何らかの形で永続的な設定index.max_result_windowを増やすのであれば

10,000それは検索結果の最大数を増加させます!しかし、これは解決策ではないかもしれませんが、限界を減らします。

これは、ESサーバーのパフォーマンスを低下させる可能性があることを忘れないでください。 Read through all the posts here.

私の提案スクロールAPIを使用して改ページのスタイルを変更するあなたのための

+0

感謝を支援することです、私はあなたがスクロールを使用した「と述べthat.Likeあなたsuggestion.I'llからの多くが考える学びましたAPIを使用してページ区切りスタイルを変更する 'のように、ページ区切りスタイルは何ですか?ページ番号、前ページ、次ページ、最初のページ、最後のページのようなものです(< <1,2,3,4,5>> |) – Neilson3r

+0

スクロール/スキャン/検索APIを使用すると、データを無制限に検索できます。しかし、あなたは定義された制限時間内に結果データの次のチャンクを呼び出さなければなりません。しかし、主な問題は、ページングすることを考えることができないということです。スクロールのように使う必要があります。どのページでも前進/後退することはできません。フロントエンドでのキャッシュを使用して、後方ページデータを使用することができます。 – Zico

+0

さて、このモジュールだけがDBとしてESを使用し、他はMaria DBを使用するということです。ページの番号とサイズが必要です。次に、「最初のページ」と「最後のページ」ボタンを無効にします。スクロールAPIは、このような状況に適しています。 – Neilson3r

関連する問題