- 浏览: 71754 次
文章分类
- 全部博客 (47)
- 合并两个表 (1)
- java (46)
- 获得一个节点对象的节点类型 (1)
- JSP 页面不能解析EL表达式。 (1)
- 数据库连接长时间空闲后 (1)
- 爆连接已经关闭的解决方法 (1)
- 设计工作流引擎就象设计一部汽车(工作流程引擎设计思路提示) (1)
- Hadoop的下一代mapreduce (1)
- 备忘css元素定位 (1)
- 第一次通宵 (1)
- 字符编码工具类 (1)
- Asset Pipeline in rails 3.1.0 (1)
- IT行业热点----我国IT飞速发展需关注6大问题 (1)
- Web Service实践之——开始XFire (1)
- 单片机C语言编程基础模板 (1)
- 中医养生顺口溜 (1)
- Property文件读取的Util类 (1)
- JEECMS (1)
- CheckStyle使用java.header文件的问题 (1)
- JUnit4测试代码示例 (1)
- JavaScript中三个弹出窗口 (1)
- About .Net Petshop (1)
- MapXtreme2004代码 在地图上新增加点图元 (1)
- 50个GMail的邀请权 想要的留下EMail (1)
- asp.net+Access简单企业站源码 (1)
- 局域网指定ip断网工具源码 (1)
- lucene索引和搜索过程中的核心类介绍 (1)
- poi 取消科学计数法 (1)
- centos相关 (1)
- java.lang.IllegalStateException: No WebApplicationContext found: no ContextLoaderListener registered (1)
- Project configuration is not up-to-date with pom.xml. 问题解决 (1)
- js截取最后一个.的字符串(IP地址判断) (1)
- Android开发之《Android应用开发揭秘》UI事件汇总 (1)
- SSH through proxy to visit ssh.github.com (ZZ) (1)
- eclipse3.7 添加任务标记 (1)
- SQLServer2005和2008的分页技术比较 (1)
- 传智播客java基础加强ppt (1)
- Struts 标签疑难问题收集-乔乐共享 (1)
- mysql使用rand随机查询记录效率测试 (1)
- 按钮实现spinner (1)
- 线程循环 (1)
- Android相关工具地址 (1)
最新评论
-
543089122:
N年前的老掉牙的手段了,原理也就是ARP
局域网指定ip断网工具源码 -
lvwenwen:
...
Web Service实践之——开始XFire -
hz_grape:
程序员的人生
第一次通宵 -
faylai:
传说中的广告贴啊!!
设计工作流引擎就象设计一部汽车(工作流程引擎设计思路提示)
lucene索引和搜索过程中的核心类介绍
lucene是一个工具包,一个Java类库,是一个1M多的jar文件,并不是一个完整的搜索程序,Lucene只专注于文本的索引和搜索功能,它能够让应用程序在不需要了解复杂的索引和搜索的实现的情况下,通过调用简单封装API,为应用程序添加上搜索功能。
1.执行简单的索引过程需要用到以下几个类:IndexWriter Directory Analyzer Document Field
IndexWriter:(写索引)是索引过程的核心组件,这个类负责创建新的索引或者打开已有索引,以及向索引中添加,删除或者更新被索引的信息。可以把IndexWriter当作一个提供针对索引文件的写入操作,但不能用于读取或者搜索索引。IndexWriter需要开辟一定空间来存储索引,此功能可以由Directory完成.
Directory:用来描述Lucene索引的存放位置。它是一个抽象类,它的子类负责具体指定索引的存储路径,可以使用FSDirectory.open()方法来获取真实文件在文件系统中的存储路径。
Analyzer:IndexWriter不能直接索引文本,文本首先需要被分词成词汇单元,而Analyzer负责从被索引文本文件中提取词汇单元,并进行一些处理,比如说,剔出停用词(a, the ,this对搜索无意义的词),如果被索引内容不是纯文本文档,需要首先将其转换成文本文档格式。(索引本质上就是词汇单元到文件之间的映射,所以建立索引和搜索索引处理的都是词汇单元).
Document:用来描述文档的,这里的文档可以指一个 HTML 页面,一封电子邮件,或者是一个文本文件。一个 Document 对象由多个 Field 对象组成的。可以把一个 Document 对象想象成数据库中的一个记录,而每个 Field 对象就是记录的一个字段。
Field:索引中每个文档都包含一个或者多个不同的域,这个域就是Field,而每个域都有一个域名和对应的域值。Field 对象是用来描述一个文档的某个属性的,比如一封电子邮件的标题和内容可以用两个 Field 对象分别描述。
2.执行简单的搜索过程需要用到以下几个类:IndexSearch, Term, Query, TermQuery,TopDocs
IndexSearch:类用于搜索IndexWriter类创建的索引
TermQuery:是Lucene提供的最基本的查询类型,Query的子类,用来匹配指定域中包含特定项的文档。生成一个TermQuery对象由如下语句完成: TermQuery termQuery = new TermQuery(new Term(“fieldName”,”queryWord”)); 它的构造函数只接受一个参数,那就是一个Term对象。
Query:这是一个抽象类,它有多个实现,比如TermQuery, BooleanQuery, PrefixQuery. 这个类的目的是把用户输入的查询字符串封装成Lucene能够识别的Query。
Term:Term 是搜索的基本单位,一个Term对象有两个String类型的域组成。生成一个Term对象可以有如下一条语句来完成:Term term = new Term(“fieldName”,”queryWord”); 其中第一个参数代表了要在文档的哪一个Field上进行查找,第二个参数代表了要查询的关键词
TopDocs:用来保存搜索结果,是一个简单的指针容器,指针一般指向前N个排名的搜索结果.TopDocs会记录前N个结果中每个结果的int docID和浮点型分数。
发表评论
-
Android相关工具地址
2012-02-08 15:57 761SDK: http://developer.andr ... -
线程循环
2012-02-07 14:28 789@selector(xxxThread)方法以后,在方 ... -
按钮实现spinner
2012-02-03 12:43 853int cityID=0; //用于默认选择哪个 ... -
mysql使用rand随机查询记录效率测试
2012-02-03 09:24 728一直以为mysql随机查询几条数据,就用 SELECT ... -
Struts 标签疑难问题收集-乔乐共享
2012-02-02 15:14 846循环List:private List list; & ... -
传智播客java基础加强ppt
2012-01-31 16:13 1542<p>????? 如果想把java基础打牢 ... -
SQLServer2005和2008的分页技术比较
2012-01-31 15:53 1937<span style="fon ... -
eclipse3.7 添加任务标记
2012-01-31 15:23 2364<p>在编写程序时有一些工作要等到以后才做 ... -
SSH through proxy to visit ssh.github.com (ZZ)
2012-01-31 14:58 1867<p>Scenario:</p> ... -
Android开发之《Android应用开发揭秘》UI事件汇总
2012-01-11 14:43 1180<h1>Android开发之《Androi ... -
js截取最后一个.的字符串(IP地址判断)
2012-01-11 14:18 2226[size=small;] 由于我们的项目中需 ... -
Project configuration is not up-to-date with pom.xml. 问题解决
2012-01-11 13:09 2039<span>Project configu ... -
java.lang.IllegalStateException: No WebApplicationContext found: no ContextLoaderListener registered
2011-12-28 12:28 5447<span style="font-f ... -
centos相关
2011-12-28 11:34 811比较新的源 rpm -Uvh http://dow ... -
poi 取消科学计数法
2011-12-21 13:33 2187[size=medium;]<br>[/s ... -
局域网指定ip断网工具源码
2011-12-20 13:53 2023只适用于小型局域网 <br> <s ... -
asp.net+Access简单企业站源码
2011-12-20 12:04 3149<span style="font-f ... -
50个GMail的邀请权 想要的留下EMail
2011-12-15 13:34 734今天看到自己已经有50个GMail的邀请权了 想要的请 ... -
MapXtreme2004代码 在地图上新增加点图元
2011-12-15 13:29 771sender, System.EventArgs e ... -
About .Net Petshop
2011-12-14 19:29 687<span style="" ...
相关推荐
Lucene索引过程的核心类 IndexWriter :提供对索引的写入操作 Directory:描述了索引存放的位置 Analyzer:对文本进行分析,提取词汇(token),剔除无用的信息 Document:虚拟的文档 Field:每个Document包含一个或...
1.1 索引部分的核心类 2 1.2 分词部分的核心类 2 1.3 搜索部分的核心类 2 第二章 索引建立 3 2.1 创建Directory 3 2.2 创建Writer 3 2.3 创建文档并且添加索引 4 2.4 查询索引的基本信息 5 2.5 删除和更新索引 5 (1)...
// IndexFileDeleter deleter是IndexWriter类的一个私有的成员变量,它在org.apache.lucene.index包里面,主要对删除索引文件进行实现和管理 deleter = new IndexFileDeleter(directory, deletionPolicy == null ...
索引包是整个系统核心,全文检索的根本就是为每个切出来的词建索引,查询时就只需要遍历索引,而不需要去正文中遍历,从而极大的提高检索效率。 5)org.apache.1ucene.queryParser查询分析器,实现查询关键词间的...
ElasticSearch(简称ES)是一个基于Lucene的分布式搜索和分析引擎,也是Elastic Stack的核心组件。它是一个开源项目,使用Java开发,在Apache许可条款下开放源码发布。 ES具有高扩展性,可以扩展到上百台服务器,...
1 Flume的agent三个核心组件分别是什么? 2 Kafka如何实现多个消费者消费同一个队列,并且数据无重复 3 请描述下列Sqoop的参数含义: --connect --username --password --table --target-dir --split-by 4 Lucene两...
利用java.url中的类实现Spider程序与外界通讯,以及处理网页中的URL连接,对蜘蛛程序的核心类(通讯核心、蜘蛛程序工作核心),资源索引的建立与搜索新型了详细的研究。 通过设计分析,完成了自己的蜘蛛爬行程序。...
本文首先介绍了搜索引擎出现的必要性,以及什么是搜索引擎、搜索引擎的分类、处理流程、核心技术,同时也对如何才能提高搜索引擎的精准度以及关联度进行了更加深入的研究。 关键词: Web搜索
搜索引擎分类--索引式搜索引擎 搜索引擎分类--元搜索引擎 开源搜索引擎Lucene家族 搜索引擎的三大核心 中文分词 相关排序 相关排序算法 网络蜘蛛 Lucene简介 Lucene与Solr的关系 Solr的特点与优势 Solr 客户端 Solr ...
前言 第1章 Elasticsearch入门 1 1.1 Elasticsearch是什么 1 1.1.1 Elasticsearch的历史 2 1.1.2 相关产品 3 1.2 全文搜索 3 1.2.1 Lucene介绍 4 1.2.2 Lucene倒排索引 4 1.3 基础知识 6 1.3.1 Elasticsearch术语及...
它基于 Java 开发,基于 Lucene 框架,提供 Web 网页爬虫和搜索引擎两部分功能。 Nutch主要分为两个部分:网页爬虫(Crawler)和搜索引擎(Searcher)。Crawler主要用于从网络上抓取网页并为这些网页建立索引。...
在Nutch的进化过程中,产生了Hadoop、Tika、Gora和Crawler Commons四个Java开源项目。如今这四个项目都发展迅速,极其火爆,尤其是Hadoop,其已成为大规模数据处理的事实上的标准。Tika使用多种现有的开源内容解析...
Lucene是根据关健字来搜索的文本搜索工具(全文搜索引擎),只能在某个网站内部搜索文本内容,不能跨网站搜索 全文搜索引擎是在硬盘上的搜索,比传统Mysql数据库是要快的 比传统SQL多的功能:查询的结果有...
索引和搜索部分借助Lucene全文搜索引擎库中的Java类进行实现。实现搜索引擎的个性化,使搜索引擎具有自我学习的功能,能自动地适应用户的查询需求,并能对用户进行智能分类从而为搜索引擎的个性化提供依据。
searchengineer 垂直搜索 实现了一个小型完整的搜索引擎系统...最后是搜索引擎的核心全文索引,了解了自定义的数据结构,数据类型,怎样以二进制的形式读写文本,怎样以utf-8编码形式存储文本,快速排序,二分查找的运用。
为什么当您拥有一个基于Lucene的大量索引时,说出亿万条记录,那么您所需要的就是确信索引正确。 在很多情况下,人们使用Solr / ElasticSearch / Compass对其中央数据库,mongodb,hbase等进行索引,因此索引是数据...
11.2.6 案例:使用Lucene索引和检索 291 11.3 中文分词 296 11.3.1 中文分词方法 296 11.3.2 IK分词器的使用 297 11.4 索引浏览器Luke 299 11.4.1 Luke的功能及下载 299 11.4.2 Luke的用法 300...
是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎 json-lib-2.2.3-jdk15.jar json和java转化的辅助工具 flexjson.jar java到json串的转换 gson-1.3.jar java到json串的转换 ognl-2.6.11.jar...
13.8. 自定义Feed和条目类 14. Zend_Filter 14.1. 简介 14.1.1. 什么是过滤器(filter)? 14.1.2. 过滤器的基本用法 14.1.3. 使用静态 get() 方法 14.2. 标准过滤器类 14.2.1. Alnum 14.2.2. Alpha 14.2.3. ...
基础核心 基础知识 反射 泛型 动态代理 JDK8新特性 集合容器 多线程与并发 Spring SpringMVC SpringBoot Mybatis 数据结构与算法 入门基础 基础数据结构 数组&链表 数组&链表进阶 栈 队列 算法思想 数论&枚举&递归&...