lucene(11)

2021SC@SDUSC

搜索过程(1)

Lucene搜索样例:

public static void main(String[] args)
{
 try {
     IndexReader reader=DirectoryReader.open(FSDirectory.open(new File("F:\\index")));
     IndexSearcher searcher=new IndexSearcher(reader);
     Analyzer analyzer=new StandardAnalyzer(Version.LUCENE_43);
     
      QueryParser queryParser=new QueryParser(Version.LUCENE_43, "content", analyzer);
     
      Query query=queryParser.parse("lucene");
      TopDocs topDocs=searcher.search(query, 10);
     
      ScoreDoc[] hits=topDocs.scoreDocs;
     
      for(int i=0;i      {
          System.out.println("score:"+hits[i].score);
          System.out.println("title:"+searcher.doc((hits[i].doc)).get("title"));
      }
   
} catch (Exception e) {
    e.printStackTrace();
}   
}

相关类的简单描述

1.IndexReader

IndexReader是一个抽象类,提供访问索引的接口。对一个索引的查询就是通过该接口。

有两种不同的IndexReader。

a.AtomicReader:不包含子reader 是一个原子类型的reader 支持存储域,文档值,词和倒排表

b.CompositeReader:

一个基于硬盘的IndexReader实例,通常是通过调用DirectoryReader.open()方法来构造的。

对于更有效地方法,通常通过一个唯一的ID来关联一个document。IndexReader是线程安全的。


2.AtomicReader

3.CompositeReader

4.IndexReaderContext

代表IndexReader层次关系的一个结构类。

5.DirectoryReader
CompositeReader的实现类,可以从一个directory中读取索引信息。
通常调用静态方法open(final Directory directory)

6.FindSegmentsFile
同当前段文件打交道的工具类。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值