plugin.bat -i com.github.richardwilly98.elasticsearch/elasticsearch-river-mongodb/1.7.0
Warto pamiętać, że przy instalacji rivera muszą się zgadzać wersje ES i MongoDB. Kompatybilność możemy sprawdzić tutaj.
Teraz musimy przygotować bazę do pracy w trybie replikacji. Plugin river synchronizuje dane dzięki plikowi oplog.rs, udostępnianemu przez MongoDB tylko w trybie replikacji. Plik ten zawiera log z wszystkich zmian, jakie były wykonywane na danych. Pierwotnie jego celem było synchronizowanie danych pomiędzy wieloma replikami, ale wykorzystuje go także river. Do celów ElasticSearch można włączyć replikację składającą się z jednej repliki.
1. Uruchamiamy jeden proces, na którym chodzi baza poleceniem mongod --dbpath rsdata --replSet rs0
2. W drugim oknie wchodzimy do narzędzia konfiguracji poleceniem mongo
3. Wpisujemy polecenie rs.initiate() i czekamy, aż nasz node ustawi się jako PRIMARY (naciśnięcie enter po kilkunastu sekundach powinno upewnić nas o zmianie stanu)
Teraz uruchamiamy ElasticSearch pozostawiając MongoDB działające w innym oknie, tryb konfiguracji możemy opuścić.Wysyłamy PUT z konfiguracją mapowania kolekcji w bazie na indeks w ElasticSearch.
PUT http://localhost:9200/_river/mongolink/_meta HTTP/1.1 User-Agent: Fiddler content-type: application/json Host: localhost:9200 Content-Length: 214 { "type" : "mongodb", "mongodb" : { "servers" : [ { "host" : "localhost", "port" : 27017 } ], "db" : "esbook", "collection" : "products" }, "index" : { "name" : "esbook" } }
Na indeksie _river stworzyliśmy typ mongolink, który będzie się mapował na kolekcję products z bazy esbook . Teraz możemy dodać dane, na przykład z konsoli mongo.
rs0:PRIMARY> use esbook switched to db esbook rs0:PRIMARY> db.products.insert({ "name" : "book", "value" : 200 });
Teraz możemy obejrzeć zmapowane zasoby pod adresem http://localhost:9200/esbook/_search?pretty
Brak komentarzy:
Prześlij komentarz