أين يبدأ بحث Elasticsearch

ربما يكون Elasticsearch هو محرك البحث الأكثر شيوعًا في الوقت الحالي مع مجتمع متطور ودعم وجبل من المعلومات على الويب. ومع ذلك ، تصل هذه المعلومات بشكل غير متسق وجزئي.


أول وأهم الاعتقادات الخاطئة هو "أنت بحاجة إلى بحث ، لذا خذ مرونة!". ولكن في الواقع ، إذا كنت بحاجة إلى بحث سريع عن مشروع صغير أو حتى كبير جدًا ، فيجب عليك فهم الموضوع بمزيد من التفصيل وسوف ترفض استخدام هذا النظام بعينه.


المشكلة الثانية هي أن محاولة اكتشافها من البداية ، لن يكون من السهل الحصول على الصورة الكبيرة. نعم ، المعلومات مجمعة ، ولكن التسلسل في دراستها تم بناؤه لاحقًا. سيتعين عليك الجري من الكتب إلى التوثيق ، ومن التوثيق إلى الكتب ، وفي نفس الوقت ، الخفايا الدقيقة في googling ، فقط لفهم ماهية Elasticsearch ، ولماذا تعمل بهذه الطريقة ولماذا تستخدمها على الإطلاق ، وأين تختار شيئًا أبسط.


في هذه المقالة ، حاولت أن أشرح باستمرار ما يبدو لي الشيء الرئيسي في Elasticsearch ، ولماذا تم اختراعه وكيف يعمل.


من أجل الوضوح ، سنخترع مهمة لأنفسنا. تنفيذ بحث في مدونة جماعية لجميع المواد والمستخدمين. يسمح لك النظام بإنشاء علامات ومجتمعات وهندسة وكل الأشياء الأخرى التي تساعدنا على تصنيف كمية هائلة من المعلومات.


مخطط تخزين البيانات


ما هي الإجراءات التي سنقوم بها باستخدام البيانات التي ستحدد مخطط التخزين:


  • على الأرجح أن محرك البحث يجب أن يبحث بسرعة
  • قد لا يتميز التسجيل والحذف بالسرعة العالية ، في محركات البحث ، أعتقد أنه يمكن إهمال ذلك
  • سيتم تغيير بنية البيانات بشكل مكثف ويمكن ملء التخزين من عدة مصادر مستقلة (قواعد بيانات مختلفة ، بما في ذلك قواعد البيانات الخارجية لنظامنا)

. , , , , , , . . . , .


? . - . .


, . .



{
    "title" : "   Elasticsearch",
    "author" : {
        "name": "Roman"
    },
    "content" : "Elasticsearch, ,    ...",
    "tags":[
        "elasticsearch"
    ],
    "ps": ",      JSON, BSON  XML"
}

, , , .


, , , . .


Elasticsearch


. . ?


-. , . .


, , , . .


. .


? , , , ( ) .



, , , . , , . , .


— , . , , , .



.


— open-source , , , Apache Lucene.


Elasticsearch Lucene


, , . , , , . .


— . , , . .


— . , , . , ?


, . ? - , . - — , , . , , .


, , . , — ( ), . — .



, Lucene. , . , ? . Lucene , (shard) . .



Shard Elasticsearch — , Lucene.

Index — , . , .

.
ElasticsearchSQLMongoDB
IndexDatabaseDatabase
Mapping/TypeTableCollection
FieldColumnField
Object(JSON)TupleObject(BSON)


. . , . ! Elasticsearch . , , . . , .

5, index.number_of_shards: 1 .
PUT _template/all
{
  "template": "*",
      "settings": {
        "number_of_shards": 1
      }
}


. .

232 4294967296 , , . , , . , .

. Elasticsearch , . , 10 .


. , .


, Lucene(). , , , . — .


— CRUD- . data node coordinating node. .



Elasticsearch (node). Cluster — . .

:
  • cluster.name


elasticsearch.yml . , .

, http.port, 9200 9300 . , .

. , data- .


, . "" . . , , 2007 .


6.7 Elasticsearch . — hot, warm cold.

. hot- SSD, warm cold HDD-. / :
  • hot — 1:30
  • warm — 1:100
  • cold — 1:500


data node node.data: true, , .

. , MapReduce. :


  • Map — ,
  • Reduce — worker-


. , worker-( data-).


, coordinating- , , , .


, . . .


, .


Elasticsearch . , coordinating-, . , , false.


coordinating-. , / . , .


, coordinating- . data-, . , .


. , , . " " .


master-node. , : , , . .


Elasticsearch master node. node.master: true.

Master- , . , . 10 only-master .


, . , . , , .


data-, .


. , . , , .



number_of_replicas. :
PUT / _settings {
  "index": {
      "number_of_replicas": someVal
  }
}

.


primary shard, replica shard, .


, , flush commit Lucene, .



Elasticsearch cluster health status. :
  • green
  • yellow — , ,
  • red — ,

, - .



. ? .


— .


, , , , ? ? , .


.


Elasticsearch node.master: true , , , . :
  • node.master: true
  • node.data: true

. , . , . - , . split-brain problem.



. . , .


. . . , -.


. - , .



, ? ? ? ?


. .


, , 50%+ . , . .


, . :
_ = __/2 + 1


, . , , .


Elasticsearch , : node.voting_only: true.

Elasticsearch . . , 7 4, , 3 , 4.

, , , , , .



, , . , . .


HTTP, . HTTP . HTTP API , ES, . . JSON., . .
ES Native. , .JVM. ES. . .

Elsaticsearch .


, . — Elasticsearch , .


حاولت أن أتحدث بإيجاز وثبات عن كيف ولماذا هذا بالضبط كيف يعمل. في هذه المقالة ، لم أذكر عن قصد النظام البيئي المرن ، والمكونات الإضافية ، والطلبات ، والترميز ، ورسم الخرائط ، والباقي. كما أنني لم أقل عن عقد Ingest وتعلم الآلة ، في رأيي ، أنها توفر ميزات إضافية وليست أساسية.


مواد إضافية


كومة مرنة ووثائق المنتج


تحجيم البحث


الإصدار الخامس من كتاب Elasticsearch 5.x


All Articles