在用Lucene建立索引时,按照《征服Ajax+Lucene》上的例子,给文本文件建立索引,由于书上的例子使用的Lucene版本是1.4.3的,而我下载的版本是Lucene2.0.0,例子运行不了,经过我与2.0.0版中的Demo相比较,发现如下两个方法
doc.add(Field.Text('contents',reader));
doc.add(Field.Keyword('path',f.getAbsolutePath()));
应替换成:
doc.add(new Field('contents',reader));
doc.add(new
Field('path',f.getAbsolutePath(),Field.Store.YES,Field.Index.UN_TOKENIZED));
运行通过,且结果正确。
在查找时,也遇到了类似的问题,
query = QueryParser.parse(keyword,'contents',new
StandardAnalyzer());
编译不能通过,改为这三句:
StandardAnalyzer analyzer = new StandardAnalyzer();
QueryParser parser = new QueryParser('contents',analyzer);
query = parser.parse(keyword);
这样就能正确运行。