现在的位置: 首页 > 综合 > 正文

Lucene-2.0学习文档(五)

2013年08月29日 ⁄ 综合 ⁄ 共 1513字 ⁄ 字号 评论关闭

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的内容还有很多,这里只是介绍了一部分,其它的可以看帮助文档来学习。

 

抱歉!评论已关闭.