Hi all,
I am new with Lucene.
I try to understand how can I find the term position.
I use following code to index documents:
...
IndexWriter writer = new IndexWriter(mIndexDir, mIwc);
FileInputStream fis;
fis = new FileInputStream(file);
Document doc = new Document();
Field pathField = new StringField("path", file.getPath(), Field.Store.YES);
doc.add(pathField);
doc.add(new TextField("contents", new BufferedReader(new InputStreamReader(fis,
"UTF-16LE"))));
writer.updateDocument(new Term("path", file.getPath()), doc);
fis.close();
writer.close();
...
To search I use following code:
...
IndexReader reader = DirectoryReader.open( mIndexDir );
IndexSearcher searcher = new IndexSearcher(reader);
QueryParser parser = new QueryParser(Version.LUCENE_40, "contents", mAnalyzer);
Query query = parser.parse(aQuery);
TopScoreDocCollector collector = TopScoreDocCollector.create(100, true);
searcher.search(query, collector);
ScoreDoc[] hits = collector.topDocs().scoreDocs;
for(int i=0;i<hits.length;++i) {
int docId = hits[i].doc;
Document d = searcher.doc(docId);
}
...
How can I find positions of my query string in the indexed documents.
Thanks, Vitaly