2.多索引搜索MultiSearcher
在构造的时候传进去一个Searcher数组即可
3.过滤器Filter
看个例子:
public void FilterTest() throws IOException, ParseException
{
IndexWriter indexWriter = new IndexWriter("C://FilterTest",new StandardAnalyzer(),true);
Document doc = new Document();
doc.add(new Field("name","程序员之家",Field.Store.YES,Field.Index.TOKENIZED));
indexWriter.addDocument(doc);
doc=new Document();
doc.add(new Field("name","程序员杂志",Field.Store.YES,Field.Index.TOKENIZED));
indexWriter.addDocument(doc);
indexWriter.close();
Query query = null;
Hits hits = null;
IndexSearcher indexSearcher = new IndexSearcher("C://FilterTest");
QueryParser queryParser = new QueryParser("name",new StandardAnalyzer());
query = queryParser.parse("程序");
hits = indexSearcher.search(query,new Filter()
{
@Override
public BitSet bits(IndexReader reader) throws IOException
{
BitSet bit = new BitSet(reader.maxDoc());
for(int i=0;i
{
if(reader.document(i).get("name").endsWith("杂志"))//将以“杂志”后缀的过滤掉
continue;
bit.set(i);
}
return bit;
}
});
System.out.println(hits.length());
for(int i=0;i
{
doc =hits.doc(i);
System.out.println(doc.get("name"));
}
}
这只是一个入门的文档Lucene 2.0的内容还有很多,这里只是介绍了一部分,其它的可以看帮助文档来学习。