যদি এটি একটি ছোট ডেটাসেট (যেমন 1K রেকর্ডস) হয় তবে আপনি কেবল উল্লেখ করতে পারেন size
:
curl localhost:9200/foo_index/_search?size=1000
অন্তর্ভুক্ত হিসাবে, সমস্ত ক্যোয়ারির সাথে মিলের প্রয়োজন নেই।
আপনার যদি 1M রেকর্ডের মতো মাঝারি আকারের ডেটাসেট থাকে তবে এটি লোড করার জন্য আপনার পর্যাপ্ত মেমরি নাও থাকতে পারে, সুতরাং আপনার একটি স্ক্রোল প্রয়োজন ।
একটি স্ক্রোল একটি ডিবিতে কার্সারের মতো। ইলাস্টিকসर्चে, এটি কোথায় গিয়েছিল এবং এটি সূচকের একই দৃষ্টিভঙ্গি রাখে তা মনে রাখে (অর্থাত্ সন্ধানকারীকে রিফ্রেশ করে দূরে যাওয়া থেকে বিরত রাখে , বিভাগগুলিকে মার্জ করা থেকে বাধা দেয় )।
এপিআই-ভিত্তিক, আপনাকে প্রথম অনুরোধে একটি স্ক্রোল প্যারামিটার যুক্ত করতে হবে:
curl 'localhost:9200/foo_index/_search?size=100&scroll=1m&pretty'
আপনি প্রথম পৃষ্ঠা এবং একটি স্ক্রোল আইডি ফিরে পাবেন:
{
"_scroll_id" : "DXF1ZXJ5QW5kRmV0Y2gBAAAAAAAAADEWbmJlSmxjb2hSU0tMZk12aEx2c0EzUQ==",
"took" : 0,
...
মনে রাখবেন যে আপনি ফিরে পাবেন এবং স্ক্রোল আইডি উভয়ই পরবর্তী পৃষ্ঠার জন্য বৈধ । এখানে একটি সাধারণ ভুলটি হ'ল একটি খুব বড় সময়সীমা (মান scroll
) নির্দিষ্ট করা, যা এক পৃষ্ঠার পরিবর্তে পুরো ডেটাসেট (উদাহরণস্বরূপ 1M রেকর্ডস) প্রসেস করার জন্য কভার করবে (উদাহরণস্বরূপ 100 রেকর্ডস)।
পরবর্তী পৃষ্ঠাটি পেতে, শেষ স্ক্রোল আইডি এবং একটি সময়সীমা পূরণ করুন যা নিম্নলিখিত পৃষ্ঠাগুলি আনার পূর্ববর্তী হওয়া উচিত:
curl -XPOST -H 'Content-Type: application/json' 'localhost:9200/_search/scroll' -d '{
"scroll": "1m",
"scroll_id": "DXF1ZXJ5QW5kRmV0Y2gBAAAAAAAAADAWbmJlSmxjb2hSU0tMZk12aEx2c0EzUQ=="
}'
আপনার যদি রফতানির জন্য অনেক কিছু থাকে (যেমন 1 বি ডকুমেন্টস) , আপনি সমান্তরাল করতে চাইবেন। এটি কাটা স্ক্রোলের মাধ্যমে করা যেতে পারে । বলুন আপনি 10 টি থ্রেডে রফতানি করতে চান। প্রথম থ্রেডটি এই জাতীয় অনুরোধ জারি করবে:
curl -XPOST -H 'Content-Type: application/json' 'localhost:9200/test/_search?scroll=1m&size=100' -d '{
"slice": {
"id": 0,
"max": 10
}
}'
আপনি প্রথম পৃষ্ঠা এবং একটি স্ক্রোল আইডি ফিরে পাবেন ঠিক ঠিক একটি সাধারণ স্ক্রোল অনুরোধের মতো। আপনি একে একে নিয়মিত স্ক্রলের মতোই গ্রাস করবেন, ব্যতীত আপনি 1/10 তম ডেটা পান।
id
1, 2, 3 বাদে অন্য থ্রেডগুলি একই কাজ করবে ...