在上学的时候就对搜索有着极大地兴趣,图书馆也借了好多的书看过,也用过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 个人领悟 (一)的更多相关文章

  1. Lucene 个人领悟 (三)

    其实接下来就是贴一下代码,熟悉一下Lucene的正常工作流程,或者说怎么使用这个API,更深层次的东西这篇文章不会讲到. 上一篇文章也说了maven的配置,只要你电脑联网就可以下载下来.我贴一下代码. ...

  2. Lucene 个人领悟 (二)

    想了想,还是继续写吧,因为,太无聊了,媳妇儿也还有半个小时才下班. 前面拖拖拉拉用了三篇文章来做铺垫,这一篇开始正经搞了啊. 首先,我要加几个链接 http://www.cnblogs.com/xin ...

  3. Lucene 实例教程(四)之检索方法总结

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本人声明.否则将追究法律责任. 作者: 永恒の_☆ 地址: http://blog.csdn.net/chenghui031 ...

  4. lucene 基础知识点

    部分知识点的梳理,参考<lucene实战>及网络资料 1.基本概念 lucence 可以认为分为两大组件: 1)索引组件 a.内容获取:即将原始的内容材料,可以是数据库.网站(爬虫).文本 ...

  5. 用lucene替代mysql读库的尝试

    采用lucene对mysql中的表建索引,并替代全文检索操作. 备注:代码临时梳理很粗糙,后续修改. import java.io.File; import java.io.IOException; ...

  6. Lucene的评分(score)机制研究

    首先,需要学习Lucene的评分计算公式—— 分值计算方式为查询语句q中每个项t与文档d的匹配分值之和,当然还有权重的因素.其中每一项的意思如下表所示: 表3.5 评分公式中的因子 评分因子 描 述 ...

  7. 《高性能javascript》 领悟随笔之-------DOM编程篇(二)

    <高性能javascript> 领悟随笔之-------DOM编程篇二 序:在javaSctipt中,ECMASCRIPT规定了它的语法,BOM实现了页面与浏览器的交互,而DOM则承载着整 ...

  8. 《高性能javascript》 领悟随笔之-------DOM编程篇

    <高性能javascript> 领悟随笔之-------DOM编程篇一 序:在javaSctipt中,ECMASCRIPT规定了它的语法,BOM实现了页面与浏览器的交互,而DOM则承载着整 ...

  9. Lucene的分析资料【转】

    Lucene 源码剖析 1 目录 2 Lucene是什么 2.1.1 强大特性 2.1.2 API组成- 2.1.3 Hello World! 2.1.4 Lucene roadmap 3 索引文件结 ...

随机推荐

  1. (4.25)格式化T-SQL工具

    写代码的一个重要方面是格式化.没有人喜欢格式错误的代码.对于继承它的人,甚至是作者,他/她在一周左右后检查它是很难理解/维护的 我确实理解开发人员在严格的交付准则下工作,没有人会想要延迟交付,而不是格 ...

  2. SQL SERVER BCP的用法

    转自:https://www.cnblogs.com/fishparadise/p/4809014.html 前言 SQL SERVER提供多种不同的数据导出导入的工具,也可以编写SQL脚本,使用存储 ...

  3. 微软实战训练营(X)重点班第(1)课:SOA必备知识之ASP.NET Web Service开发实战

    微软实战训练营 上海交大(A)实验班.(X)重点班 内部课程资料 链接:http://pan.baidu.com/s/1jGsTjq2 password:0wmf <微软实战训练营(X)重点班第 ...

  4. (转)github设置添加SSH

    很多朋友在用github管理项目的时候,都是直接使用https url克隆到本地,当然也有有些人使用 SSH url 克隆到本地.然而,为什么绝大多数人会使用https url克隆呢? 这是因为,使用 ...

  5. [vue]webpack中使用组件

    https://blog.csdn.net/ywl570717586/article/details/79984909 vue.js中全局组件 全局组件的定义 <!DOCTYPE html> ...

  6. IOT-web替换某一个前台版本

    比如 替换endpoint 1,首先改写 package.json文件,记得去掉^,改写成某一个版本 2.删除相应的内容 3.执行 npm install 4.最后 build

  7. PBFT(拜占庭容错)简述

    共识算法 区块链中最重要的便是共识算法,比特币使用的是POW(Proof of Work,工作量证明),以太币使用的是POS(Proof of Stake,股权证明)使得算力变的不怎么重要了,而今PO ...

  8. python requests http请求

    导入模块 import requests import json header = {'Content-Type': 'application/json'} data = {"} data ...

  9. MRJob 极速入门教程,使用Python玩转Hadoop

    想要Hadoop乖巧地运行Python程序,学习mrjob可能是最直接.最简单的方法了,你甚至都不要按安装部署Hadoop集群.mrjob拥有很多优秀的特性比如: 支持多步骤的MapReduce任务工 ...

  10. linux系统中CST与EDT时间转换

    初始时间:2012年 09月 14日 星期五 18:15:33 EDT [root@test ~]# mv /etc/localtime /etc/localtime.bak [root@test ~ ...