Lucene in action 第一章 初识Lucene

1.3 搜索程序组件

Lucene提供搜索程序的最核心模块:索引模块和搜索模块的类库。

Solr基于Lucene,提供更丰富的UI和API可以直接部署和使用

下图为搜索程序的基本框架。中间黑体部分为Lucene完成的功能,也是搜索引擎的最核心部分。

搜索引擎评价:

  满足基本功能:搜索结果正确显示

  搜索回复时间

  扩展功能:语法纠错,关键词高亮等

1.3.1索引组件

搜索引擎原理:

  朴素思想:顺序搜索

  问题:速度太慢

  解决:对文本内容建立索引,通过索引返回结果

  1.获取内容:

    网页内容:爬虫工具

    文件系统特定目录,数据库内容:容易获取

    内容分散(文件系统,局域网内容等):不易获取有

    权限管理的系统:更复杂,需要获取root权限,获取权限列表,实现搜索的权限控制

  内容获取要求以增量的形式运行:可以实时更新

  Lucene不提供内容获取,完全依赖你自己的程序或第三方程序:

    solr:支持数据库,xml,集成tika

    nutch:网络爬虫

    lily:solr+hadoop的分布式搜索系统

  2.建立文档:

  将所有格式的内容(各类文件,数据库的一条记录等)转换成Lucene识别的搜索引擎文档类:Document。document主要包括带值的域,例如标题title,正文content,作者author等等。可以自定义域,还可以运用语义分析器提取正文文本分别写入新的域。

  3.文档分析:

  对文档域值进行分析处理,以便索引。

  主要为分词器和过滤器,实现例如统一大小写,提取词干,分词等操作。

  4.文档索引:将分析的结果进行索引,添加到索引数据库

   倒排索引

  

  

时间: 2024-12-20 09:35:06

Lucene in action 第一章 初识Lucene的相关文章

第一章 初识Lucene

多看几遍 1.1 应对信息爆炸 1.2 Lucene 是什么 1.2.1 Lucene 能做些什么 1.2.2 Lucene 的历史 1.3 Lucene 和搜索程序组件 基本概念 索引操作 将原始数据引入可被高效查找的对照表中,以便能够对这些内容进行快速搜索. 这里的对照表的结构是什么样的?是二叉排序树还是红黑树? 索引是一个精心设计的数据结构. 1.3.1 索引组件 获取内容 建立文档 文档分析 文档索引

《Lucene In Action》 01 初识Lucene

基于Lucene 3.0.1 1.Lucene简单定义 Lucene是高性能.可扩展的信息检索(IR)工具库.向用户提供了简单易用的索引和搜索API,屏蔽了内部复杂而先进的信息检索技术实现过程Lucene仅仅是一个提供搜索功能的类库,你还需要根据实际情况自行完成搜索程序的其他模块(网页抓取.文档处理.服务器运行.用户界面和管理等)Lucene的核心jar包很小,只有1M左右,核心之外,存在大量的扩展模块.另外你如果寻找一些成型的网页搜索.文档处理或搜索引擎,可以在Lucene wiki的技术支持

Solr in Action 第一章翻译(待整理)

Solr in action读书笔记第一篇第一章   第1章 Solr简介 本章速览: ·搜索引擎处理的数据特性 ·常见搜索引擎用例 ·Solr核心模块介绍 ·选择Solr的理由 ·功能概述 Solr 定义: 可扩展性:Solr可以把建立索引和查询处理的运算分布到一个集群内的多台服务器上. 快速部署:Solr是开源软件,安装和配置都很方便,可以根据安装包内的Sample配置直接上手. 优化搜索 :Solr搜索够快.对于复杂的搜索查询,Solr可以做到亚秒级的处理,通常几十毫秒就能处理完一次复杂查

实战 Lucene,第 1 部分: 初识 Lucene (zhuan)

http://www.ibm.com/developerworks/cn/Java/j-lo-lucene1/ *************************************************** Lucene 简介 Lucene 是一个基于 Java 的全文信息检索工具包,它不是一个完整的搜索应用程序,而是为你的应用程序提供索引和搜索功能.Lucene 目前是 Apache Jakarta 家族中的一个开源项目.也是目前最为流行的基于 Java 开源全文检索工具包. 目前已经

实战 Lucene,第 1 部分: 初识 Lucene

???Lucene 简介 Lucene 是一个基于 Java 的全文信息检索工具包,它不是一个完整的搜索应用程序,而是为你的应用程序提供索引和搜索功能.Lucene 目前是 Apache Jakarta 家族中的一个开源项目.也是目前最为流行的基于 Java 开源全文检索工具包. 目前已经有很多应用程序的搜索功能是基于 Lucene 的,比如 Eclipse 的帮助系统的搜索功能.Lucene 能够为文本类型的数据建立索引,所以你只要能把你要索引的数据格式转化的文本的,Lucene 就能对你的文

(转)实战 Lucene,第 1 部分: 初识 Lucene

Lucene 简介 Lucene 是一个基于 Java 的全文信息检索工具包,它不是一个完整的搜索应用程序,而是为你的应用程序提供索引和搜索功能.Lucene 目前是 Apache Jakarta 家族中的一个开源项目.也是目前最为流行的基于 Java 开源全文检索工具包. 目 前已经有很多应用程序的搜索功能是基于 Lucene 的,比如 Eclipse 的帮助系统的搜索功能.Lucene 能够为文本类型的数据建立索引,所以你只要能把你要索引的数据格式转化的文本的,Lucene 就能对你的文档进

《C语言启蒙》--第一章 初识c语言

阅读书籍的名称  <c primer> c语言的启蒙书籍. 第一章:初识c语言 1背景: c 语言很牛逼,可以跨平台,必须得会. 2.计算机的工作原理: 3.编译的过程 我们写完的代码称之为源代码,程序运行的实质是对01的不同位置的变化,而源代码需要转化成cpu可以执行的指令,也就是机器码,这个过程就是编译的过程,需要编译器来帮助我们来完成,c语言的文件中你肯定会用到各种库,这就需要c可以引入操作系统中的库文件,同时文件的启动需要启动代码,这些都需要引入,这个引入的工具就是连接器,最终将各个文

《Lucene In Action》 02 Hello Lucene World

Indexer: import org.apache.lucene.index.IndexWriter; import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; import org.apache.lucene.store.FSDirectory; import

Java 第一章 初识Java

第一章笔记 什么是计算机程序:算机为完成某些功能生产的一系列有序指令集合 Java技术包括: java SE:标准版 java EE:企业版 Java ME:移动版 开发Java程序步骤:1.编写 2.编译 3.运行 1.编写: a.大括号成对出现 b.class后面的单词要与文件名一致.(!!包括大小写) c.java严格区分大小写 2.编译: 命令:javac 文件名.java 产生结果:产生.class为后缀名的文件(此文件,看不懂,乱码) (注意!!!如果代码修改后,需重新编译后运行)