前言:lucene并不是像solr或elastic那样提供现成的、直接部署可用的系统,而是一套jar包,提供了一些常见语言分词、构建索引和创建搜索器等等功能的API,我们常用到的也就是分词器、索引目录管理、索引器以及几种搜索器。

这里我们会从lucene结构到实现逐一进行分析讲解

注意:基于lucene5.5.3,(只支持5.x版本,不支持5.x以下和6.x以上的lucene版本)

jar包集合下载地址:http://download.csdn.net/detail/eguid_1/9677589

一、lucene的基本结构

lucene 的主要功能由索引器索引搜索器构成,所有的外围功能都为构建索引和搜索两个功能提供服务

1、索引器构成

搜索器由分词器索引目录、索引文档构成

lucene全文搜索之二:创建索引器(创建IKAnalyzer分词器和索引目录)基于lucene5.5.2

(1)分词器构成

内置分词器:Lucene-analyzers-common-5.5.2.jar提供了多国语言的分词器

常用中文分词器:IKAnalyzer和庖丁

使用IK Analyzer中文分词器(修改IK Analyzer源码使其支持lucene5.5.x)

(2)索引目录构成

索引目录分为:文件目录内存虚拟目录

补充:在大量实际应用中百万级别的数据量下文件目录和内存虚拟目录索引在性能上并没有太大差异

(3)索引文档

索引文档由多个索引字段构成,用于保存要索引的字段;

索引字段由字段名和字段内容以及权重值组成。

lucene全文搜索之三:生成索引字段,创建索引文档(给索引字段加权)基于lucene5.5.2

(补充:文章或者其他内容用于构建索引字段,并赋予权重值,再将构建好的索引字段保存到索引文档,就可以用来搜索了,当然我们也可以将索引文档保存到索引目录,这样我们就可以使用搜索器来搜索这个索引目录中的索引文档)

2、索引搜索器构成

索引搜索器由索引目录创建,所以实际上可以把索引保存到不同的索引目录,在搜索时通过不同的索引目录进行分类搜索;
索引搜索器需要搜索器进行搜索结果(可以根据排序或者根据匹配值或权重值对搜索结果进行调整);
部分搜索器需要依赖分词器进行分词。

搜索器分为六种

(1)单词搜索

搜索单个关键字

(2)前缀搜索

按照对应的前缀进行搜索

(3)范围搜索

搜索指定一个范围

(4)语句模糊搜索

使用内置分词器或中文分词器对查询语句进行分词并根据分词结果模糊搜索

(5)条件模糊搜索

在语句模糊查询基础上加上OR或者AND进行条件搜索

补充:只支持OR、AND两种条件搜索

(6)组合搜索

可以组合上面几种搜索器进行混合搜索

下一章:lucene全文搜索之二:创建索引器(创建IKAnalyzer分词器和索引目录)基于lucene5.5.2

lucene全文搜索之一:lucene的主要功能和基本结构(基于lucene5.5.3)的更多相关文章

  1. lucene全文搜索之四:创建索引搜索器、6种文档搜索器实现以及搜索结果分析(结合IKAnalyzer分词器的搜索器)基于lucene5.5.3

    前言: 前面几章已经很详细的讲解了如何创建索引器对索引进行增删查(没有更新操作).如何管理索引目录以及如何使用分词器,上一章讲解了如何生成索引字段和创建索引文档,并把创建的索引文档保存到索引目录,到这 ...

  2. lucene全文搜索之三:生成索引字段,创建索引文档(给索引字段加权)基于lucene5.5.3

    前言:上一章中我们已经实现了索引器的创建,但是我们没有索引文档,本章将会讲解如何生成字段.创建索引文档,给字段加权以及保存文档到索引器目录 luncene5.5.3集合jar包下载地址:http:// ...

  3. lucene全文搜索之二:创建索引器(创建IKAnalyzer分词器和索引目录管理)基于lucene5.5.3

    前言: lucene全文搜索之一中讲解了lucene开发搜索服务的基本结构,本章将会讲解如何创建索引器.管理索引目录和中文分词器的使用. 包括标准分词器,IKAnalyzer分词器以及两种索引目录的创 ...

  4. OSCHina技术导向:Java全文搜索框架Lucene

    Lucene 是apache软件基金会一个开放源代码的全文检索引擎工具包,是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎.Lucene的目的是为软件开发人员提供一个简单易用 ...

  5. 全文搜索技术—Lucene

    1.   内容安排 实现一个文件的搜索功能,通过关键字搜索文件,凡是文件名或文件内容包括关键字的文件都需要找出来.还可以根据中文词语进程查询,并且支持多种条件查询. 本案例中的原始内容就是磁盘上的文件 ...

  6. Lucene全文搜索之分词器:使用IK Analyzer中文分词器(修改IK Analyzer源码使其支持lucene5.5.x)

    注意:基于lucene5.5.x版本 一.简单介绍下IK Analyzer IK Analyzer是linliangyi2007的作品,再此表示感谢,他的博客地址:http://linliangyi2 ...

  7. Lucene全文搜索 分组,精确查找,模糊查找

    http://zm603380946.iteye.com/blog/1827318 完全个人理解,如有更好的方法,欢迎一起讨论 LuceneUtils.java package com.zbiti.l ...

  8. Lucene 全文搜索解析

    一.创建查询对象的方式 对要搜索的信息创建 Query 查询对象,Lucene 会根据 Query 查询对象生成最终的查询语法.类似关系数据库 Sql 语法一样,Lucene 也有自己的查询语法,比如 ...

  9. MySQL全文搜索

    http://www.yiibai.com/mysql/full-text-search.html 在本节中,您将学习如何使用MySQL全文搜索功能. MySQL全文搜索提供了一种实现各种高级搜索技术 ...

随机推荐

  1. 火车站点城市查询(appserv 服务器练习)

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  2. Apache Spark1.1.0部署与开发环境搭建

    Spark是Apache公司推出的一种基于Hadoop Distributed File System(HDFS)的并行计算架构.与MapReduce不同,Spark并不局限于编写map和reduce ...

  3. phpcms后台管理

    phpcms从网上下载就好了,记住这个要安装在Wamp中的www文件下 从网页输入网址进入后台控制 输入密码账号,即进入后台控制界面: 后台管理有自带的网页模板把他换成自己的模板: 修改站点:   把 ...

  4. 04(1) 基于上下文相关的GMM-HMM声学模型1

    1.上下文对音素发音的语谱轨迹的影响 受到上下文的影响,同一个音素的发音语谱轨迹不同 为提高识别准确率,对音素建模时应将这种上下文影响考虑在内 2.基于上下文相关的音素建模 注意,非单音素建模中,每个 ...

  5. linux系统中.bashrc的妙用

    一.有何作用 .bashrc - The individual per-interactive-shell startup file. .bashrc - 主要保存个人的个性化设置,如命令别名.路径等 ...

  6. MySQL用户管理和权限设置

    用户管理 mysql>use mysql; 查看 mysql> select host,user,password from user ; 创建 mysql> create user ...

  7. 微信小程序(兼容性问题)

    兼容 小程序的功能不断的增加,但是旧版本的微信客户端并不支持新功能,所以在使用这些新能力的时候需要做兼容. 文档会在组件,API等页面描述中带上各个功能所支持的版本号. 可以通过 wx.getSyst ...

  8. NancyFx 2.0的开源框架的使用-Forms

    同样的像前面2篇博文一样,每个项目的开始基本都是建个空的Web项目 在NuGet库中安装以下几个NuGet包 Nancy Nancy.Authentication.Forms Nancy.Hostin ...

  9. struts的package的name与namespace

    <struts> <constant name="struts.devMode" value="true"></constant& ...

  10. Redis学习-String

    命令  描述  复杂的  返回值 SET key value [EX seconds] [PX milliseconds] [NX|XX] 将字符串值value关联到key.如果key已经持有其他值, ...