Lucene在搜索的时候数据源可以是文件系统,数据库,web等等。

Lucene的搜索是基于索引,Lucene是基于前面建立的索引之上进行搜索的。

使用Lucene就像使用普通的数据库一样。

Lucene的核心包及其功能说明

Lucene要实现检索,需要有两个关键的环节:第一个环节:索引环节。从不同数据源(文件系统,数据库,web,手工输入等等)收集数据,收集完毕之后通过调用Lucene下面所提供的API来最后把生成的索引写入到索引文件中,这是第一个环节。第二个环节:搜索环节。搜索是建立在生成的索引基础之上进行搜索的。

Lucene的核心包类分为:索引相关的和搜索相关的。

Lucene的核心索引类

中文和英文各有一套停用词。

谷歌搜索一直错了

Document可以当做是关系数据库中的一条记录,在实际的处理过程中一个记录下面就可以包含多个字段。在实际的处理过程中的,Docuemnt的作用就是处理文本,把处理好的文本通过IndexWriter写入到索引文件中,这是Document类的作用。Field相当于关系型数据库中的列或者是字段,而关系型数据库的字段类型比较丰富,在这里Field类型的数据类型没有那么丰富。早先的版本Field在Lucene下面提供了四种类型,最新的版本中它是通过两个参数配合来实现的。Field类型的确认是通过Field下面两个属性:一个是Index,一个是Store。两个属性下面的对应的常量交叉配合来确定的。

Store有三个常量:YES,NO,COMPRESS。在实际使用过程中,通过Index和Store两个属性的相互配合,可以有多个Field类型来出现。例如,Index:ANALYZED,Store:YES表示要进行分词处理,要进行索引、存储。Index:ANALYZED,Store:NO表示进行分词处理,进行索引但是不进行存储操作。

通过Index和Store相互配合,可以出现多个Field类型来供我们选择和使用,这和原先Field提供的四种类型就是说这比早先版本的Lucene所提供的四种类型的要丰富的多。

IndexSearcher是索引式检索的基础:要先建立完索引之后,才能进行检索操作。Hits它的地位相当于在关系型数据库中进行检索之后返回的ResultSet字符集。

Lucene内部实现简析

Lucene的系统架构,了解Lucene的核心包和核心类,了解Lucene的内部实现的基本原理。

01 lucene基础 北风网项目培训 Lucene实践课程 系统架构的更多相关文章

  1. 01 lucene基础 北风网项目培训 Lucene实践课程 索引

    在创建索引的过程中IndexWriter会创建多个对应的Segment,这个Segment就是对应一个实体的索引段.随着索引的创建,Segment会慢慢的变大.为了提高索引的效率,IndexWrite ...

  2. 01 lucene基础 北风网项目培训 Lucene实践课程 Lucene概述

    lucene-core-2.4.1.jar是lucene开发的核心jar包,lucene-analyzers-2.4.1.jar也是必不可少的.lucene-highlighter-2.4.1.jar ...

  3. TOP100summit2017:网易云通信与视频CTO赵加雨:外力推动下系统架构的4个变化趋势

      壹佰案例:很荣幸邀请到您成为第六届壹佰案例峰会架构专场的联席主席,您曾深度参与Cisco Jabber,Webex Meeting, Cisco Spark等多项分布式实时通信类产品的架构与研发, ...

  4. Lucene基础(1)

    下一篇: Lucene基础(2) 一.Lucene介绍 http://www.kailing.pub/index/columns/colid/16.html Documentation:http:// ...

  5. [全文检索]Lucene基础入门.

    本打算直接来学习Solr, 现在先把Lucene的只是捋一遍. 本文内容: 1. 搜索引擎的发展史 2. Lucene入门 3. Lucene的API详解 4. 索引调优 5. Lucene搜索结果排 ...

  6. Lucene基础(2)

    上一篇:Lucene基础(1) 一.Lucene术语 Document, Field, Term, Query, Analyzer相信在其中大多数在之前已经理解了...对其中部分概念详细说明 Docu ...

  7. 【转】一个lucene的官网例子

    创建索引: import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import jav ...

  8. Lucene基础(一)--入门

    Lucene介绍 lucene的介绍,这里引用百度百科的介绍Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引 ...

  9. 后端技术杂谈3:Lucene基础原理与实践

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...

随机推荐

  1. C#封装的一个JSON操作类

    using System; using System.Collections.Generic; using System.Collections; using System.Text; using S ...

  2. 我的 Git 学习过程

    我的 Git 学习过程 有 SVN 使用基础. 开始使用 FastAdmin 后正式使用 Git. 找了一篇廖雪峰的 <Git 教程> 找到一个在线学习 Git 的教程 https://l ...

  3. 1.远程仓库的使用(github)

    1.登录Github,新建一个仓库(远程仓库) (1)使用Github账号密码登录 (2)点击+旁边的小三角,选择new repository--输入repository name--点击create ...

  4. vs2017 xamarin导入jar,SO文件的问题

    最近要弄用vs弄个安卓的系统,因为要使用硬件,所以要引进jar,SO文件 导入jar文件很顺利,具体步骤我也是在网上找的这里给个链接 http://www.2cto.com/kf/201604/502 ...

  5. NFS搭建与配置

    NFS应用场景是:A,B,C三台机器上需要保证被访问到的文件是一样的,A共享数据出来,B和C分别去挂载A共享的数据目录,从而B和C访问到的数据和A上的一致性 172.131.1.135  服务器端 1 ...

  6. Unit01: Spring简介 、 Spring容器 、 Spring IOC

    Unit01: Spring简介 . Spring容器 . Spring IOC Spring (1)Spring是什么? Spring是一个开源的用来简化应用开发的框架. (2)Spring的特点? ...

  7. cowboy的路由方式

    直接贴代码 route_helper.erl -module(route_helper). -export([get_routes/]). get_routes() -> [ {'_', [ % ...

  8. css怎么设置2个div同行,第一个固定宽度,第二个占满剩余的部分

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. SQL Server此数据库没有有效所有者

    一般此问题出现在还原外部数据库文件的时候,是因为还原的时候本机数据库没有所还原数据库中的用户. 1.选中所还原数据库,安全->用户,删除没有的用户. 2.选中所还原数据库,右键属性->文件 ...

  10. python读取excel表格中的数据

    使用python语言实现Excel 表格中的数据读取,需要用到xlrd.py模块,实现程序如下: import xlrd #导入xlrd模块 class ExcelData(): def __init ...