部分知识点的梳理,参考<lucene实战>及网络资料

1、基本概念

lucence 可以认为分为两大组件:
1)索引组件
  a、内容获取:即将原始的内容材料,可以是数据库、网站(爬虫)、文本转换为lucence的Docment
  Docment 为若干个带值得域
  b、文档分析:利用分词器对文档进行分析;
  c、建立索引:根据文档分析的结构建立索引文件;
2)搜索组件
  a、建立查询:即将用户请求转换为搜索引擎支持的查询对象格式;
  b、执行搜索查询;并反馈Document结果集;

2、官方样例代码分析

**索引组件部分工作
1)创建一个包含某个分词器的IndexWriter
  private IndexWriter writer;
  writer = new IndexWriter(IndexDir, new StandardAnalyzer(), true, IndexWriter.MaxFieldLength.UNLIMITED);

2)遍历被索引的文件(即原始内容)将其转换为Document
  Docment doc = new Docment();
  doc.add(new Field("contents", new FileReader(f));
  doc.add(new Field("filename"), f.getName(), Field.Store.Yes, Field.Index.NOT_ANALYZED);

3)针对该Docment创建索引
  writer.addDocment(doc);

**搜索组件部分工作
1)打开索引文件
  IndexSearcher is = new IndexSearcher(IndexDir);

2)创建一个查询对象
  QueryParser parser = new QueryParser(Version.LUCENE_30, "contents", new StandardAnalyzer());
  Query query = parser("要找的查询关键字");

3)执行查询并返回结果
  TopDocs hits = is.search(query, 10);

3、lucene的核心类

  1、IndexWriter :提供对索引文件的写入操作;
  2、Directory: 抽象类,索引的存放位置
  3、Analyzer: 分词器,由IndexWriter的构造函数指定
  //IK 中文分词
  Analyzer analyzer = new IKAnalyzer();
  4、Document: 虚拟文件,由一些Field的集合;
  5、Field: 域,lucene实际搜索值的地方

  6、IndexSearcher:搜索由IndexWriter创建的索引;
  7、Term:搜索的基本单元,与Field类似
  8、Query:查询子类
  //多字段查询
  String [] stringQuery={"内容1","内容2"};
  String[] fields={"content","title"};
  Occur[] occ={Occur.SHOULD,Occur.SHOULD};
  Query query = MultiFieldQueryParser.parse(stringQuery, fields, occ, analyzer);
  9、TopDocs: 指针容器,指向结果集中的文档

lucene 基础知识点的更多相关文章

  1. fastclick 源码注解及一些基础知识点

    在移动端,网页上的点击穿透问题导致了非常糟糕的用户体验.那么该如何解决这个问题呢? 问题产生的原因 移动端浏览器的点击事件存在300ms的延迟执行,这个延迟是由于移动端需要通过在这个时间段用户是否两次 ...

  2. .NET基础知识点

    .NET基础知识点   l  .Net平台  .Net FrameWork框架   l  .Net FrameWork框架提供了一个稳定的运行环境,:来保障我们.Net平台正常的运转   l  两种交 ...

  3. JavaScript 开发者经常忽略或误用的七个基础知识点(转)

    JavaScript 本身可以算是一门简单的语言,但我们也不断用智慧和灵活的模式来改进它.昨天我们将这些模式应用到了 JavaScript 框架中,今天这些框架又驱动了我们的 Web 应用程序.很多新 ...

  4. JavaScript 开发者经常忽略或误用的七个基础知识点

    JavaScript 本身可以算是一门简单的语言,但我们也不断用智慧和灵活的模式来改进它.昨天我们将这些模式应用到了 JavaScript 框架中,今天这些框架又驱动了我们的 Web 应用程序.很多新 ...

  5. JavaScript开发者常忽略或误用的七个基础知识点

    JavaScript 本身可以算是一门简单的语言,但我们也不断用智慧和灵活的模式来改进它.昨天我们将这些模式应用到了 JavaScript 框架中,今天这些框架又驱动了我们的 Web 应用程序.很多新 ...

  6. JavaScript语言基础知识点图示(转)

    一位牛人归纳的JavaScript 语言基础知识点图示. 1.JavaScript 数据类型 2.JavaScript 变量 3.Javascript 运算符 4.JavaScript 数组 5.Ja ...

  7. JavaScript 语言基础知识点总结

    网上找到的一份JavaScript 语言基础知识点总结,还不错,挺全面的. (来自:http://t.cn/zjbXMmi @刘巍峰 分享 )  

  8. c语言学习之基础知识点介绍(三):scanf函数

    本节继续介绍c语言的基础知识点. scanf函数:用来接收用户输入的数据. 语法:scanf("格式化控制符",地址列表); 取地址要用到取地址符:&(shift+7) 例 ...

  9. c语言学习之基础知识点介绍(二):格式化控制符和变量的补充

    上节简单介绍了c语言中的一些基础知识点,本节将对之前介绍的不够详细的知识点进行补充. 格式化控制符的消息介绍: %d的其他控制符: 1.%md:m代表这个整数位占用多少位,m是一个整数.实际数字不足的 ...

随机推荐

  1. 理解Maven中的SNAPSHOT版本和正式版本

    Maven中建立的依赖管理方式基本已成为Java语言依赖管理的事实标准,Maven的替代者Gradle也基本沿用了Maven的依赖管理机制.在Maven依赖管理中,唯一标识一个依赖项是由该依赖项的三个 ...

  2. Java数据库连接技术——JDBC

    大家好,今天我们学习了Java如何连接数据库.之前学过.net语言的数据库操作,感觉就是一通百通,大同小异. JDBC是Java数据库连接技术的简称,提供连接各种常用数据库的能力. JDBC API ...

  3. PHP源码分析-变量

    1. 变量的三要素变量名称,变量类型,变量值 那么在PHP用户态下变量类型都有哪些,如下: // Zend/zend.h #define IS_NULL 0 #define IS_LONG 1 #de ...

  4. 利用CSS中的:after、: before制作的边三角提示框

    小颖昨天分享了一篇参考bootstrap中的popover.js的css画消息弹框今天给大家再分享一篇使用:before和:after伪元素画消息弹框的CSS. 画出来是介个酱紫的: 有没有觉得画的萌 ...

  5. 最好的.NET开源免费ZIP库DotNetZip(.NET组件介绍之三)

    在项目开发中,除了对数据的展示更多的就是对文件的相关操作,例如文件的创建和删除,以及文件的压缩和解压.文件压缩的好处有很多,主要就是在文件传输的方面,文件压缩的好处就不需要赘述,因为无论是开发者,还是 ...

  6. Spring cache简单使用guava cache

    Spring cache简单使用 前言 spring有一套和各种缓存的集成方式.类似于sl4j,你可以选择log框架实现,也一样可以实现缓存实现,比如ehcache,guava cache. [TOC ...

  7. NSURLSession详解

    导语 现在NSURLConnection在开发中会使用的越来越少,iOS9已经将NSURLConnection废弃,现在最低版本一般适配iOS7,所以也可以使用. NSURLConnection相对于 ...

  8. [Hadoop in Action] 第6章 编程实践

    Hadoop程序开发的独门绝技 在本地,伪分布和全分布模式下调试程序 程序输出的完整性检查和回归测试 日志和监控 性能调优   1.开发MapReduce程序   [本地模式]        本地模式 ...

  9. mysql 5.7中的用户权限分配相关解读!

    这篇文章主要介绍了MySQL中基本的用户和权限管理方法,包括各个权限所能操作的事务以及操作权限的一些常用命令语句,是MySQL入门学习中的基础知识,需要的朋友可以参考下 一.简介 各大帖子及文章都会讲 ...

  10. 在Linux配置Nginx web服务器步骤

    系统环境:centos7 需要软件:nginx-1.3.16.tar.gz   libevent-2.0.21-stable.tar.gz  Pcre 和 pcre-devel nginx下载地址:h ...