1 # ====================================================================
2 # Licensed under the Apache License, Version 2.0 (the "License");
3 # you may not use this file except in compliance with the License.
4 # You may obtain a copy of the License at
6 # http://www.apache.org/licenses/LICENSE-2.0
8 # Unless required by applicable law or agreed to in writing, software
9 # distributed under the License is distributed on an "AS IS" BASIS,
10 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11 # See the License for the specific language governing permissions and
12 # limitations under the License.
13 # ====================================================================
18 SimpleAnalyzer, Document, QueryParser, Explanation, \
19 IndexSearcher, SimpleFSDirectory, File, Version
22 class Explainer(object):
27 print "Usage: Explainer <index dir> <query>"
31 queryExpression = argv[2]
33 directory = SimpleFSDirectory(File(indexDir))
34 query = QueryParser(Version.LUCENE_CURRENT, "contents",
35 SimpleAnalyzer()).parse(queryExpression)
37 print "Query:", queryExpression
39 searcher = IndexSearcher(directory)
40 scoreDocs = searcher.search(query, 50).scoreDocs
42 for scoreDoc in scoreDocs:
43 doc = searcher.doc(scoreDoc.doc)
44 explanation = searcher.explain(query, scoreDoc.doc)
46 print doc["title"].encode('utf-8')
49 main = classmethod(main)
52 if __name__ == "__main__":
54 Explainer.main(sys.argv)