摘要: Solr是Apache Lucene的一个子项目。Lucene为全文搜索功能提供了完备的API,但它只作为一个API库存在,而不能直接用于搜索。因此,Solr基于Lucene构建了一个完整的搜索引擎,它可以为搜索引擎添加文档,对文档内容进行分析,并为用户提供搜索功能,在此基础上提供了一个扩展功... 阅读全文
posted @ 2014-07-15 12:58 lujinhong2 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 转载自:http://blog.csdn.net/vltic/article/details/19917377(1)相应的开发环境准备 (1)jdk1.6+的安装和环境变量配置(命令行敲java和javac,检验) (2)ant1.8+的安装和环境变量配置(命令行敲ant -v检验) ... 阅读全文
posted @ 2014-07-14 14:11 lujinhong2 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 请先参见“集成Nutch/Hbase/Solr构建搜索引擎之一:安装及运行”,搭建测试环境http://blog.csdn.net/jediael_lu/article/details/37329731一、被索引的域 Schema.xml1、文档基本内容在使用solr对Nutch抓取到的网页进行索引... 阅读全文
posted @ 2014-07-13 14:18 lujinhong2 阅读(407) 评论(0) 推荐(0) 编辑
摘要: 1、在/etc/vimrc新增以下一行syntax on 注:上述方法对root用户无效,原因为在一般用户中,alias vi=vim,而在root用户中默认无此设置,因此若需要root用户也显示颜色,可以(1)用vim命令编辑文件(2)在~/.bashrc中添加aliasvi=vim。2、设置se... 阅读全文
posted @ 2014-07-12 22:01 lujinhong2 阅读(175) 评论(0) 推荐(0) 编辑
摘要: hadoop fs:使用面最广,可以操作任何文件系统。hadoop dfs与hdfs dfs:只能操作HDFS文件系统相关(包括与Local FS间的操作),前者已经Deprecated,一般使用后者。以下内容参考自stackoverflowFollowing are the three commands which appears same but have minute differenc... 阅读全文
posted @ 2014-07-10 09:29 lujinhong2 阅读(507) 评论(0) 推荐(0) 编辑
摘要: 1、Shell$ExitCodeException现象:运行hadoop job时出现如下异常:14/07/09 14:42:50 INFO mapreduce.Job: Task Id : attempt_1404886826875_0007_m_000000_1, Status : FAILED... 阅读全文
posted @ 2014-07-09 15:02 lujinhong2 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 注意:以下内容在2.x版本与1.x版本同样适用,已在2.4.1与1.2.0进行测试。一、前期准备1、创建伪分布Hadoop环境,请参考官方文档。或者http://blog.csdn.net/jediael_lu/article/details/386372772、准备数据文件如下sample.txt:123456798676231190101234567986762311901012345679... 阅读全文
posted @ 2014-07-09 13:21 lujinhong2 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 转载自官方文档,最新版请见:http://hadoop.apache.org/docs/r2.4.1/hadoop-project-dist/hadoop-common/SingleCluster.html补充:建议添加如下环境变量#hadoop configuration export PATH=$PATH:/home/jediael/hadoop-2.4.1/bin:/home/jediae... 阅读全文
posted @ 2014-07-08 21:16 lujinhong2 阅读(132) 评论(0) 推荐(0) 编辑
摘要: Apache Ivy是一个管理项目依赖的工具。它与MavenApache Maven 构建管理和项目管理工具已经吸引了 Java 开发人员的注意。Maven 引入了 JAR 文件公共存储库的概念,可通过公开的 Web 服务器访问(称为 ibiblio)。Maven 的方法减少了 JAR 文件膨胀的情... 阅读全文
posted @ 2014-07-06 18:11 lujinhong2 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 1、下载相关软件,并解压版本号如下:(1)apache-nutch-2.2.1(2) hbase-0.90.4(3)solr-4.9.0并解压至/usr/search2、Nutch的配置(1)vi /usr/search/apache-nutch-2.2.1/conf/nutch-site.xmls... 阅读全文
posted @ 2014-07-06 14:46 lujinhong2 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 一、Solr学习相关资料1、官方材料(1)快速入门:http://lucene.apache.org/solr/4_9_0/tutorial.html,以自带的example项目快速介绍发Solr的基础使用。(2)API:http://lucene.apache.org/solr/4_9_0/ind... 阅读全文
posted @ 2014-07-02 14:59 lujinhong2 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 转载自 Blog of 天外的星星: http://www.cnblogs.com/leo-lsw/p/log4j2tutorial.htmlLog4j 2的好处就不和大家说了,如果你搜了2,说明你对他已经有一定的了解,并且想用它,所以这里直接就上手了。 1. 去官方下载log4j 2,导入jar... 阅读全文
posted @ 2014-07-01 12:26 lujinhong2 阅读(365) 评论(0) 推荐(0) 编辑
摘要: package org.ljh.test.javaee;import java.text.SimpleDateFormat;import java.util.Date;public class StringToLongToDate { public static String parseTime(... 阅读全文
posted @ 2014-06-30 16:23 lujinhong2 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 先准备测试程序:package org.jediael.util;import static org.junit.Assert.*;import org.junit.Test;public class BasicConfigurationTest { @Test public void testGetValue(){ BasicConfiguration configuration = B... 阅读全文
posted @ 2014-06-28 11:39 lujinhong2 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 1、apche commons项目封装了日常开发中经常使用的功能,如io, String等。http://commons.apache.org/Apache Commons项目的由三部分组成:The Commons Proper - 一个可重用的Java组件库。(已经发布过的)The Commons... 阅读全文
posted @ 2014-06-26 11:27 lujinhong2 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 一、Lucene的查询语法Lucene所支持的查询语法可见http://lucene.apache.org/java/3_0_1/queryparsersyntax.html(1) 语法关键字+ - && || ! ( ) { } [ ] ^ " ~ * ? : /如果所要查询的查询词中本身包含关键... 阅读全文
posted @ 2014-06-25 14:25 lujinhong2 阅读(480) 评论(0) 推荐(0) 编辑
摘要: 一、Lucene搜索过程总论搜索的过程总的来说就是将词典及倒排表信息从索引中读出来,根据用户输入的查询语句合并倒排表,得到结果文档集并对文档进行打分的过程。其可用如下图示:总共包括以下几个过程:IndexReader打开索引文件,读取并打开指向索引文件的流。用户输入查询语句将查询语句转换为查询对象Q... 阅读全文
posted @ 2014-06-25 14:23 lujinhong2 阅读(769) 评论(0) 推荐(0) 编辑
摘要: 在进行Lucene的搜索过程解析之前,有必要单独的一张把Lucene score公式的推导,各部分的意义阐述一下。因为Lucene的搜索过程,很重要的一个步骤就是逐步的计算各部分的分数。Lucene的打分公式非常复杂,如下:在推导之前,先逐个介绍每部分的意义:t:Term,这里的Term是指包含域信... 阅读全文
posted @ 2014-06-25 14:20 lujinhong2 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 一、段合并过程总论IndexWriter中与段合并有关的成员变量有:HashSet mergingSegments = new HashSet(); //保存正在合并的段,以防止合并期间再次选中被合并。MergePolicy mergePolicy = new LogByteSizeMergePol... 阅读全文
posted @ 2014-06-25 14:20 lujinhong2 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 对于Lucene的索引过程,除了将词(Term)写入倒排表并最终写入Lucene的索引文件外,还包括分词(Analyzer)和合并段(merge segments)的过程,本次不包括这两部分,将在以后的文章中进行分析。Lucene的索引过程,很多的博客,文章都有介绍,推荐大家上网搜一篇文章:《Ann... 阅读全文
posted @ 2014-06-25 14:18 lujinhong2 阅读(230) 评论(0) 推荐(0) 编辑
摘要: Lucene的索引里面存了些什么,如何存放的,也即Lucene的索引文件格式,是读懂Lucene源代码的一把钥匙。当我们真正进入到Lucene源代码之中的时候,我们会发现:Lucene的索引过程,就是按照全文检索的基本过程,将倒排表写成此文件格式的过程。Lucene的搜索过程,就是按照此文件格式将索... 阅读全文
posted @ 2014-06-25 14:15 lujinhong2 阅读(350) 评论(0) 推荐(0) 编辑
摘要: Lucene总的来说是:一个高效的,可扩展的,全文检索库。全部用Java实现,无须配置。仅支持纯文本文件的索引(Indexing)和搜索(Search)。不负责由其他格式的文件抽取纯文本文件,或从网络中抓取文件的过程。在Lucene in action中,Lucene 的构架和过程如下图,说明Luc... 阅读全文
posted @ 2014-06-25 14:12 lujinhong2 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 一、总论根据http://lucene.apache.org/java/docs/index.html定义:Lucene是一个高效的,基于Java的全文检索库。所以在了解Lucene之前要费一番工夫了解一下全文检索。那么什么叫做全文检索呢?这要从我们生活中的数据说起。我们生活中的数据总体分为两种:结... 阅读全文
posted @ 2014-06-25 14:11 lujinhong2 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 使用Eclipse编辑文件经常出现中文乱码或者文件中有中文不能保存的问题,Eclipse提供了灵活的设置文件编码格式的选项,我们可以通过设置编码 格式解决乱码问题。在Eclipse可以从几个层面设置编码格式:Workspace、Project、Content Type、File本文以Eclipse ... 阅读全文
posted @ 2014-06-25 11:23 lujinhong2 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 一、Luke基本内容1、Luke简介Luke可用于查看Lucene创建的索引,并对其进行基本操作。2、创建Luke(1)从Github上下载源文件https://github.com/tarzanek/luke(2)解压文件后,打开DOS窗口,进入Luke源代码所有位置,运行ant即可。此时,在bu... 阅读全文
posted @ 2014-06-24 15:12 lujinhong2 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 一、快速入门1、Tika是一个用于文本解释的框架,其本身并不提供任何的库用于解释文本,而是调用各种各样的库,如POI,PDFBox等。使用Tika,可以提取文件中的作者、标题、创建时间、正文等内容,相比于java.io自带的一些功能(如FileInputStream,FIleReader,Scanner等):(1)若文档为纯文本,如txt,html,java文件等,则二者对于文件内容的提取基本... 阅读全文
posted @ 2014-06-22 21:57 lujinhong2 阅读(536) 评论(0) 推荐(0) 编辑
摘要: 1、基础内容(1)相关概念分析(Analysis),在Lucene中指的是将域(Field)文本转换成最基本的索引表示单元--项(Term)的过程。在搜索过程中,这些项用于决定什么样的文档能够匹配查词条件。分析器对分析操作进行了封装,它通过执行若干操作,将文本转化成语汇单元,这个处理过程也称为语汇单... 阅读全文
posted @ 2014-06-22 10:51 lujinhong2 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 一、概述1、对于一个搜索而言,其核心语句为:searcher.search(query, 10);此时,其最重要的参数为一个Qeury对象。构造一个Query对象有2种方法:(1)使用Query的子类创建一个对象。(2)使用QueryParser.parse()创建一个对象。常用的用于实例化一个对象... 阅读全文
posted @ 2014-06-22 09:35 lujinhong2 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 1、关键类Lucene的搜索过程中涉及的主要类有以下几个:(1)IndexSearcher:执行search()方法的类(2)IndexReader:对索引文件进行读操作,并为IndexSearcher提供搜索接口(3)Query及其子类:查询对象,search()方法的重要参数(4)QueryPa... 阅读全文
posted @ 2014-06-21 09:53 lujinhong2 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 1、在Java项目中,应该通过绝对路径访问文件,以下为访问的常用方法:第一种方法:类名.class.getResource("/").getPath()+文件名第二种方法:Thread.currentThread().getContextClassLoader().getResource("").g... 阅读全文
posted @ 2014-06-20 15:20 lujinhong2 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 从JDK1.4开始即引入与日志相关的类java.util.logging.Logger,但由于Log4J的存在,一直未能广泛使用。综合网上各类说法,大致认为: (1)Logger:适用于小型系统,当日志量过大时性能有待提升。好处在于JDK集成了此类,无需引入新包。且性能也在逐步改善当中,我认为一般而言,使用Logger即可。 (2)Log4J:并发性较好,性能较强,适用于... 阅读全文
posted @ 2014-06-18 11:02 lujinhong2 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 一、基础内容0、官方文档说明(1)org.apache.lucene.index provides two primary classes: IndexWriter, which creates and adds documents to indices; and IndexReader, whic... 阅读全文
posted @ 2014-06-16 11:30 lujinhong2 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 在Lucene对文本进行处理的过程中,可以大致分为三大部分:1、索引文件:提取文档内容并分析,生成索引2、搜索内容:搜索索引内容,根据搜索关键字得出搜索结果3、分析内容:对搜索词汇进行分析,生成Quey对象。注:事实上,除了最基本的完全匹配搜索以外,其它都需要在搜索前进行分析。如不加分析步骤,则搜索... 阅读全文
posted @ 2014-06-11 10:47 lujinhong2 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 在创建一个job后,就要开始job的运行,运行的全流程如下:1、在界面上启动job2、index.jsp查看上述页面对应的源代码Start3、action.jsp String sAction = request.getParameter("action"); if(sAction !=... 阅读全文
posted @ 2014-06-04 20:10 lujinhong2 阅读(172) 评论(0) 推荐(0) 编辑
摘要: Heritrix可分为四大模块:1、控制器CrawlController2、待处理的uri列表 Frontier3、线程池 ToeThread4、各个步骤的处理器(1)Pre-fetch processing chain:主要处理DNS-lookup, robots.txt,认证,抓取范围检查等。(... 阅读全文
posted @ 2014-06-01 16:56 lujinhong2 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 精选常用:1、 ctrl+shift+r:打开资源这可能是所有快捷键组合中最省时间的了。这组快捷键可以让你打开你的工作区中任何一个文件,而你只需要按下文件名或mask名中的前几个字母,比如applic*.xml。美中不足的是这组快捷键并非在所有视图下都能用。2、ctrl+o:快速outline 如果... 阅读全文
posted @ 2014-06-01 13:05 lujinhong2 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 1、版本说明(1)最新版本:3.3.0(2)最新release版本:3.2.0(3)重要历史版本:1.14.43.1.0及之前的版本:http://sourceforge.net/projects/archive-crawler/files/ 3.2.0及之后的版本:http://archive.o... 阅读全文
posted @ 2014-06-01 13:02 lujinhong2 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 一、新建项目并将Heritrix源码导入1、下载heritrix-1.14.4-src.zip和heritrix-1.14.4.zip两个压缩包,并解压,以后分别简称SRC包和ZIP包;2、在Eclipse下新建Java项目,取名Heritrix.1.14.4;3、复制SRC包下面src/java文... 阅读全文
posted @ 2014-06-01 00:00 lujinhong2 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 一、Berkeley DB的介绍(1)Berkeley DB是一个嵌入式数据库,它适合于管理海量的、简单的数据。如Google使用其来保存账户信息,Heritrix用其来保存froniter.(2)key/value是Berkeley DB用来管理数据的基础,每个key/value对代表一条记录。(... 阅读全文
posted @ 2014-05-29 15:21 lujinhong2 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 详细代码请见E:\Project\【重要】归档代码\SearchEngine归档代码或https://code.csdn.net/jediael_lu/jediael/tree/10991c839c51d32f825708b09451b2618a20ee94或http://download.csdn.net/detail/jediael_lu/7402827本版本完成以下功能:(1)创建用于保... 阅读全文
posted @ 2014-05-26 15:17 lujinhong2 阅读(139) 评论(0) 推荐(0) 编辑