01 lucene基础 北风网项目培训 Lucene实践课程 系统架构

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实践课程 系统架构的更多相关文章
- 01 lucene基础 北风网项目培训 Lucene实践课程 索引
在创建索引的过程中IndexWriter会创建多个对应的Segment,这个Segment就是对应一个实体的索引段.随着索引的创建,Segment会慢慢的变大.为了提高索引的效率,IndexWrite ...
- 01 lucene基础 北风网项目培训 Lucene实践课程 Lucene概述
lucene-core-2.4.1.jar是lucene开发的核心jar包,lucene-analyzers-2.4.1.jar也是必不可少的.lucene-highlighter-2.4.1.jar ...
- TOP100summit2017:网易云通信与视频CTO赵加雨:外力推动下系统架构的4个变化趋势
壹佰案例:很荣幸邀请到您成为第六届壹佰案例峰会架构专场的联席主席,您曾深度参与Cisco Jabber,Webex Meeting, Cisco Spark等多项分布式实时通信类产品的架构与研发, ...
- Lucene基础(1)
下一篇: Lucene基础(2) 一.Lucene介绍 http://www.kailing.pub/index/columns/colid/16.html Documentation:http:// ...
- [全文检索]Lucene基础入门.
本打算直接来学习Solr, 现在先把Lucene的只是捋一遍. 本文内容: 1. 搜索引擎的发展史 2. Lucene入门 3. Lucene的API详解 4. 索引调优 5. Lucene搜索结果排 ...
- Lucene基础(2)
上一篇:Lucene基础(1) 一.Lucene术语 Document, Field, Term, Query, Analyzer相信在其中大多数在之前已经理解了...对其中部分概念详细说明 Docu ...
- 【转】一个lucene的官网例子
创建索引: import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import jav ...
- Lucene基础(一)--入门
Lucene介绍 lucene的介绍,这里引用百度百科的介绍Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引 ...
- 后端技术杂谈3:Lucene基础原理与实践
本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...
随机推荐
- Elixir's keyword lists as option parameters
备注: 文章转自:https://www.djm.org.uk/posts/writing-extensible-elixir-with-behaviours-adapters-pluggable-b ...
- 如何批处理多个MySQL文件
@echo off CHCP 65001 --设置cmd编码for %%i in (E:\sql\*.sql) do ( --多个MySQL SQL文件的存放目录echo excute %%i ...
- Arrays--codility
lesson 2: Arrays exercise: Problem: Given array A consisting of N integers, return the reversed arra ...
- numpy中文件的存储和读取-嵩天老师笔记
numpy中csv文件的存储和读取 CSV文件:(Comma‐Separated Value, 逗号分隔值) 一维和二维数组 存储 np.savetxt(frame,array,fmt='%.18e' ...
- centos6.6升级安装MySQL5.5(2015/3/4)
使用系统CentOS 6.6本来已经系统自带安装了mysql 5.1,但是奈何5.1不支持utf8mb4字符集(详见:http://blog.csdn.net/shootyou/article/det ...
- ngnix+uwsgi+django 部署mezzanine
以下是我用ngnix+uwsgi+django 部署mezzanine全过程,其中ngnix+uwsgi这块是看了虫师大神的博客(http://www.cnblogs.com/fnng/p/52686 ...
- Django模板输出Dict所有Value的效率问题
一次跑偏之旅! 对于一个惯用C++的人来说,使用Python这种语言的一大障碍就是许多集合类型的操作效率并不如传统的经典数据结构那样直观可见,以及许多实际上涉及到内存分配.对象复制之类的耗时操作被 ...
- python--logging库学习_自我总结---有空完善
思路: 1.把前面的都封装,然后在测试用例里面调用,每一步测试步骤下面都加一个 logging.info('这个是测试步骤')(可以 亲测) 2.尝试添加到unittest框架里面,看能不能一起使用 ...
- [转]加密经验集 => C#
下载地址 代码摘自 C#高级编程(第7版) 第579页 不对称加密
- 【转】WebAPI使用多个xml文件生成帮助文档
来自:http://www.it165.net/pro/html/201505/42504.html 一.前言 上篇有提到在WebAPI项目内,通过在Nuget里安装(Microsoft.AspNet ...