Di mana Elasticsearch memulai

Elasticsearch mungkin adalah mesin pencari paling populer saat ini dengan komunitas yang maju, dukungan, dan segunung informasi di web. Namun, informasi ini tiba secara tidak konsisten dan fraksional.


Kesalahpahaman pertama dan utama adalah "Anda perlu pencarian, jadi ambil elastis!". Namun pada kenyataannya, jika Anda membutuhkan pencarian cepat untuk proyek kecil atau bahkan cukup besar, Anda harus memahami topik ini lebih terinci dan Anda akan menolak untuk menggunakan sistem khusus ini.


Masalah kedua adalah mencoba memikirkannya sejak awal, mendapatkan gambaran besar tidak akan mudah. Ya, informasi secara massal, tetapi urutan dalam studinya dibangun ex post. Anda harus lari dari buku ke dokumentasi, dan dari dokumentasi kembali ke buku, pada saat yang sama menelusuri seluk beluk, hanya untuk memahami apa itu Elasticsearch, mengapa ia bekerja seperti itu dan mengapa menggunakannya sama sekali, dan di mana harus memilih sesuatu yang lebih sederhana.


Dalam artikel ini, saya mencoba untuk secara konsisten menjelaskan apa yang menurut saya hal utama dalam Elasticsearch, mengapa ia ditemukan dan bagaimana cara kerjanya.


Untuk kejelasan, kami akan menciptakan tugas untuk diri kami sendiri. Implementasi pencarian di blog kolektif untuk semua materi dan pengguna. Sistem ini memungkinkan Anda untuk membuat tanda, komunitas, geometri, dan semua hal lain yang membantu kami mengategorikan sejumlah besar informasi.



, :


  • , , ,
  • ( , )

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


? . - . .


, . .



{
    "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 , .


Saya mencoba untuk berbicara secara singkat dan konsisten tentang bagaimana dan mengapa ini persis cara kerjanya. Dalam artikel ini, saya sengaja tidak menyebutkan ekosistem elastis, plugin, kueri, tokenization, pemetaan, dan yang lainnya. Saya juga tidak mengatakan tentang Ingest dan node pembelajaran mesin, menurut pendapat saya, mereka memberikan fitur tambahan dan tidak mendasar.


Bahan tambahan


Tumpukan Elastis dan Dokumentasi Produk


Sizing Elasticsearch


Elasticsearch 5.x Cookbook, Edisi Ketiga


All Articles