`

开源搜索框架笔记

 
阅读更多

首推的当然时lucene了,先介绍这个吧

lucene : 是一个文件搜索工具包,包括了完整的查询引擎和索引引擎及部分的分析引擎。为apache下的开源子项目。

特点:

1.索引文件独立于操作系统,自己定义了一套8字节为基础的索引文件格式

2.在传统倒排索引的基础上,实现了分块索引,对于新增的文件建立小索引,并能提供索引合并以提升效率。

3.强大的查询引擎。

4.设计了独立于语言和文件格式的文件分析接口,通过接收 token流解析文件,方便扩展。

 

倒排序算法:

传统的记录方式是 文件 --- > 关键词 的索引方式。

倒排序   关键词 --- > 文件  的索引方式

 

lucene 还增加了两个位置:

字符位置:在文章中出现的位置

关键词位置:是文章中的第几个关键词 

针对这两种情况出现了:出现频率和出现位置。详细如下

关键词 文章号 出现频率 出现位置 。lucene的索引文件就是如下所示。

haha   1[2],2[1]      2,6,8    

 

haha 这个关键词在文件1中出现两次,在文章2中出现1次。在文章1中出现的位置是2,6 。在文章2中出现的位置8。 

 

以上就分出了三个文件 : 辞典文件(存放关键词,同时保存了指向频率文件和位置文件的指针,取得具体出现的频率和位置) 频率文件 位置文件 

具体采用的算法是:二元搜索算法。

 

field : 这个概念来描述存放位置,例如标题中还是URL,还是内容中。该信息也记录在辞典文件中,一个关键词必定属于一个或是多个field.

 

 

solr:这个是基于lucene开发的一个企业级搜索应用服务器。提供web-service,restful-api ,普通http-get请求的。简化了lucene的API,是一个完整的搜索引擎框架。

 

nutch:一个开源的基于lucene 开发的搜索引擎,包含了所有的搜索引擎的功能。

安装分为三个层次:基于本地文件系统,基于局域网,基于internet,用户根据自己需求来选择不同的层次。

 

架构上分为两个部分:数据的抓取和索引的创建。有一套非常良好的数据抓取工具包。

nutch和lucene选择区别,可以简单的话,nutch除了封装了lucene的索引部分外,还提供了一套数据抓取的工作,所以若是你的数据源来源于你自己,那么完全采用lucene即可,若是你的数据源依赖于外部网络。那么采用nutch是一个很好的选择。

 

compass:也是一个java开源框架。包含了所有搜索引擎的基本功能,但是提供了很多特性,例如强大的O/R mapping。搜索部分也是基于lucene

可以容易同hibernate集成,并将数据进行索引。

 

同时支持一些分布式框架的集成,例如:terracotta 

 

总结:

lucene:基本的搜索和索引工具。

compass:简化API,轻松的将java对象映射到搜索引擎中。

SOLR:简化API,暴露一个http服务来进行搜索和索引。

nutch:简化API,同时提供丰富的数据抓取工具。

 

 

分享到:
评论

相关推荐

    开源网络云笔记系统 Paperwork.zip

    Paperwork 是一个开源网络云笔记系统,是 Evernote、Microsoft OneNote 和 Google Keep 的开源替代品。Paperwork 采用 PHP 开发,使用 Laravel 4 框架,提供一个很流行的 Web UI,基于 AngularJS 和 Bootstrap 3 ...

    python面试数据库框架笔记总结

    python面试数据库框架笔记总结

    gtest开源框架使用笔记

    记录gtest常见用法,协助日常开发工作能够更高效地进行单元测试。无水印,资料内部有具体的资料参考,可以根据资料来源查看本文档中的用法是从哪里学习到的,大概了解学习过程。

    RiceQuant开源框架RQAlpha阅读笔记.docx

    开源量化交易框架 rqalpha 源码阅读笔记,图文,详实,供大家参考

    基于lucene和nutch的开源搜索引擎资料集合

    [硕士论文]_基于MapReduce的分布式智能搜索引擎框架研究.pdf [硕士论文]_基于Nutch的垂直搜索引擎的分析与实现.pdf 一个例子学懂搜索引擎(lucene).doc 中文搜索引擎技术揭密.doc 九大开源搜索引擎介绍.txt 基于Nutch...

    Springs框架笔记.zip

    Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的...

    RTSP Live555开源框架源码阅读笔记

    上一篇文章简要介绍了怎样以共享库的方式交叉编译Live555,今天再来介绍live源代码框架。 先对live555有一个宏观的认识,为今后的实战打个基础。 liveMedia项目的源代码包含四个主要的库,各种測试代码以及IVE555 ...

    25个微软经典开源项目框架源码(二)BlogEngine.NET

    包括发布版本、源代码、说明文档,初学者好的指导,高级程序员标准规范的标尺。

    PhalApi开源接口框架 v2.22.2.zip

    PhalApi开源接口框架 v2.22.2.zip

    元天天三大框架笔记

    这是关于服务器端三大知名开源框架框架Hibernate Struts2 Spring , 适合人群:对三大框架可以基本应用和项目基础

    四个SSH框架实战项目源码加笔记

    四个SSH框架实战项目源码加笔记,四个SSH框架实战项目源码加笔记,四个SSH框架实战项目源码加笔记,

    清华开源深度学习框架计图,开源超级玩家再进阶.md

    清华大学计算机系图形实验室宣布开源一个全新的深度学习框架: Jittor,中文名计图 。 Jittor 是一个采用元算子表达神经网络计算单元、完全基于动态编译(Just-in-Time)的深度学习框架。创新的元算子和统一计算图...

    25个微软经典开源项目框架源码(一)

    Source Code for Project NMvp Framework ... To open the source included in the sources.zip file, please extract it to a folder in your hard disk and then open the file <<your folder>>\NMvp.sln for the ...

    基于Python的vn.py开源量化交易框架源码

    vn.py是一个基于Python的开源量化交易框架,旨在为开发者提供一套完整的系统以构建专业的量化交易解决方案。该项目包含133个文件,主要采用Python语言编写,并辅以HTML、Shell和CSS等多种语言,以丰富其功能与界面...

    Bootstrap前端框架笔记 +css+html

    Bootstrap 是最受欢迎的 HTML、CSS 和 JS 框架,用于开发响应式布局、移动设备优先的 WEB 项目。Bootstrap 让前端开发更快速、简单。...Bootstrap 是完全开源的。代码的托管、开发和维护都在 GitHub 平台上完成。

    SOFABoot开源框架 v4.0.1.zip

    SOFABoot开源框架 v4.0.1.zip

    SpringBoot+狂神说笔记(很全很细) 最新PDF版

    狂神说spring笔记 SpringBoot笔记是一套狂神说SpringBoot系列...Spring是一个开源框架,2003 年兴起的一个轻量级的Java 开发框架,作者:Rod Johnson 。 Spring是为了解决企业级应用开发的复杂性而创建的,简化开发。

    java云笔记

    ajax,html,spring,mybaits,框架实现笔记的增删修改操作分享等

    NoteFly:轻量级但预先记笔记的应用程序-开源

    用C#编写的轻量级但预先记笔记的应用程序。

    librextjs:开源JavaScript框架

    Librextjs是开源javascript框架。 这是使用node.js , compass和jsduck构建的Extjs 4.2.1的jsduck 。 建造 要求 用于构建librextjs的软件列表, ruby版本2.1.2 compass版本0.12.6 grunt-cli版本0.1.13 grunt...

Global site tag (gtag.js) - Google Analytics