def doQuery(query, start, nb_results): parser = QueryParser("text", StandardAnalyzer()) parser.setDefaultOperator(QueryParser.Operator.AND) query = parser.parse(query) hits = searcher.search(query) return formatResultsPlain(query, hits, nb_results, start)
def run(searcher, analyzer, querystr): query = QueryParser("contents", analyzer).parse(querystr) hits = searcher.search(query) results = [] for i, doc in hits: results.append([doc.get("name"), doc.get("owner").encode('gbk'), doc.get("title").encode('gbk')]) # sort result results.sort(lambda x,y: cmp(x[0],y[0])) for name,owner,title in results: print name, owner, title
def run(searcher, analyzer): while True: print print "Hit enter with no input to quit." command = raw_input("Query:") if command == '': return print print "Searching for:", command query = QueryParser("contents", analyzer).parse(command) hits = searcher.search(query) print "%s total matching documents." % hits.length() for i, doc in hits: print 'path:', doc.get("path"), 'name:', doc.get("name")
def search(self, query, fields=FEED_ENTRY_FIELDS, analyzer=None, support=None): if not query or len(query.strip()) == 0 or len(fields) == 0: return None if not support: support = self.entrySupport analyzer = analyzer or support.analyzer if len(fields) > 1: qp = MultiFieldQueryParser(fields, analyzer) else: qp = QueryParser(fields[0], analyzer) q = qp.parse(query) searcher = support.getIndexSearcher() hits = searcher.search(q, Sort.RELEVANCE) return HitHolder(hits, searcher)
def doQuery(searcher, flds, query, start, nb_results): parser = QueryParser("text", StandardAnalyzer()) parser.setDefaultOperator(QueryParser.Operator.AND) query = parser.parse(query) hits = searcher.search(query) formatResultsTable(query, flds, hits, start, nb_results)