<?xml version='1.0' encoding='UTF-8'?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://blog.readthedocs.com</id>
  <title>Read the Docs Blog - Posts tagged analytics</title>
  <updated>2023-07-08T10:50:30.011832+00:00</updated>
  <link href="https://blog.readthedocs.com"/>
  <link href="https://blog.readthedocs.com/archive/tag/analytics/atom.xml" rel="self"/>
  <generator uri="https://ablog.readthedocs.org/" version="0.10.26">ABlog</generator>
  <entry>
    <id>https://blog.readthedocs.com/improved-search-and-search-as-you-type/</id>
    <title>GSOC 2019: Improved Search Results and Search As You Type</title>
    <updated>2019-08-13T00:00:00+00:00</updated>
    <author>
      <name>Vaibhav Gupta</name>
    </author>
    <content type="html">&lt;section id="gsoc-2019-improved-search-results-and-search-as-you-type"&gt;

&lt;p&gt;Giving users the ability to easily find the information that they
are looking for has always been important for Read the Docs.
This year, I, &lt;a class="reference external" href="https://github.com/dojutsu-user"&gt;Vaibhav Gupta&lt;/a&gt;, took the opportunity provided
by Google Summer of Code to improve the search.
The main goals of my &lt;a class="reference external" href="https://summerofcode.withgoogle.com/projects/#5465587940065280"&gt;GSoC project&lt;/a&gt; were:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;to make a &lt;a class="reference external" href="https://readthedocs-sphinx-search.readthedocs.io/en/latest/"&gt;Sphinx extension&lt;/a&gt; to provide “search you type” experience to the users.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;to add support for multiple hits per search result.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;to improve the UI/UX around code search.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;to add support for search analytics.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Search as you type feature is live on our docs.
You can go through these links to experience it:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://docs.readthedocs.io/?rtd_search=contributing"&gt;https://docs.readthedocs.io/?rtd_search=contributing&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://docs.readthedocs.io/?rtd_search=api/v3/projects/"&gt;https://docs.readthedocs.io/?rtd_search=api/v3/projects/&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;section id="google-summer-of-code"&gt;
&lt;h2&gt;Google Summer of Code&lt;/h2&gt;
&lt;p&gt;Google Summer of Code is a global program where students work with
an open source organization on a 3-month programming project.
I got accepted in the program and was excited to spend my summer with Read the Docs.&lt;/p&gt;
&lt;p&gt;I have worked full time during the GSoC coding period and implemented various features.
All of my search related work can be seen in the &lt;a class="reference external" href="https://github.com/orgs/readthedocs/projects/7"&gt;In-Doc Search UI Project Board&lt;/a&gt;.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="background"&gt;
&lt;h2&gt;Background&lt;/h2&gt;
&lt;p&gt;The search code was originally contributed by &lt;a class="reference external" href="https://github.com/robhudson"&gt;Rob Hudson&lt;/a&gt;,
&lt;a class="reference external" href="https://github.com/readthedocs/readthedocs.org/pull/493"&gt;back in 2013&lt;/a&gt; and then improved upon by other contributors.
It was greatly improved and upgraded by &lt;a class="reference external" href="https://github.com/safwanrahman"&gt;Safwan Rahman&lt;/a&gt; during &lt;a class="reference internal" href="../../../search-improvements/"&gt;&lt;span class="doc"&gt;GSoC’18&lt;/span&gt;&lt;/a&gt;.
Continuing on the same path,
I have implemented some new features on top of the existing search backend.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="new-features"&gt;
&lt;h2&gt;New Features&lt;/h2&gt;
&lt;p&gt;During the GSoC period, I have worked on the following features:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;In-Doc Search UI&lt;/strong&gt;: &lt;a class="reference external" href="https://github.com/readthedocs/readthedocs-sphinx-search"&gt;readthedocs-sphinx-search&lt;/a&gt; is a sphinx extension that adds a clean and minimal
search UI to your docs. It supports “search as you type” feature.
So, it is now possible to get instant results without being redirected to any other page.
Read the docs &lt;a class="reference external" href="https://readthedocs-sphinx-search.readthedocs.io/en/latest/"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;figure class="align-center" id="id1"&gt;
&lt;a class="reference external image-reference" href="/_static/in-doc-search-demo.gif"&gt;&lt;img alt="In-doc search ui demo" src="../../../_images/in-doc-search-demo.gif" style="width: 100%;" /&gt;&lt;/a&gt;
&lt;figcaption&gt;
&lt;p&gt;&lt;span class="caption-text"&gt;In-Doc Search UI Demo&lt;/span&gt;&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Multiple Hits Per Search Result&lt;/strong&gt;: This is one of the highly requested features.
We now support search results from the sections of the docs, clicking on which will take you
to that particular section and not just to the top of the result page.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Code Search&lt;/strong&gt;: We now support code search. If you want to search a particular function
or an API endpoint – you can just type your query and you will find it in the results.
Eg: &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;api/v3/&lt;/span&gt;&lt;/code&gt; or &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;module.function&lt;/span&gt;&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Search Analytics&lt;/strong&gt;: We now have support for search analytics.
These analytics makes it easy to know what the users are looking for in your documentation.
You can see these analytics in your project admin dashboard.
Currently, this feature is in beta state and is available under a &lt;a class="reference external" href="http://docs.readthedocs.io/page/guides/feature-flags.html"&gt;feature flag&lt;/a&gt;.
We plan to make this available for everyone soon.
If you want to test this feature out and help giving us feedback,
please contact us via &lt;a class="reference external" href="https://github.com/readthedocs/readthedocs.org/issues/new"&gt;GitHub issues&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;figure class="align-center" id="id2"&gt;
&lt;a class="reference external image-reference" href="/_static/search-analytics-demo.png"&gt;&lt;img alt="Search analytics in project admin dashboard" src="../../../_images/search-analytics-demo.png" style="width: 60%;" /&gt;&lt;/a&gt;
&lt;figcaption&gt;
&lt;p&gt;&lt;span class="caption-text"&gt;Search analytics demo dashboard&lt;/span&gt;&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/section&gt;
&lt;section id="what-next"&gt;
&lt;h2&gt;What Next?&lt;/h2&gt;
&lt;p&gt;We don’t intend to stop just yet.
We are planning to work on some more cool features in the near future,
some of which are:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Search Facets&lt;/strong&gt;:
Facets can be used to make search more accurate.
For example: In &lt;a class="reference external" href="http://docs.celeryproject.org/en/latest/"&gt;Celery docs&lt;/a&gt;, facets can be used to search inside &lt;a class="reference external" href="http://docs.celeryproject.org/projects/kombu/en/latest/"&gt;Kombu docs&lt;/a&gt; for “serializers”,
like &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;subproject:&lt;/span&gt; &lt;span class="pre"&gt;kombu&lt;/span&gt; &lt;span class="pre"&gt;serializers&lt;/span&gt;&lt;/code&gt;.
(&lt;a class="reference external" href="https://github.com/readthedocs/readthedocs.org/issues/5966"&gt;readthedocs/readthedocs.org#5966&lt;/a&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Search Results Ordered By Most Viewed Pages&lt;/strong&gt;:
It would be much more useful if the most viewed pages are shown first in the search results.
(&lt;a class="reference external" href="https://github.com/readthedocs/readthedocs.org/issues/5968"&gt;readthedocs/readthedocs.org#5968&lt;/a&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Search Inside Sections&lt;/strong&gt;:
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 &lt;a class="reference external" href="https://docs.readthedocs.io/page/guides/"&gt;Guides&lt;/a&gt; of our &lt;a class="reference external" href="https://docs.readthedocs.io/"&gt;documentation&lt;/a&gt;.
(&lt;a class="reference external" href="https://github.com/readthedocs/readthedocs-sphinx-search/issues/23"&gt;readthedocs/readthedocs-sphinx-search#23&lt;/a&gt;).&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;section id="contributors-wanted"&gt;
&lt;h2&gt;Contributors Wanted&lt;/h2&gt;
&lt;p&gt;As Read the Docs is an open source project backed by a small team of developers,
most of them are busy just keeping the site up and running.
Therefore, it’s quite hard for them to take time to implement new features.
If you know some bit of Django or Python and Elasticsearch,
you can contribute to the search functionality of Read the Docs.
If you need any support to start contributing,
you can get in touch with me or any member of Read the Docs team.
You can find all of us at &lt;em&gt;#readthedocs&lt;/em&gt; freenode IRC channel or &lt;a class="reference external" href="https://gitter.im/rtfd/readthedocs.org"&gt;readthedocs gitter&lt;/a&gt; channel.
I am &lt;em&gt;dojutsu-user&lt;/em&gt; at IRC and &lt;em&gt;&amp;#64;dojutsu-user&lt;/em&gt; at gitter.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="conclusion"&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;These new features will make it much easier to find the relevant information in the docs.
There are an infinite number of ways it can be improved and I believe we can compete
with major search engines in terms of documentation searching.
We don’t need superhero or coding guru, just need people who understand Python,
Django and Elasticsearch and have some time to write some code for us.
You are a &lt;strong&gt;Superhero&lt;/strong&gt; to us if you can lend your time and effort to improve Read the Docs.&lt;/p&gt;
&lt;/section&gt;
&lt;/section&gt;
</content>
    <link href="https://blog.readthedocs.com/improved-search-and-search-as-you-type/" rel="alternate"/>
    <summary>Giving users the ability to easily find the information that they
are looking for has always been important for Read the Docs.
This year, I, Vaibhav Gupta, took the opportunity provided
by Google Summer of Code to improve the search.
The main goals of my GSoC project were:to make a Sphinx extension to provide “search you type” experience to the users.</summary>
    <category term="gsoc" label="gsoc"/>
    <category term="search" label="search"/>
    <category term="feature" label="feature"/>
    <category term="in-doc-search" label="in-doc-search"/>
    <category term="analytics" label="analytics"/>
    <published>2019-08-13T00:00:00+00:00</published>
  </entry>
</feed>
