Annotation of cdli/searchIndex.py, revision 1.1
1.1 ! dwinter 1: #!/usr/bin/env python
! 2: from PyLucene import QueryParser, IndexSearcher, StandardAnalyzer, FSDirectory
! 3: from PyLucene import VERSION, LUCENE_VERSION
! 4:
! 5: """
! 6: This script is loosely based on the Lucene (java implementation) demo class
! 7: org.apache.lucene.demo.SearchFiles. It will prompt for a search query, then it
! 8: will search the Lucene index in the current directory called 'index' for the
! 9: search query entered against the 'contents' field. It will then display the
! 10: 'path' and 'name' fields for each of the hits it finds in the index. Note that
! 11: search.close() is currently commented out because it causes a stack overflow in
! 12: some cases.
! 13: """
! 14: def run(searcher, analyzer):
! 15: while True:
! 16: print
! 17: print "Hit enter with no input to quit."
! 18: command = raw_input("Query:")
! 19: if command == '':
! 20: return
! 21:
! 22: print
! 23: print "Searching for:", command
! 24: query = QueryParser("contents", analyzer).parse(command)
! 25: hits = searcher.search(query)
! 26: print "%s total matching documents." % hits.length()
! 27: for i, doc in hits:
! 28: print 'name:', doc.get("name"),doc.get("line")
! 29: print doc.get("contents")
! 30:
! 31: if __name__ == '__main__':
! 32: STORE_DIR = "index"
! 33: print 'PyLucene', VERSION, 'Lucene', LUCENE_VERSION
! 34: directory = FSDirectory.getDirectory(STORE_DIR, False)
! 35: searcher = IndexSearcher(directory)
! 36: analyzer = StandardAnalyzer()
! 37: run(searcher, analyzer)
! 38: searcher.close()
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>