前言: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. vs2017添加引用时报错未能正确加载“ReferenceManagerPackage”包。

    最近新装了2017,开始前几天还好, 可是最近在添加引用时,报错 ---------------------------Microsoft Visual Studio----------------- ...

  2. file_get_contents url

    file_get_contents (PHP 4 >= 4.3.0, PHP 5) file_get_contents — 将整个文件读入一个字符串 说明¶ string file_get_co ...

  3. apache配置多个虚拟目录站点

    错误的做法 网上查了几个资料,做法如下:比如想配置两个www.web1.com  www.web2.com站点 打开httpd.conf ,然后添加: <VirtualHost *:80> ...

  4. 给上传文件的input控件"美容"

    作为一名前端程序猿呢,在工作中经常会遇到form表单这种东西.然而表单的其他input控件样式还是很好改变的.但是,唯独input类型是file的文件上传控件可能就没那么好打扮的漂亮.刚好菜鸟我最近工 ...

  5. Installing MySQL on Microsoft Windows Using a noinstall Zip Archive

    这两天在自己的windows上安装了一下mySql数据库,安装使用的是5.7.18版本的 noinstall Zip Archive安装包mysql-5.7.18-win32.zip.由于5.7版本相 ...

  6. ssm框架整合+maven项目创建

    在引入外部maven插件后就可以创建一个maven项目了,这篇文章主要介绍ssm框架的整合和如何创建一个maven项目 1.在开发工具的项目空白区单击右键,依次选择New.Other,会出现如下界面, ...

  7. Arduino UNO +ESP8266采集数据上传到贝壳网

    集成电路设计大赛赛程将至,我现在还是毫无头绪,然后又报了一个互联网+,比赛报了,东西就必须出来,时间很紧的情况下,所以选择了开源的arduino的进行完成.从开始接触Arduino到完成工程,前前后后 ...

  8. 使用cl编译C/C++

    每次写程序都是用VS下打开的,而且有智能提示,经常很容易看到自己哪里写错了,其实想联系自己写代码的能力,不应该要这些的,纯粹的不要智能提示 所以自己想用轻量级的编辑器写,然后就用了notepad++( ...

  9. SpringData系列四 @Query注解及@Modifying注解

    @Query注解查询适用于所查询的数据无法通过关键字查询得到结果的查询.这种查询可以摆脱像关键字查询那样的约束,将查询直接在相应的接口方法中声明,结构更为清晰,这是Spring Data的特有实现. ...

  10. Git版本控制,rsync同步文件,完成线上部署

    之前项目开发完成,测试阶段,借着此时,由于公司暂时用两台aliyun  ecs  做业务层,所以每次都需要同步线上文件,进而想着搞一搞服务器端(小公司,新项目,先小搞一把),搭建一套小的版本控制上线的 ...