data search mechanism in elasticsearch

  • به طور کلی سازوکار ارسال درخواست به سمت Elasticsearch به این صورت است که :
    • کلاینت درخواست خود را به سمت کلاستر ارسال می‌کند. (به عنوان مثال با curl)
    • Elasticsearch درخواست را دریافت کرده و جواب آن را در قالب Json به سمت کلاینت ارسال می‌کند.


  • فرض کنید یک کلاستر متشکل از سه Node داریم.
  • فرض کنید درون این Node ها یک Index داریم.
  • فرض کنید برای این Index مقدار ۳ عدد Primary shard داریم.
  • فرض کنید برای هر کدام از Primary shard ها به مقدار ۲ عدد Replica Shard داریم.

  • در این صورت زمانی که کلاینت درخواست خود را به سمت کلاستر ارسال می‌کند (می‌تواند هر یک از Node ها باشد.) ابتدا آن سرور تبدیل به Coordinator node می‌شود و وظایف مربوط به آن‌را انجام میدهد.
  • در آنجا مطابق شکل درون Shard B سرچ می‌شود (به این Shard در این حالت اصطلاحا Coordinator shard گفته می‌شود.) و به صورت هم‌زمان این عمل برای Shard A و Shard C نیز اتفاق میوفد (سرچ یا هر عمل دیگری به صورت همزمان درون Shard ها رخ می‌دهد. این از خصوصیات Shard است.)