lucene、solr、nutch三者的关系】的更多相关文章

lucene是一个做搜索用的类库. nutch和solr都是基于lucene的,二者都是可直接运行的应用程序: 直接在业务上使用lucene的倒是不太多见. solr主要提供了建立索引(用户可以直接post数据给solr,然后由solr进行索引)和提供查询索引的功能(它内嵌了jetty,可以直接提供HTTP服务): nutch一般用作爬虫使用,负责抓取数据. solr的重大变化:从5.0开始,solr不再以war包发布(war包可以部署到任何servlet容器中),而是以独立的java服务器程序…
文章地址 1.简介 本次实现分为两个部分,第一个部分是利用Lucene构建一个全文的搜索引擎,另外一部分则是利用Nutch实现同样的功能.由于Lucene并不是一个可以直接运行的程序,且不具备爬虫和文档处理的功能,因此在这一部分利用到了Heritrix和HTMLParser这两个工具分别实现爬虫与HTML文档解析的功能.而使用Nutch的时候只需要一些简单的配置和安装就可以直接运行.最后还对这两者进行了一个简单的对比,说明其各自的特点和适应的范围. 2.Lucene 2.1 爬虫的设计 由于Lu…
最近,因为未来工作的需要,我尝试安装部署了分布式爬虫系统Nutch,并配置了伪分布式的Hadoop来存储爬取的网页结果,用solr来对爬下来的网页进行搜索.我主要通过参考网上的相关资料进行安装部署的.但网上的资料很多比较乱,我也走了一些弯路.下面将我的安装过程记录下来,供大家参考.不足之处,请大家批评指正.环境:操作系统是Ubuntu10.04,jdk是openjdk-7-jdk. 一.安装nutch1.6    我曾直接下载部署nutch1.6的二进制文件,虽然可以成功爬取网页,但用solr来…
2.1.开发环境准备 2.1.1.数据库jar包 我们这里可以尝试着从数据库中采集数据,因此需要连接数据库,我们一直用MySQL,所以这里需要MySQL的jar包 2.1.2.MyBatis的jar包(可选) 从数据库采集数据就需要查询数据库,我们可以用jdbc原生的写DAO,还可以使用我们之前学习过的MyBatis动态代理DAO,因此可能需要MyBatis的jar包 2.1.3.数据库环境 数据库脚本:[资料\数据库\book.sql],创建一个lucene数据库(utf-8),然后导入这个脚…
官网上一般只提供最新版本的下载,下面两个链接为所有历史版本的下载地址: lucene地址:archive.apache.org/dist/lucene/java/ solr地址:archive.apache.org/dist/lucene/solr/ 在Solr1.4.x的时候,Solr和Lucene是独立发布的,Solr一般会在Lucene发布新版本后跟进发布一个新的版本. 到了3.1的时候,两者代码做了合并,版本号统一了,并同时发布.…
一.为何开博客写<Lucene/Solr搜索引擎开发笔记> 本人毕业于2011年,2011-2014的三年时间里,在深圳前50强企业工作,从事工业控制领域的机器视觉方向,主要使用语言为C/C++:现就职于一家大型国企所属电子商务公司,主要使用语言为Java,负责公司新一代搜索引擎的开发工作,故开此系列来总结自己在Lucene/Solr上的学习历程,同时,也希望能给予对搜索引擎开发有兴趣的朋友一些帮助和启发. 二.Lucene和Solr简要介绍 Lucene是apache软件基金会4 jakar…
一.安装环境 图1-1 Tomcat和Solr的版本 我本机目前使用的Java版本为JDK 1.8,因为Solr 4.9要求Java版本为1.7+,请注意. 二.Solr部署到Tomcat流程 图1-2 Tomcat安装目录 1.如图1-2所示,为Tomcat的解压目录: 图1-3 Tomcat首页 2.在目录E:\apache-tomcat-8.0.9\bin中,找到startup.bat文件,双击该文件,启动Tomcat服务器,等待几秒钟后,在浏览器中输入http://localhost:8…
简述configure.pkg-config.pkg_config_path三者的关系 一.什么是configure 源码安装过程中大多会用到configure这个程序,一般的configure都是一个script,执行时可以传入必要参数告知配置项目. configure程序它会根据传入的配置项目检查程序编译时所依赖的环境以及对程序编译安装进行配置,最终生成编译所需的Makefile文件供程序Make读入使用进而调用相关编译程式(通常调用编译程序都是gcc)来编译最终的二进制程序.而config…
1.开篇语2.概述3.渊源4.初识Solr5.Solr的安装6.Solr分词顺序7.Solr中文应用的一个实例8.Solr的检索运算符 [开篇语]按照惯例应该写一篇技术文章了,这次结合Lucene/Solr来分享一下开发经验. Lucene是一个使用Java语言写的全文检索开发包(API),利用它可以实现强大的检索功能,它的详细介绍大家可以去Google上搜索一下,本文重点放在Solr相关的讨论上. [概述]目前国内研究Solr的人不多,而且大多是因为项目开发需要.Solr师承Lucene,为…
JavaScript三大毒瘤 --- this,原型链,作用域 在我等菜鸟一步一步升级中的过程中,这三个概念总是困扰这我们(可能只有我吧,我比较蠢).这三个东西往往都很绕,今天我就来分享一下我对原型.原型链的理解,希望各路大神看到我有错的能纠正一下,也希望能帮助到不懂的人,能逐渐把这些弄懂. 首先 要弄清楚 原型链 ,首先要知道这三个东西 prototype  [[Prototype]]  constructor .哇 这都是什么鬼啊? 好,现在我们就详细说说这三者分别是什么东西. protot…
HTML. CSS. JavaScript三者的关系 网页主要由三部分组成: 结构( Structure) . 表现( Presentation) 和行为( Behavior)    HTML —— 结构, 决定网页的结构和内容( “是什么”)    CSS —— 表现( 样式) , 设定网页的表现样式( “什么样子”)    JavaScript( JS) —— 行为, 控制网页的行为( “做什么”) 一. HTML语言    1.1什么是HTML语言( HTML概述)    英文全称: Hy…
1.什么是solr solr是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文检索服务器.Solr提供了比lucene风味丰富的查询语言,同时实现了可配置,可扩展,并对索引,搜索性能进行优化. Solr可以独立运行,运行在Jetty,Tomcat等这些Servlet容器中,solr索引的实现方法很简单,用POST方法享Solr服务器发送一个藐视Field及其内容的XML文档,Solr根据XML文档添加,删除,更新索引.Solr搜索只需要发送HTTP GET请求,然后…
全文检索(Lucene&Solr) 1)什么是全文检索?为什么需要全文检索? 结构化数据(mysql等)方便查询,而非结构化数据(如多篇文章)是难以查询到自己需要的,所以要使用全文检索. 全文检索:将非结构化数据的内容提取一部分,然后重新组织,使其有一定结构,然后就能以此快速的查找需要的信息,提取整理后的信息称之为索引. 应用:如淘宝,京东的搜索商品:百度的索引引擎. 2)原始文档:互联网上的网页,数据库中的数据,磁盘上的文件: 索引库:索引+原始文档: 语汇单元:一个term就是一个单元. 3…
LinkedList.ArrayList.Vector三者的关系与区别? 区分ArrayList,Vector,LinkedList的区别 ArrayList,Vector的区别: 1.出现版本:ArrayList(1.2),Vector(1.0),Collection(1.2),也就是说Vector出现的更早(老版本的动态数组,与HashTable一样在jdk1.0) Vector:elementData,当执行构造方法时候初始化大小为10 ArrayList:调用无参构造(elementDa…
HTML. CSS. JavaScript三者的关系    网页主要由三部分组成: 结构( Structure) . 表现( Presentation) 和行为( Behavior)    HTML —— 结构, 决定网页的结构和内容( “是什么”)    CSS —— 表现( 样式) , 设定网页的表现样式( “什么样子”)    JavaScript( JS) —— 行为, 控制网页的行为( “做什么”)    一. HTML语言    1.1什么是HTML语言( HTML概述)    英文…
栗子1: cpus { #address-cells = <>; #size-cells = <>; cpu@ { compatible = "arm,cortex-a9"; reg = <>; }; cpu@ { compatible = "arm,cortex-a9"; reg = <>; }; }; 在上面的代码里面: #address-cells = <1>;//表示用一个32位的数来描述地址 #s…
一.java类,创建.编译.到运行的工程: 1.随便建一个Java类,保存后就是一个.java文件, 2.然后我们使用 javac命令编译 .java文件,生产 .class文件. 3.再然后使用 java 命令执行 .class文件. 注:javac命令执行的是 javac.exe,java命令执行是是 java.exe, 我们在编辑器(IDEA.eclipse)中点击的运行其实是  编译+运行 操作. 第三步中 的 java命令 运行.class文件,很明显是不能直接运行的,它不像C语言(编…
1.索引库的维护 索引库删除 (1) 全删除 第一步:先对文档进行分析 public IndexWriter getIndexWriter() throws Exception { // 第一步:创建java工程,并导入jar包 // 第二步:创建一个indexwriter对象(创建索引) // 1.指定索引库的存放位置Directory对象 Directory directory = FSDirectory.open(Paths.get("E:\\temp\\index")); //…
2.信息检索 信息检索是计算机世界中非常重要的一种功能.信息检索不仅仅是指从数据库检索数据,还包括从文件.网页.邮件.用户手输入的内容中检索数据.通过怎样的高效方式将用户想要的信息快速提取出来,是计算机技术人员研究的重点方向之一. 2.1.数据分类 我们生活中的数据总体分为两种:结构化数据和非结构化数据. 结构化数据:指具有固定格式或有限长度的数据,如数据库,元数据等. 非结构化数据:指不定长或无固定格式的数据,如邮件,word文档等磁盘上的文件 2.2.结构化数据搜索方法 数据库就是最常见的结…
前面提到了,电脑之父——冯·诺伊曼提出了计算机的五大部件:输入设备.输出设备.存储器.运算器和控制器. 我们看一下现在我们电脑的: 键盘鼠标.显示器.机箱.音响等等. 这里显示器为比较老的CRT显示器,现在一般都成功了液晶显示器. 我们想一下,我们在玩电脑的时候,我们使用键盘鼠标来操作电脑,我们在和其他人QQ聊天的时候,鼠标可以帮我们选中聊天的人,打开聊天窗口,键盘则是负责打字,帮我们输入聊天的内容. 我们在操作键盘鼠标的时候,其实都是在告诉电脑来做什么的.我们管键盘和鼠标叫输入设备. 输入设备…
说明:由于solr底层使用的是lucene,因此修改solr打分机制归根结底还是依赖于lucene的打分机制,本文主要讨论lucene的打分机制. 本文说明lucene 常用的四种影响评分结果的方式. 1.document设置boost 2.Field设置boost 3.查询时设置boost 4.扩展Similarity实现. 一.document设置boost: 暂缺. 二.Field设置boost: 暂缺. 三.查询时设置boost: 暂缺. 四.扩展Similarity实现: 暂缺.…
理解 lucene 是一个全文搜索的引擎 solr是全文搜索的web实现 --------------------.  java.lang.UnsupportedClassVersionError: org/apache/solr/servlet/SolrDispatchFilter : Unsupported major.minor version 51.0 (unable to load class org.apache.solr.servlet.SolrDispatchFilter)报错,…
今天突然想到一个问题,觉得直接从Solr开始写,如果没有Lucene知识背景的话,看后续的章节还是比较吃力的,所以从下一篇博文开始,我可能会从Lucene开始写作,只要有Java的基础,搞定Lucene是没有问题的,笑~ 转载须知: 请尊重本人知识产权和劳动成果,本文可自由转载,请注明出处: 博客网址:http://www.cnblogs.com/zs8861/ 联系邮箱:117711668@qq.com 欢迎交流!…
1.Lucene基础 (1) 简介 Lucene是apache下的一个开放源代码的全文检索引擎工具包.提供完整的查询引擎和索引引擎:部分文本分析引擎. Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便在目标系统中实现全文检索的功能. (2) 应用场景 对于数据量大,数据结构不固定的数据可采用全文检索方式搜索,比如百度,Google等搜索引擎,论坛搜索,电商网站站内搜索等. 2. Lucene实现全文检索的流程 下面这张图足以说明索引的流程 (1) 绿色表示索引过程,对要搜索的原…
一: Spring-data底层的接口路基: spring-data : PagingAndSortingRepository-> CrudRepository-> Repository ,它是springdatajpa,solr,mongoDB,Elasticsearch的核心基础. 有三个主要的接口: 1. Repository<T, ID> {}空接口 2.CrudRepository<T, ID>extends Repository<T, ID> 主…
全文检索引擎及工具 lucence lucence是一个全文检索引擎. lucence代码级别的使用步骤大致如下: 创建文档(org.apache.lucene.document.Document),并通过Document的add方法为其添加字段(lucence.document.Field) 创建lucence.index.IndexWriter,通过addDocument或addDocuments方法添加构建好的诸多Document 通过close方法关闭IndexWriter 创建索引搜索…
1.SolrCore的配置 a)schma.xml文件 b)配置中文分析器 2.配置业务域和批量索引导入 a)配置业务域 b)批量索引导入 c)Solrj复杂查询(用Query页面复杂查询.用程序实现) 3.京东案例(简单的站内搜索实现) 2.SolrCore的配置(重点) SolrCore的运行由两个重要的配置文件做指导,一个是solrconfig.xml,一个是schema.xml. 1)solrconfig.xml配置 依赖包.数据目录和请求处理器(/select,/update...)等…
1.案例分析:什么是全文检索,如何实现全文检索 2.Lucene实现全文检索的流程 a)         创建索引 b)         查询索引 3.配置开发环境 4.创建索引库 5.查询索引库 6.分析器的分析过程 a)         测试分析器的分词效果 b)         第三方中文分析器 7.索引库的维护 a)         添加文档 b)         删除文档 c)         修改文档 8.Lucene的高级查询Lucene的查询 a)         使用Query…
Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口.用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引:也可以通过Http GSolret操作提出查找请求,并得到XML格式的返回结果: 学习资源: 1.Solr中国 http://www.solr.cc/blog/?paged=2 2. solr技术大牛的博客  http://blog.csdn.net/lgnlgn 对应视频地址:http://v.youku.com/v_sho…
在linux内核中进程以及线程(多线程也是通过一组轻量级进程实现的)都是通过task_struct结构体来描述的,我们称它为进程描述符.而thread_info则是一个与进程描述符相关的小数据结构,它同进程的内核态栈stack存放在一个单独为进程分配的内存区域.由于这个内存区域同时保存了thread_info和stack,所以使用了联合体来定义,相关数据结构如下(基于4.4.87版本内核):  thread_union联合体定义: union thread_union { struct thre…