Skip to content
Snippets Groups Projects
Select Git revision
  • d8ebf70da2ebf1b18c6b36ac6009ff3c868178b7
  • master default protected
  • v0.11
  • v0.10
  • v0.9
  • v0.8
  • v0.7
7 results

context_aware_search_index.py

Blame
  • user avatar
    felixwelter authored
    d8ebf70d
    History
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    context_aware_search_index.py 860 B
    from whoosh.qparser import QueryParser, OrGroup
    
    from search_index import BasicSearchIndex
    from nltk import word_tokenize
    
    
    class ContextAwareSearchIndex(BasicSearchIndex):
        """Return fitting slides, favouring slides with the query contained in the title"""
    
        def result_list(self, query, context):
            term = query + ""  # Make new object
            query = " ".join([token + "^1" for token in word_tokenize(term)])
            context_tokens = word_tokenize(context)
            if len(context_tokens):
                individual_context_token_weight = str(round(1 / len(context_tokens), 3))
                query += " " + " ".join([token + "^" + individual_context_token_weight for token in context_tokens])
            query_parser = QueryParser("content", self.ix.schema, group=OrGroup.factory(0.9))
            return self.ix.searcher().search(query_parser.parse(query))