で
ご確認くださいhttps://github.com/searchbox-io/Jest/blob/master/jest/src/test/java/io/searchbox/core/SearchScrollIntegrationTest.javaは、このAPIでスキャン&スクロールを行うことは可能ですか?
はいです。私の実装はこれのように働いています。
弾性検索のスクロール検索を開始
:
public SearchResult startScrollSearch (String type, Long size) throws IOException {
String query = ConfigurationFactory.loadElasticScript("my_es_search_script.json");
Search search = new Search.Builder(query)
// multiple index or types can be added.
.addIndex("myIndex")
.addType(type)
.setParameter(Parameters.SIZE, size)
.setParameter(Parameters.SCROLL, "1m")
.build();
SearchResult searchResult = EsClientConn.getJestClient().execute(search);
return searchResult;
}
のSearchResultオブジェクトが最初の(サイズ)を返すであろうが、通常のように、検索をオフitensしかしたresultSetそのelasticSearch維持する基準となるscrollIdパラメータに戻りますあなたのために記憶に残る。 Parameters.SCROLLは、この検索がメモリに保持される時間を定義します。あなたがフォローのようなものを使用する必要がありますたresultSetからより多くのitensを読むために
scrollId = searchResult.getJsonObject().get("_scroll_id").getAsString();
:読みscrollIdについては
public JestResult readMoreFromSearch(String scrollId, Long size) throws IOException {
SearchScroll scroll = new SearchScroll.Builder(scrollId, "1m")
.setParameter(Parameters.SIZE, size).build();
JestResult searchResult = EsClientConn.getJestClient().execute(scroll);
return searchResult;
}
は毎回あなたが結果セットから読み取ることを忘れないでください。新しいscrollIdがelasticから返されます。
疑問がある場合は教えてください。
フィードバックをいただきありがとうございます。このアプリケーションのhttpを使用してスタック。 –
私は見る。申し訳ありませんが私はより多くの援助ができませんでした! – RustyBuckets