摘要:
package org.ljh.test.javaee;import java.text.SimpleDateFormat;import java.util.Date;public class StringToLongToDate { public static String parseTime(... 阅读全文
随笔档案-2014年06月
【设计模式:单例模式】使用单例模式加载properties文件
2014-06-28 11:39 by jediael, 192 阅读, 收藏, 编辑
摘要:
先准备测试程序:package org.jediael.util;import static org.junit.Assert.*;import org.junit.Test;public class BasicConfigurationTest { @Test public void testGe... 阅读全文
apche commons项目简介
2014-06-26 11:27 by jediael, 129 阅读, 收藏, 编辑
摘要:
1、apche commons项目封装了日常开发中经常使用的功能,如io, String等。http://commons.apache.org/Apache Commons项目的由三部分组成:The Commons Proper - 一个可重用的Java组件库。(已经发布过的)The Commons... 阅读全文
Lucene学习总结之八:Lucene的查询语法,JavaCC及QueryParser
2014-06-25 14:25 by jediael, 273 阅读, 收藏, 编辑
摘要:
一、Lucene的查询语法Lucene所支持的查询语法可见http://lucene.apache.org/java/3_0_1/queryparsersyntax.html(1) 语法关键字+ - && || ! ( ) { } [ ] ^ " ~ * ? : /如果所要查询的查询词中本身包含关键... 阅读全文
Lucene学习总结之七:Lucene搜索过程解析
2014-06-25 14:23 by jediael, 410 阅读, 收藏, 编辑
摘要:
一、Lucene搜索过程总论搜索的过程总的来说就是将词典及倒排表信息从索引中读出来,根据用户输入的查询语句合并倒排表,得到结果文档集并对文档进行打分的过程。其可用如下图示:总共包括以下几个过程:IndexReader打开索引文件,读取并打开指向索引文件的流。用户输入查询语句将查询语句转换为查询对象Q... 阅读全文
Lucene学习总结之六:Lucene打分公式的数学推导
2014-06-25 14:20 by jediael, 150 阅读, 收藏, 编辑
摘要:
在进行Lucene的搜索过程解析之前,有必要单独的一张把Lucene score公式的推导,各部分的意义阐述一下。因为Lucene的搜索过程,很重要的一个步骤就是逐步的计算各部分的分数。Lucene的打分公式非常复杂,如下:在推导之前,先逐个介绍每部分的意义:t:Term,这里的Term是指包含域信... 阅读全文
Lucene学习总结之五:Lucene段合并(merge)过程分析
2014-06-25 14:20 by jediael, 145 阅读, 收藏, 编辑
摘要:
一、段合并过程总论IndexWriter中与段合并有关的成员变量有:HashSet mergingSegments = new HashSet(); //保存正在合并的段,以防止合并期间再次选中被合并。MergePolicy mergePolicy = new LogByteSizeMergePol... 阅读全文
Lucene学习总结之四:Lucene索引过程分析
2014-06-25 14:18 by jediael, 218 阅读, 收藏, 编辑
摘要:
对于Lucene的索引过程,除了将词(Term)写入倒排表并最终写入Lucene的索引文件外,还包括分词(Analyzer)和合并段(merge segments)的过程,本次不包括这两部分,将在以后的文章中进行分析。Lucene的索引过程,很多的博客,文章都有介绍,推荐大家上网搜一篇文章:《Ann... 阅读全文
Lucene学习总结之三:Lucene的索引文件格式(1)
2014-06-25 14:15 by jediael, 142 阅读, 收藏, 编辑
摘要:
Lucene的索引里面存了些什么,如何存放的,也即Lucene的索引文件格式,是读懂Lucene源代码的一把钥匙。当我们真正进入到Lucene源代码之中的时候,我们会发现:Lucene的索引过程,就是按照全文检索的基本过程,将倒排表写成此文件格式的过程。Lucene的搜索过程,就是按照此文件格式将索... 阅读全文
Lucene学习总结之二:Lucene的总体架构
2014-06-25 14:12 by jediael, 121 阅读, 收藏, 编辑
摘要:
Lucene总的来说是:一个高效的,可扩展的,全文检索库。全部用Java实现,无须配置。仅支持纯文本文件的索引(Indexing)和搜索(Search)。不负责由其他格式的文件抽取纯文本文件,或从网络中抓取文件的过程。在Lucene in action中,Lucene 的构架和过程如下图,说明Luc... 阅读全文
Lucene学习总结之一:全文检索的基本原理
2014-06-25 14:11 by jediael, 250 阅读, 收藏, 编辑
摘要:
一、总论根据http://lucene.apache.org/java/docs/index.html定义:Lucene是一个高效的,基于Java的全文检索库。所以在了解Lucene之前要费一番工夫了解一下全文检索。那么什么叫做全文检索呢?这要从我们生活中的数据说起。我们生活中的数据总体分为两种:结... 阅读全文
解决Eclipse中文乱码
2014-06-25 11:23 by jediael, 105 阅读, 收藏, 编辑
摘要:
使用Eclipse编辑文件经常出现中文乱码或者文件中有中文不能保存的问题,Eclipse提供了灵活的设置文件编码格式的选项,我们可以通过设置编码 格式解决乱码问题。在Eclipse可以从几个层面设置编码格式:Workspace、Project、Content Type、File本文以Eclipse ... 阅读全文
【Lucene4.8教程之五】Luke
2014-06-24 15:12 by jediael, 173 阅读, 收藏, 编辑
摘要:
一、Luke基本内容1、Luke简介Luke可用于查看Lucene创建的索引,并对其进行基本操作。2、创建Luke(1)从Github上下载源文件https://github.com/tarzanek/luke(2)解压文件后,打开DOS窗口,进入Luke源代码所有位置,运行ant即可。此时,在bu... 阅读全文
【Tika基础教程之一】Tika基础教程
2014-06-22 21:57 by jediael, 285 阅读, 收藏, 编辑
摘要:
一、快速入门1、Tika是一个用于文本解释的框架,其本身并不提供任何的库用于解释文本,而是调用各种各样的库,如POI,PDFBox等。使用Tika,可以提取文件中的作者、标题、创建时间、正文等内容,相比于java.io自带的一些功能(如FileInputStream,FIleReader,Scann... 阅读全文
【Lucene4.8教程之四】分析
2014-06-22 10:51 by jediael, 165 阅读, 收藏, 编辑
摘要:
1、基础内容(1)相关概念分析(Analysis),在Lucene中指的是将域(Field)文本转换成最基本的索引表示单元--项(Term)的过程。在搜索过程中,这些项用于决定什么样的文档能够匹配查词条件。分析器对分析操作进行了封装,它通过执行若干操作,将文本转化成语汇单元,这个处理过程也称为语汇单... 阅读全文
【Lucene4.8教程之六】QueryParser与Query子类:如何生成Query对象
2014-06-22 09:35 by jediael, 183 阅读, 收藏, 编辑
摘要:
一、概述1、对于一个搜索而言,其核心语句为:searcher.search(query, 10);此时,其最重要的参数为一个Qeury对象。构造一个Query对象有2种方法:(1)使用Query的子类创建一个对象。(2)使用QueryParser.parse()创建一个对象。常用的用于实例化一个对象... 阅读全文
【Lucene4.8教程之三】搜索
2014-06-21 09:53 by jediael, 137 阅读, 收藏, 编辑
摘要:
1、关键类Lucene的搜索过程中涉及的主要类有以下几个:(1)IndexSearcher:执行search()方法的类(2)IndexReader:对索引文件进行读操作,并为IndexSearcher提供搜索接口(3)Query及其子类:查询对象,search()方法的重要参数(4)QueryPa... 阅读全文
Java路径问题最终解决方案—可定位所有资源的相对路径寻址
2014-06-20 15:20 by jediael, 553 阅读, 收藏, 编辑
摘要:
1、在Java项目中,应该通过绝对路径访问文件,以下为访问的常用方法:第一种方法:类名.class.getResource("/").getPath()+文件名第二种方法:Thread.currentThread().getContextClassLoader().getResource("").g... 阅读全文
java.util.logging.Logger基础教程
2014-06-18 11:02 by jediael, 162 阅读, 收藏, 编辑
摘要:
从JDK1.4开始即引入与日志相关的类java.util.logging.Logger,但由于Log4J的存在,一直未能广泛使用。综合网上各类说法,大致认为: (1)Logger:适用于小型系统,当日志量过大时性能有待提升。好处在于JDK集成了此类,无需引入新包。且性能也在逐步改善当中,我认为... 阅读全文
【Lucene4.8教程之二】索引
2014-06-16 11:30 by jediael, 146 阅读, 收藏, 编辑
摘要:
一、基础内容0、官方文档说明(1)org.apache.lucene.index provides two primary classes: IndexWriter, which creates and adds documents to indices; and IndexReader, whic... 阅读全文
【Lucene4.8教程之一】使用Lucene4.8进行索引及搜索的基本操作
2014-06-11 10:47 by jediael, 120 阅读, 收藏, 编辑
摘要:
在Lucene对文本进行处理的过程中,可以大致分为三大部分:1、索引文件:提取文档内容并分析,生成索引2、搜索内容:搜索索引内容,根据搜索关键字得出搜索结果3、分析内容:对搜索词汇进行分析,生成Quey对象。注:事实上,除了最基本的完全匹配搜索以外,其它都需要在搜索前进行分析。如不加分析步骤,则搜索... 阅读全文
重要学习参考资料
2014-06-09 21:21 by jediael, 200 阅读, 收藏, 编辑
摘要:
搜索及数据处理LuceneSSolrSHadoop/SparkSNutchATikaBHeritrixCJAVAJAVA SEA算法基础算法、搜索相关实用算法AJava WebJSP/Servlet、SSH、WS、MavenBLinuxShell、管理B云计算云计算B计算机基础软件工程、设计模式、操... 阅读全文
【Heritrix基础教程之4】开始一个爬虫抓取的全流程代码分析
2014-06-04 20:10 by jediael, 151 阅读, 收藏, 编辑
摘要:
在创建一个job后,就要开始job的运行,运行的全流程如下:1、在界面上启动job2、index.jsp查看上述页面对应的源代码Start3、action.jsp String sAction = request.getParameter("action"); if(sAction !=... 阅读全文
【Heritrix基础教程之3】Heritrix的基本架构
2014-06-01 16:56 by jediael, 135 阅读, 收藏, 编辑
摘要:
Heritrix可分为四大模块:1、控制器CrawlController2、待处理的uri列表 Frontier3、线程池 ToeThread4、各个步骤的处理器(1)Pre-fetch processing chain:主要处理DNS-lookup, robots.txt,认证,抓取范围检查等。(... 阅读全文
Eclipse 快捷键大全
2014-06-01 13:05 by jediael, 199 阅读, 收藏, 编辑
摘要:
精选常用:1、 ctrl+shift+r:打开资源这可能是所有快捷键组合中最省时间的了。这组快捷键可以让你打开你的工作区中任何一个文件,而你只需要按下文件名或mask名中的前几个字母,比如applic*.xml。美中不足的是这组快捷键并非在所有视图下都能用。2、ctrl+o:快速outline 如果... 阅读全文
【Heritrix基础教程之2】Heritrix基本内容介绍
2014-06-01 13:02 by jediael, 133 阅读, 收藏, 编辑
摘要:
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... 阅读全文
【Heritrix基础教程之1】在Eclipse中配置Heritrix
2014-06-01 00:00 by jediael, 160 阅读, 收藏, 编辑
摘要:
一、新建项目并将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文... 阅读全文