ActiveData
ActiveData copied to clipboard
Document quering nested documents
@klahnakoski hi! I am new to open source. I would like to contribute in your organizaion. Kindly let me know the documentation issues.
@isha-narula Good day!
ActiveData accepts SQL-like parse trees in JSON format. The nested document queries deviate from SQL significantly, and are closer to MDX in terms of simplicity. If you are willing to learn this specialized language then I will be happy to guide you. The bad news is most of the nested functionality has not been implemented: You will be writing a reference document, which will be used guide implementation and resolving corner cases.
ActiveData is just one of many project Mozilla has: https://codetribute.mozilla.org/
@klahnakoski Hi! I am willing to learn this new technology. Kindly help me and let me know, from where should I start?
@isha-narula Sorry for the late reply, I was very busy with another matter, and missed your message.
I think the best place to start is by using the code, and fixing the code. ActiveData consists of an unremarkable Flask app (https://github.com/mozilla/ActiveData/tree/dev/active_data|) atop a reasonably sophisticated query translator (https://github.com/mozilla/ActiveData/tree/dev/vendor/jx_elasticsearch). This translator converts from JSON query expressions to Elasticsearch's query language. If you decide to improve that code, you will learn both languages.
jx_elasticsearch
is not the only translator. There are others, like (https://github.com/mozilla/jx-sqlite) which converts JSON query expressions to Sqlite's SQL. This project is easier to work with: It is easier to setup, the tests run faster, you will learn query techniques of SQL. I think you will benefit more if you work on jx-sqlite
. When running the jx-sqlite
tests, you will get the impression it is in a bad state (see the dev branch); many tests do not pass. Despite this, the code is used by other programs: It works great for most situations already.
Please tell me what you decide; working in jx-elasticsearch
or jx-sqlite`. I will push my latest changes to those repos, and we can start discussing the details. I will help you setup your machine for development, ensure you can get the tests passing, and ensure your debugger can step through the code to fix your first bug. Then you can decide if you wish to continue; your help is appreciated.