Lucene 个人领悟 (一)
在上学的时候就对搜索有着极大地兴趣,图书馆也借了好多的书看过,也用过Python写过爬虫。
有好多人在初步学习Lucene的时候都以为他是一个搜索引擎,或者搜索工具。
在此我要特别强调一下,Lucene绝对不是一个搜索引擎或者是搜索工具,他就是一个jar包(一系列),一个工具,一个API,而且他是一个检索工具,也不是搜索工具。
所谓搜索引擎,比如:百度,搜狗,猎兔,恕我愚昧只知道国内的。这才是搜索引擎,搜索引擎,大概(非常宏观的哦)分为两部分:
1、爬虫。也是非常重要的一部分,需要对互联网上的信息非常全面的下载到本地服务器,比如百度服务器,那数据量真的就海了去了,用爬虫爬遍互联网的每一个角落,每一个页面,将内容下载到服务器本地。
2、检索。这才是我们Lucene需要干的活,下载到本地之后,我们就需要类似Lucene将海量的数据进行扫描、分词,根据一定的分词规则,建立索引,然后,有需要搜索的时候再去本地索引检索。
当然啊,百度那肯定是一个非常复杂的系统,比如爬虫什么时候爬?怎么爬?怎么做到实时更新?爬到的信息权重怎么算?索引按照什么区分词?等等等等。都是非常复杂的,我肯定不知道,这里只是作为一个引子,引出我们需要讨论的Lucene。
还有一个问题就是,Lucene.nutch.solr.这三个东西经常一起出现,而且特别容易搞混,刚开始的时候我就比较混。
所以,我也想写一下,全篇都是个人理解啊,有问题请您一定指出来(虽然也不一定有人看,手动尴尬。。。自娱自乐。。。)
Lucene,正如前文所说,是一个工具!工具!工具!重要的事情说三遍,他就是一个API,没有什么复杂的应用。但是nutch,solr都是从Lucene开发出来的,或者说进一步封装了一些应用在里面。
solr 在Lucene的基础上封装了一些功能,或者你就可以理解成为,有人基于Lucene这个jar包开发出来了一个可用的web工程,有页面,有接口,有一些高亮了其他功能。(暴龙兽进化)
nutch 这个就叼了,这是完全的一个搜索引擎,你可以叫做“小百度”,搜索引擎的很多功能基本都有了,爬虫,我们刚说的,对不对,索引,分词,查询对不对,都有了。搞懂了之后你就可以自己搭一个搜索引擎了,叼不。呵呵。(暴龙兽超进化)
究极进化,我也不知道在哪。
这几天太闲了,继续研究,具体怎么玩儿,明天再写吧,一会儿三篇好嘞呀,浪一会儿可以回家了。
Lucene 个人领悟 (一)的更多相关文章
- Lucene 个人领悟 (三)
其实接下来就是贴一下代码,熟悉一下Lucene的正常工作流程,或者说怎么使用这个API,更深层次的东西这篇文章不会讲到. 上一篇文章也说了maven的配置,只要你电脑联网就可以下载下来.我贴一下代码. ...
- Lucene 个人领悟 (二)
想了想,还是继续写吧,因为,太无聊了,媳妇儿也还有半个小时才下班. 前面拖拖拉拉用了三篇文章来做铺垫,这一篇开始正经搞了啊. 首先,我要加几个链接 http://www.cnblogs.com/xin ...
- Lucene 实例教程(四)之检索方法总结
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本人声明.否则将追究法律责任. 作者: 永恒の_☆ 地址: http://blog.csdn.net/chenghui031 ...
- lucene 基础知识点
部分知识点的梳理,参考<lucene实战>及网络资料 1.基本概念 lucence 可以认为分为两大组件: 1)索引组件 a.内容获取:即将原始的内容材料,可以是数据库.网站(爬虫).文本 ...
- 用lucene替代mysql读库的尝试
采用lucene对mysql中的表建索引,并替代全文检索操作. 备注:代码临时梳理很粗糙,后续修改. import java.io.File; import java.io.IOException; ...
- Lucene的评分(score)机制研究
首先,需要学习Lucene的评分计算公式—— 分值计算方式为查询语句q中每个项t与文档d的匹配分值之和,当然还有权重的因素.其中每一项的意思如下表所示: 表3.5 评分公式中的因子 评分因子 描 述 ...
- 《高性能javascript》 领悟随笔之-------DOM编程篇(二)
<高性能javascript> 领悟随笔之-------DOM编程篇二 序:在javaSctipt中,ECMASCRIPT规定了它的语法,BOM实现了页面与浏览器的交互,而DOM则承载着整 ...
- 《高性能javascript》 领悟随笔之-------DOM编程篇
<高性能javascript> 领悟随笔之-------DOM编程篇一 序:在javaSctipt中,ECMASCRIPT规定了它的语法,BOM实现了页面与浏览器的交互,而DOM则承载着整 ...
- Lucene的分析资料【转】
Lucene 源码剖析 1 目录 2 Lucene是什么 2.1.1 强大特性 2.1.2 API组成- 2.1.3 Hello World! 2.1.4 Lucene roadmap 3 索引文件结 ...
随机推荐
- windows(64位)下使用curl安装
windows(64位)下使用curl安装 转自:https://blog.csdn.net/wkj001/article/details/54889907 2017年02月06日 09:46:47 ...
- (1.5)MySQL表的5种分区类型
(1.5)MySQL表的5种分区类型 关键词:mysql表分区 小细节: (1)Null 将会放入最小范围区间 (2)无论哪种类型的分区,要么没有主键.唯一键,要么分区表的主键/唯一键都必须包含 ...
- 20190316 安装pip的一些问题
前提条件: 1. windows环境中安装python3.7 2.注意配置环境变量 确认python.和pip都能直接在cmd 控制台使用, 一个是python命令的地址指向,一个是pip命令的地址指 ...
- shell文件查找和压缩命令
locate命令 1.locate filename 模糊匹配 只要文件名中包含关键字即可 非实时查找,速度比find快. 依靠索引数据库 /var/lib/mlocate/m ...
- python中的0,None,False,空容器
在Python中,None.空列表[].空字典{}.空元组().0等一系列代表空和无的对象会被转换成False.除此之外的其它对象都会被转化成True. 1.0等于False,这点要注意. 2.空的l ...
- 指向list的指针
#include<list> #include<string> #include<iostream> using namespace std; int main() ...
- golang 的 math/big 进行
进行高进度运算的时候unint64已经无法满足需求,这个时候大家可以采用math.big库来进行高进度计算,下面以计算第10000位的菲波纳切数来展示big的用法,代码如下: package main ...
- JsonResponse返回中文乱码问题
class Publish(APIView): def get(self, request): publish_list = models.Publish.objects.all() bs = MyS ...
- Angular知识点
Angular CLI 快速创建Angular 2项目和组件, 压缩打包发布. 7.创建包含html.ts.css文件的命令cd到需要创建文件的目录下面,输入如下命令 ng g c myFile 会自 ...
- 网络编程——socket编程
一.客户端/服务端架构 1.硬件C/S架构(打印机) 2.软件C/S架构 互联网企业处处是C/S架构 C/S架构与socket的关系:学习socket就是为了完成C/S架构的开发 二.OSI七层 一个 ...