Lucene简介

最受欢迎的java开源全文搜索引擎开发工具包。提供了完整的查询引擎和索引引擎,部分文本分词引擎(英文与德文两种西方语言)。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便在目标系统中实现全文检索功能,或者是以此为基础建立起完整的全文检索引擎。 是Apache的子项目,网址:http://lucene.apache.org/

Lucene用途

为软件开发人员提供一个简单易用的工具包,以方便在目标系统中实现全文检索功能,或者是以此为基础建立起完整的全文检索引擎。

Lucene适用场景

在应用中为数据库中的数据提供全文检索实现。 开发独立的搜索引擎服务、系统

Lucene的特性

稳定、索引性能高

  1. 每小时能够索引150GB以上的数据。
  2. 对内存的要求小——只需要1MB的堆内存
  3. 增量索引和批量索引一样快。
  4. 索引的大小约为索引文本大小的20%~30%。

高效、准确、高性能的搜索算法

  1. 良好的搜索排序。
  2. 强大的查询方式支持:短语查询、通配符查询、临近查询、范围查询等。
  3. 支持字段搜索(如标题、作者、内容)。
  4. 可根据任意字段排序 支持多个索引查询结果合并
  5. 支持更新操作和查询操作同时进行
  6. 支持高亮、join、分组结果功能 速度快
  7. 可扩展排序模块,内置包含向量空间模型、BM25模型可选
  8. 可配置存储引擎

跨平台

  1. 纯java编写。
  2. 作为Apache开源许可下的开源项目,你可在商业或开源项目中使用。
  3. Lucene有多种语言实现版可选(如C、C++、Python等),不光是JAVA。

Lucene集成

将lucene core的jar引入到你的应用中

  • 方式一:官网下载 zip,解压后拷贝jar到你的工程
  • 方式二:maven 引入依赖
    <!-- lucene 核心模块  -->
    <dependency>
    <groupId>org.apache.lucene</groupId>
    <artifactId>lucene-core</artifactId>
    <version>7.3.</version>
    </dependency>

Lucene 模块说明

core: Lucene core library 核心模块:分词、索引、查询

analyzers-*: 分词器

facet: Faceted indexing and search capabilities 提供分类索引、搜索能力

grouping: Collectors for grouping search results. 搜索结果分组支持

highlighter: Highlights search keywords in results 关键字高亮支持

join: Index-time and Query-time joins for normalized content 连接支持

queries: Filters and Queries that add to core Lucene 补充的查询、过滤方式实现

queryparser: Query parsers and parsing framework 查询表达式解析模块

spatial: Geospatial search 地理位置搜索支持

suggest: Auto-suggest and Spellchecking support 拼写检查、联想提示

了解核心模块的构成

学习笔记(二)--Lucene简介的更多相关文章

  1. amazeui学习笔记二(进阶开发2)--Web组件简介Web Component

    amazeui学习笔记二(进阶开发2)--Web组件简介Web Component 一.总结 1.amaze ui:amaze ui是一个web 组件, 由模板(hbs).样式(LESS).交互(JS ...

  2. [Firefly引擎][学习笔记二][已完结]卡牌游戏开发模型的设计

    源地址:http://bbs.9miao.com/thread-44603-1-1.html 在此补充一下Socket的验证机制:socket登陆验证.会采用session会话超时的机制做心跳接口验证 ...

  3. ES6学习笔记<二>arrow functions 箭头函数、template string、destructuring

    接着上一篇的说. arrow functions 箭头函数 => 更便捷的函数声明 document.getElementById("click_1").onclick = ...

  4. MongoDB学习笔记二- Mongoose

    MongoDB学习笔记二 Mongoose Mongoose 简介 之前我们都是通过shell来完成对数据库的各种操作, 在开发中大部分时候我们都需要通过程序来完成对数据库的操作 而Mongoose就 ...

  5. WPF的Binding学习笔记(二)

    原文: http://www.cnblogs.com/pasoraku/archive/2012/10/25/2738428.htmlWPF的Binding学习笔记(二) 上次学了点点Binding的 ...

  6. AJax 学习笔记二(onreadystatechange的作用)

    AJax 学习笔记二(onreadystatechange的作用) 当发送一个请求后,客户端无法确定什么时候会完成这个请求,所以需要用事件机制来捕获请求的状态XMLHttpRequest对象提供了on ...

  7. JMX学习笔记(二)-Notification

    Notification通知,也可理解为消息,有通知,必然有发送通知的广播,JMX这里采用了一种订阅的方式,类似于观察者模式,注册一个观察者到广播里,当有通知时,广播通过调用观察者,逐一通知. 这里写 ...

  8. C#.NET学习笔记1---C#.NET简介

    C#.NET学习笔记1---C#.NET简介 技术qq交流群:JavaDream:251572072  教程下载,在线交流:创梦IT社区:www.credream.com -------------- ...

  9. java之jvm学习笔记二(类装载器的体系结构)

    java的class只在需要的时候才内转载入内存,并由java虚拟机的执行引擎来执行,而执行引擎从总的来说主要的执行方式分为四种, 第一种,一次性解释代码,也就是当字节码转载到内存后,每次需要都会重新 ...

  10. Java IO学习笔记二

    Java IO学习笔记二 流的概念 在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成. 程序中的输入输 ...

随机推荐

  1. Machine Learning--week2 多元线性回归、梯度下降改进、特征缩放、均值归一化、多项式回归、正规方程与设计矩阵

    对于multiple features 的问题(设有n个feature),hypothesis 应该改写成 \[ \mathit{h} _{\theta}(x) = \theta_{0} + \the ...

  2. python学习-----协程

    一.协程的引入 对于单线程下,我们不可避免程序中出现io操作,但如果我们能在自己的程序中(即用户程序级别,而非操作系统级别)控制单线程下的多个任务能在一个任务遇到io阻塞时就切换到另外一个任务去计算, ...

  3. 洛谷 P1273 【有线电视网】

    题目描述 某收费有线电视网计划转播一场重要的足球比赛.他们的转播网和用户终端构成一棵树状结构,这棵树的根结点位于足球比赛的现场,树叶为各个用户终端,其他中转站为该树的内部节点. 从转播站到转播站以及从 ...

  4. Mac配置Scala和Spark最详细过程

    Mac配置Scala和Spark最详细过程 原文链接: http://www.cnblogs.com/blog5277/p/8567337.html 原文作者: 博客园--曲高终和寡 一,准备工作 1 ...

  5. 深入NAS协议系列: 召唤SMB2 OpLock/Lease

    这是从事存储行业十年以来我写的第一篇博客,希望借此开始把自己这些年所积累的一些干货借这个平台做分享. 虽然NAS协议众多,但核心的就那个几个:NFS,SMB/CIFS, FTP/SFTP, 其中SMB ...

  6. 51Nod - 1384 正常解法

    这个是正常解法 #include<stdio.h> #include<string.h> #include<math.h> #include<time.h&g ...

  7. Python自学:第三章 访问列表元素

    #输出并首字母大写 bicycles = ['trek','cannondale','redline','specialized'] print(bicycles[0].title()) 输出为: T ...

  8. 安卓下设置系统字体大小影响H5页面布局

    问题描述: 调整好的h5页面,放在安卓app内嵌页面后布局正常,后来用户调整系统里面字体大小,后内嵌H5布局乱掉 问题分析: 因为用户调整了系统字体的大小,修改了根节点和body节点的font-siz ...

  9. java去除表达符号的正则表达式

    java 去标点符号正则表达式 博客分类: 小功能 正则表达式标点符号  public static void main(String[] args) {String s = "哈哈!@#W ...

  10. .net获取程序根目录

    获取程序的根目录: var path = HttpRuntime.AppDomainAppPath;