Changes

Centralized logging in swarm

1,959 bytes added, 11:40, 23 September 2018
Routing vs custom Routing
Lehetőség van rá, hogy egyrészt beszúráskor megmondjuk az Elasticsearch-nek hogy melyik shard-re tegye a dokumentumot, illetve keresésnél megmondhatjuk, hogy melyiken keresse, ezzel eliminálhatjuk a felesleges kereséseket. Ezt hívják custom routing-nak.
Ha egy dokumentumot custom routing-al szúrunk be úgy is kell keresni. Erre best-practice ha beállítjuk vagy az index-en vagy az index egyik típusára, hogy csak olyan dokumentumokat fogadjon el, ahol meg van adva a custom routing: .
A az előbb létrehozott '''mycompany''' index-be hozzunk létre egy '''order''' típust, amin beállítjuk, hogy csak custom routing-al megadott dokumentumokat lehet beleszúrni.
<pre>
curl -XPUT '192.168.123.71:9200/mycompany/order/_mapping' -H 'Content-Type: application/json' -d'
{
"order":{
"_routing":{
"required":true
}
}
}
'
</pre>
Ez nem kötelező, de így ki lehet erőszakolni a custom routing megadását, nehogy véletlen lemaradjon.
Most szúrjunk be egy dokumentumot a order típus alá egyedi routing-id-val. Ezt a '''routing''' paraméterrel kell megadni:
<pre>
$ curl -XPOST '192.168.123.71:9200/mycompany/order?routing=user123' -H 'Content-Type: application/json' -d'
{
"productName":"sample",
"customerID":"user123"
}
'
</pre>
{{note|Fizikailag nem tudjuk, hogy melyik shard-re fog kerülni a dokumentum. Csak azt mondtuk meg az Elasticsearch-nek, hogy mikor a hash-t képzi, akkor a routing-id helyére a képlet-be azt írja be hogy '''user123'''. Mikor a keresésénél ugyan ezt a '''routing-id'''-t adjuk majd meg, akkor a fenti képlet ugyan azt a shrad ID-t fogja visszaadni, tehát ugyan azzal a routing id-val mindig ugyan azt a shard id-t állítjuk elő!
httpsKeressük meg a feint dokumentumot úgy hogy megmondjuk az Elasticsearch-nek hogy pontosan melyik shrad-ban keresse. Ahogy a beszúrásánál is, itt is megadjuk a '''routing=user123''' értéket, ami ugyan arra a shard ID-ra fog leképeződni, ahova korábban beszúrta. <pre>$ curl -XGET '192.168.123.71:9200/mycompany/www.elastic.co/blogorder/customizing_search?routing=user123&pretty' -yourH 'Content-documentType: application/json' -routingd'{ "query":{ "match_all":{} }}'</pre>A match_all-al az összes dokumentumot lekérjük az '''order''' típusból.
httpsÉs a válasz://www<pre>..elastic.co { "_index" : "mycompany", "_type" : "order", "_id" : "kwczBmYB5rEaU4uAZ6UJ", "_score" : 1.0, "_routing" : "user123", "_source" : { "productName" : "sample", "customerID" : "user123" }</guide/en/elasticsearch/reference/current/mapping-pre>Láthatjuk benne a routingid-fieldt a _routing mezőben.html  <br>
==REST API==