Student:
- Vaibhav Gupta (dojutsu-user)
Mentors:
- Eric Holscher (ericholscher)
- David Fischer (davidfischer)
This summer, I worked with Read the Docs with the aim of improving its search functionality.
The main objectives of my projects were:
-
To make an Sphinx extension to provide "search as you type" experience to the users.
- I worked on creating readthedocs-sphinx-search. It adds a clean and minimal full page search UI to the docs hosted by Read the Docs. Search results are shown to the user as he/she starts typing.
-
To add support for multiple hits per search result.
- Search results now contains results from sections of the documentation, which means that users don't have to scroll down all the way to the desired section.
-
To improve the UI/UX around code search.
- Search results now also includes sphinx domains. Earlier, these results were hidden because there were still some problems with its UI/UX.
-
To add support for search analytics.
- This includes saving the search queries in the database and provide analytics to the users with some aggregation queries. This feature is currently in beta state and available under a feature flag.
All of my work related to the search can be seen in In-Doc Search UI GitHub Project Board. Most of the PRs are merged into master
. There are still some open PRs/issues related to improvements, all of which can be seen in the project board mentioned above.
The number of features that can be implemented are infinite. Some of the features related to search which are planned to be implemented in future are:
-
Search Facets: Facets can be used to make search more accurate. For example: In Celery docs, facets can be used to search inside Kombu docs for
serializers
, likesubproject: kombu serializers
. (readthedocs/readthedocs.org#5966) -
Search Results Ordered By Most Viewed Pages: It would be much more useful if the most viewed pages are shown first in the search results. (readthedocs/readthedocs.org#5968)
-
Search Inside Sections: It would be good if users have the option to get the search results from a particular section of the documentation. For example: getting results from only Guides from Read the Docs documentation. (readthedocs/readthedocs-sphinx-search#23).
As I love being a contributor of Read The Docs, I am hoping to work on the above mentioned features in next couple of months.
I would like to thank my mentors Eric Holscher (ericholscher) and David Fischer (davidfischer) for their awesome guidance and support. And of course, many thanks to the members of core team - Anthony Johnson (agjohnson), Manuel Kaufmann (humitos) and Santos Gallegos (stsewd) who reviewed my work and provided feedback. It's been a great learning experience. The summers were awesome. 🎉