Number of notebooks in a single instance of Zeppelin grows with time, especially as some of them can share same interpreter\spark context, becoming this way a shared 'utilities' that other notebooks re-use.
Given this, navigating between notebooks becomes more and more complicated.
One approach to solve this is though manual 'classification' of notebooks, i.e by introduce a way for a user to structure notebook library, i.e by notebook hierarchy. It is explored in
Another approach, explored in this proposal is - adding a search function, so anytime user will be 'one search away' from the definition of it's functions, examples of usage, etc.
The first step will be to add a simple 'search bar' to the nav-bar of Zeppelin frontend, and an in-memory fulltext search index of paragraphs to the backend.
This way user will be able to search through the code in all the paragraphs of all the notebooks.
Out of scope of this initial work:
- finetune search result scoring/ranking
- persistent index on-disk
- advanced tokenizers