LA1TV/Website

Search facility

Opened this issue · 5 comments

Probably use something like http://www.elasticsearch.org/

Also have a look at generating a transcript of the video during the processing which can also be indexed for searching.

  • add flag to media_items table "pending_search_index_version" which should be an integer which is incremented by 1 every time something changes that should result in the item being reindexed (or removed from the index in the case of it becoming inaccessible).
  • add flag to media_items table "current_search_index_version" which should be set to the version number of the content that is currently indexed. This means if these 2 numbers are ever different the item should be indexed/reindexed/unindexed.
  • add flag to playlists table "pending_search_index_version"
  • add flag to playlists table "current_search_index_version"
  • add flag to shows table "pending_search_index_version"
  • add flag to shows table "current_search_index_version"

There will be the following types:

mediaItem

{
   id: <id>,
   name: <name>,
   description: <description>,
   scheduledPublishTime: <publish time>,
   playlists: [{
      generatedName: <name of item when in this playlist>,
      coverArtUri: <cover art uri for item when in this playlist>,
      url: <url to this item>,
      playlist: {
         id: <id>,
         name: <name>,
         description: <description>,
         coverArtUri: <cover art uri>,
         scheduledPublishTime: <publish time>,
         seriesNo: <series number>,
         url: <url to this playlist>,
         show: {
            id: <id>,
            name: <name>,
            description: <description>,
            url: <url to this show>
         }
      }
   }]
}

playlist

{
   id: <id>,
   name: <name>,
   description: <description>,
   coverArtUri: <cover art uri>,
   scheduledPublishTime: <publish time>,
   seriesNo: <series number>,
   url: <url to this playlist>,
   show: {
      id: <id>,
      name: <name>,
      description: <description>,
      url: <url to this show>
   }
 }

show

{
   id: <id>,
   name: <name>,
   description: <description>,
   url: <url to this show>
 }

Back end store work now completed
#644

Search is now available on desktops (#656 #657)

TODO

  • Add "type ahead" support so that it suggests the rest of what you're typing
  • Create "/search" page which is dedicated just to search and works on mobile as well as desktop
  • Figure out how to advertise this page so that things like chrome's inline search from the address bar can be compatible with it
  • When the resolution is below the resolution which enables the search dialog the search button on the nav bar should link to the new search page
  • Custom playlist and show urls should also go into the index
  • Chapter names should go in the index.
  • The publish time should be taken into consideration so that more recent results generally appear first
  • Report search terms to google analytics