Example #1
0
 def _FindMatches(self, query, doc):
     """Entry point for matching document against a query."""
     self._Debug('_FindMatches: query: %r, doc: %s' % (query, doc), 0)
     query_tree = self._Simplify(query_parser.Parse(str(query, 'utf-8')))
     match = self._WalkQueryTree(query_tree, doc)
     self._Debug('_FindMatches: result: %s' % match, 0)
     return match
 def Search(self, search_request):
     """Searches the simple index for ."""
     query = urllib.unquote(search_request.query())
     query = query.strip()
     if not query:
         return copy.copy(self._documents.values())
     query_tree = query_parser.Parse(query)
     postings = self._Evaluate(query_tree)
     return self._DocumentsForPostings(postings)
Example #3
0
  def Search(self, search_request):
    """Searches the simple index for ."""
    query = urllib.unquote(search_request.query())
    query = query.strip()
    if not query:
      return [_ScoredDocument(document, 0) for document in
              copy.copy(self._documents.values())]
    if not isinstance(query, unicode):
      query = unicode(query, 'utf-8')
    query_tree = query_parser.Simplify(query_parser.Parse(query))

    score = _ScoreRequested(search_request)
    docs = self._Evaluate(query_tree, score=score)
    docs = self._Sort(docs, search_request, score)
    docs = self._AttachExpressions(docs, search_request)

    return docs
Example #4
0
 def Search(self, search_request):
     """Searches the simple index for ."""
     query = urllib.unquote(search_request.query())
     query = query.strip()
     if not query:
         return [
             _ScoredDocument(document, 0)
             for document in copy.copy(self._documents.values())
         ]
     if not isinstance(query, unicode):
         query = unicode(query, 'utf-8')
     query_tree = query_parser.Simplify(query_parser.Parse(query))
     terms = set([])
     postings = self._Evaluate(query_tree, terms)
     score = _ScoreRequested(search_request)
     docs = self._DocumentsForPostings(postings, score=score, terms=terms)
     if score:
         docs = sorted(docs, key=lambda doc: doc.score, reverse=True)
     else:
         docs = sorted(docs,
                       key=lambda doc: doc.document.order_id(),
                       reverse=True)
     return docs
def ValidateQuery(query):
    query_parser.Parse(unicode(query, 'utf-8'))
Example #6
0
def ValidateQuery(query):
    query_parser.Parse(str(query, 'utf-8'))
def ValidateQuery(query):
  parser_return = query_parser.Parse(six.text_type(query, 'utf-8'))
  if parser_return.tree and parser_return.tree.getType() is QueryParser.EMPTY:
    raise query_parser.QueryException('Empty query.')