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)
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
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'))
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.')