Elasticsearch - realtime UI rubrika: Databáze: NoSQL

7 kluvi
položil/-a 19.4.2016

Jak řešíte problém nerealtimovosti Elasticsearch?
Příklad: Měl bych třeba e-shop, kde bude jako primární úložiště Elastic. Admin si otevře administraci, přidá zboží, dá uložit a po uložení ho to hodí na výpis produktů. Protože to ale není realtime, tak se mu tam ten poslední produkt nezobrazí. Toho se pochopitelně lekne a začne ho vytvářet nejspíš znova. Pak volá na support až zjistí, že to tam má 2x.

Jak řešíte tyto situace?

Co mě napadlo za řešení:

  1. použít nějakou proxy mezi aplikaci a Elastic co si bude cachovat třeba na 10s přidané/updatnuté dokumenty - to je ale nesmysl, protože to nevyřeší problém výše, ale maximálně tak GETování konkrétního dokumentu
  2. po uložení zobrazit spinner a nechat admina čekat než se dokument zaindexuje
  3. prostě adminům říct, že se to zobrazí až za pár sekund - všichni víme, že to nebude fungovat :)
  4. ukládat primárně do jiné databáze - do toho bych se nerad pouštěl - rád bych měl jen jednu databázi a tou by měl být právě Elastic
odkaz Vyřešeno
3 panki3a
odpověděl/-a 20.4.2016
 
upravil/-a 20.4.2016

Skus pouzit refres pri ukladani dokumentu.
https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-index_.html#index-refresh
Daj si ale pozor na performace, lebo sa vzdy spusta indexovanie dat. Ak sa to pouziva malo, v administracii shopu tak predpokladam zeby ti to mohlo v pohode stihat.
Mozes mat este iny pristup k nacitaniu po update dokumentu. Pravdepodobne ho vyhladavas pomocou nejakej query. Ak ho nacitas pomocou _id, tak dostanes vzdy najcerstvejsi dokument.

Komentáře

  • kluvi : Díky. To je přesně to co jsem hledal. Asi mě to nějak uniklo :) 20.4.2016

Pro zobrazení všech 3 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.