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 searchDocuments(self, version, query, attribute=None): directory = DbDirectory(self.store.txn, self._db, self.store._blocks._db, self._flags) searcher = IndexSearcher(directory) query = QueryParser.parse(query, "contents", StandardAnalyzer()) docs = {} for i, doc in searcher.search(query): ver = long(doc['version']) if ver <= version: uuid = UUID(doc['owner']) dv = docs.get(uuid, None) if dv is None or dv[0] < ver: docAttr = doc['attribute'] if attribute is None or attribute == docAttr: docs[uuid] = (ver, docAttr) searcher.close() return docs
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)
def parseQuery(phrase): query = QueryParser.parse(phrase, "content", StandardAnalyzer()) return query
#!/usr/bin/env python2.4 from sys import argv from PyLucene import FSDirectory, IndexSearcher, QueryParser, StandardAnalyzer string = argv[1].strip() directory = FSDirectory.getDirectory( 'chipy-index', False ) searcher = IndexSearcher( directory ) query = QueryParser.parse( string, 'all', StandardAnalyzer() ) hits = searcher.search( query ) for i in range(0,hits.length()): doc = hits.doc(i) print "ID: %s" % doc.getField('id').stringValue() print "From: %s" % doc.getField('from').stringValue() print "Subject: %s" % doc.getField('subject').stringValue() print "Date: %s" % doc.getField('date').stringValue() print