A small (one might even say 'micro') service that hooks into rethinkdb-orm models and generates elasticsearch indicies.
rubber-soul exposes a REST API to reindex/backfill specific models.
- refactor to use the bulk api
- Set the tables to be mirrored in ES through setting
RubberSoul::MANAGED_TABLESwith an array of
(T < RethinkORM::Base).class
- Configure Elastic client through
ES_PORTenv vars, or through switches on the command line
- Configure RethinkDB connection
Deletes indexes and recreates index mappings. Backfills the indices by default (toggle with backfill boolean).
Backfills all indexes with data from RethinkDB.
- Each RethinkDB table receives an ES index, with a mapping generated from the attributes of a RethinkORM model.
- RethinkORM attributes can accept a tag
es_typeto specify the correct field datatype for the index schema.
belongs_toassociations are modelled with ES
joindatatypes, associated documents are replicated in their parent's index. This is necessary for
RubberSoul::TableManager hooks into the changefeed of a table, resolves associations of the model and creates/updates documents in the appropriate ES indices.
- rethinkdb 2.3.6
- elasticsearch 7.0.0
- Fork it
- Create your feature branch (
git checkout -b my-new-feature)
- Commit your changes (
git commit -am 'Add some feature')
- Push to the branch (
git push origin my-new-feature)
- Create a new Pull Request
- Caspian Baska - creator and maintainer