文档章节

lucene、简介

captainliu
 captainliu
发布于 2016/10/05 09:52
字数 885
阅读 29
收藏 1

1.什么是lucene
Lucene是一个全文搜索框架,而不是应用产品。因此它并不像http://www.baidu.com/ 或者google Desktop那么拿来就能用,它只是提供了一种工具让你能实现这些产品。

2. lucene能做什么
•要回答这个问题,先要了解lucene的本质。实际上lucene的功能很单一,说到底,就是你给它若干个字符串,然后它为你提供一个全文搜索服务,告诉你你要搜索的关键词出现在哪里。知道了这个本质,你就可以发挥想象做任何符合这个条件的事情了。你可以把站内新闻都索引了,做个资料库;你可以把一个数据库表的若干个字段索引起来,那就不用再担心因为“%like%”而锁表了;你也可以写个自己的搜索引擎……

3. 你该不该选择lucene
•下面给出一些测试数据,如果你觉得可以接受,那么可以选择。
–测试一:250万记录,300M左右文本,生成索引380M左右,800线程下平均处理时间300ms。
–测试二:37000记录,索引数据库中的两个varchar字段,索引文件2.6M,800线程下平均处理时间1.5ms。

4. lucene为什么这么快
–倒排索引
–压缩算法
–二元搜索

5. 倒排索引
–根据属性的值来查找记录。这种索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而称为倒排索引(invertedindex)
–单词——文档矩阵

•lucene的工作方式lucene提供的服务实际包含两部分:一入一出。所谓入是写入,即将你提供的源(本质是字符串)写入索引或者将其从索引中删除;所谓出是读出,即向用户提供全文搜索服务,让用户可以通过关键词定位源

•写入流程源字符串首先经过analyzer处理,包括:分词,分成一个个单词;去除stopword(可选)。将源中需要的信息加入Document的各个Field中,并把需要索引的Field索引起来,把需要存储的Field存储起来。将索引写入存储器,存储器可以是内存或磁盘。
•读出流程用户提供搜索关键词,经过analyzer处理。对处理后的关键词搜索索引找出对应的Document。用户根据需要从找到的Document中提取需要的Field。

•document 用户提供的源是一条条记录,它们可以是文本文件、字符串或者数据库表的一条记录等等。一条记录经过索引之后,就是以一个Document的形式存储在索引文件中的。用户进行搜索,也是以Document列表的形式返回。
•field 一个Document可以包含多个信息域,例如一篇文章可以包含“标题”、“正文”、“最后修改时间”等信息域,这些信息域就是通过Field在Document中存储的。Field有两个属性可选:存储和索引。通过存储属性你可以控制是否对这个Field进行存储;通过索引属性你可以控制是否对该Field进行索引。这看起来似乎有些废话,事实上对这两个属性的正确组合很重要

 

 

 

 

 

 

© 著作权归作者所有

共有 人打赏支持
下一篇: redis、持久化
captainliu
粉丝 11
博文 106
码字总数 83678
作品 0
昌平
程序员
私信 提问
张江互联网技术交流会--搜索专场(第一期)

part1:嘉宾简介: 洪震 淘宝搜索技术专家 对Lucene、Solr、zookeeper、Hadoop等开源技术有研究,目前关注于高可用、高性能、易扩展的分布式搜索技术领域。 议题简介: 终搜-TSearcher产品是淘...

网聚宝熊晓东
2014/01/07
841
4
Apache Lucene 6.2.1 中文文档-首页

原文链接:CDCN-码上中国 Lucene 是一个基于Java的全文搜索引擎。Lucene不是要给完整的应用程序,而是 一个可以轻松地向应用程序添加搜索功能的代码库API接口。 这是Apache Lucene 6.2.1的官...

码上中国博客
2016/11/05
164
0
整合Lucene 4.10.1 与IK Analyzer

注意,IK Analyzer需要使用其下载列表中的IK Analyzer 2012FF_hf1.zip,否则在和Lucene 4.10配合使用时会报错。 我使用 intellij IDEA 12进行的测试。 建立java项目 建立项目HelloLucene,导...

樂天
2014/10/02
0
2
lucene学习笔记一(初始lucene)

lucene简介: 摘自百科:Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了...

吕兵阳
2015/10/03
730
4
第一章 Lucene简介

1.1Lucene的使用 在全文索引工具中,都是由这样的三部分组成 1、索引部分(I am a boy) 2、分词部分 3、搜索部分 1.2 Lucene系统架构 索引过程的核心类: IndexWriter Directory Analyzer Docu...

科技小能手
2017/11/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

监听DOM上某一个元素是否发生变化,利用MutationObserver来监听元素变化

/** * 观察DOM是否发变化的事件 * @type {MutationObserver|*} */var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserv......

lwkai
20分钟前
1
0
遇到的问题

问题1:前两天在Nodepad++写了一个登录页面,但在Chrome中调试一直写不进Cookie。 解决办法:Chrome浏览器不支持本地静态js写Cookie。换用Edge调试即可。 内心:卧槽,浪费我这么多时间。 问...

akane_oimo
22分钟前
2
0
Oracle学习日志-6(聚合查询)

聚合函数 聚合函数可以对数据进行某种操作或者计算。比如几个常用的函数: COUNT:计算表中行数。 SUM:计算表中数据列中数据的合计值。 AVG:计算表中数据列中数据的平均值。 MAX:求出表中...

白话
24分钟前
1
0
Axure原型工具Axure RP9安装及Licensee

http://www.zhanshaoyi.com/9132.html

晚风0623
29分钟前
1
0
如何限制用户仅通过HTTPS方式访问OSS?

一、当前存在的问题 当前OSS支持用户使用HTTPS/HTTP协议访问Bucket。但由于HTTP存在安全漏洞。大型企业客户都要求使用HTTPS方式访问OSS,并且拒绝HTTP访问请求。 目前OSS可以通过RAM policy方...

阿里云官方博客
50分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部