Lucene實戰開發手記(七)--- 關鍵詞提示

 有點類似google搜索關鍵詞提示的功能。用Ajax的方式,提示以所輸入文字開頭的前10個lucene已創建的關鍵詞。 Ajax和頁面代碼省略掉,隻貼與lucene相關的代碼。   /** * 關鍵詞提醒 * @param keyword * @return */ public List remindKeyword(String keywo ...
by cleaneyes 2008-05-15 浏览 (26) 回复 (0)

Lucene實戰開發手記(六)--- 搜索、刪除索引代碼

無特別之處,了解的朋友不用看。 /** * 限制分類的搜索 * @param keyword * @param categoryKeyword * @return * @throws LuceneException */ public List searchIndex(String keyword, String categoryKeyword) ...
by cleaneyes 2008-05-15 浏览 (21) 回复 (0)

Lucene實戰開發手記(五)--- 為html/txt格式的文檔創建索引

txt與html解析存在亂碼的問題,這個問題困擾了我好幾天,最後找到一些資料,通過多次嘗試,基本解決了。   public class TxtDocHander extends DocHander { public Document getDocument(byte[] inputByte) throws IOException { // 進行文檔的編碼格式識別 ...
by cleaneyes 2008-05-15 浏览 (21) 回复 (0)

Lucene實戰開發手記(四)--- 為PDF/excel/doc格式的文檔創建索引

上篇有提到這段代碼: DocHander docHander = DocHanderFactory.buildDocHander(fileName); attachDocument = docHander.getDocument(attach);   下面我們看一看實現細節。   抽象類DocHander的代 ...
by cleaneyes 2008-05-15 浏览 (23) 回复 (0)

Lucene實戰開發手記(三)--- 創建索引細節方法

/** * 文檔主體建立索引 * 注意文檔與附件分成不同的Document,但搜索到附件內容時,需鏈接到其所在文檔 * @param article * @return * @throws InterruptedException * @throws Exception */ private Document createArticleIn ...
by cleaneyes 2008-05-15 浏览 (26) 回复 (0)

Lucene實戰開發手記(二)--- 創建索引主方法

對索引操作的類為KbIndexProcesser  文檔主體類:Article public class Article { private String id; private String topic; private String content; private String categoryId; private String category; ...
by cleaneyes 2008-05-15 浏览 (27) 回复 (0)

Lucene實戰開發手記(一)--- 前言

       《Lucene實戰開發手記》系列文章的適用對象為Lucene初學者。       本人所在項目組正在開發一個Call Center的系統。需要開發一個知識庫來為客服提供知識搜索的支持。採用Lucene做為搜索引擎。   知識庫的需求如下: 1、知識庫以文檔的 ...
by cleaneyes 2008-05-15 浏览 (56) 回复 (0)

实现Microsoft Project 文件格式的解析和内容抽取

  文本内容提取:  使用net.sf.mpxj 的工具提取文本内容; package com.koders.se.parser; import com.koders.se.search.WikiDOC; import net.sf.mpxj.ProjectFile; import net.sf.mpxj.Resource; import net.sf. ...
by betafox 2008-05-13 浏览 (31) 回复 (0)

小项目怎么做需求分析?

在做项目时,经常会碰到这样的事情. 客户向我们反映在和你们的工程师谈论需求时,他们总是满口答应没问题。可是,当他们做好以后,拿过来一看,根本就不是这么回事。而开发人员也在诉苦:用户什么都不懂,而且他们的需求老是变动,时间又这么紧,你让我们怎么办? 我觉得如果开发人员在做需求分析时,如果注意以下几点,也许可以避免被动的局面. 1、掌握相关的行业知识 在和客户沟通之前,最好了解一下相关的行业知识 ...
by mfcai 2008-05-12 浏览 (54) 回复 (2)

求教一个compass 中存储索引的问题

我是一个compass的初学者,做了一个compass的存储索引的例子,但是运行时却总是报下面的错,不知是什么原因: 2008-05-09 10:14:05,140 ERROR [org.compass.core.lucene.engine.transaction.ReadCommittedTransaction] - <Failed to read index reader propert ...
by 星星@ 2008-05-09 浏览 (61) 回复 (0)

Lucene2.3.2发布了

最新的Lucene2.3.2发布了,主要修改了一些创建和修改索引时候的Bug。 ======================= Release 2.3.2 2008-05-05 ======================= Bug fixes 1. LUCENE-1191: On hitting OutOfMemoryError in any index-modifying me ...
by grantbb 2008-05-08 浏览 (138) 回复 (0)

八皇后问题

上午闲着突然想起八皇后问题,上学时听过但没做过。反正没事,我就试着做下。一个上午在纸上画来画去,还是没有思路,都快崩溃了。到下午时候突然有点想法。试着打了一个满足条件的。看来不错,一鼓作气终于做出来了。做出来后发现其实是因为我对递归及回溯了解的不深,所以老理不清思路。核心的方法代码也就10行。不知道别人是怎么做的,希望高手给提供新的思路。      八皇后 ...
by zwm512327 2008-05-07 浏览 (112) 回复 (0)

华为5分钟的编程题

去华为面试的一道编程题,要求五分钟写一个程序。把一个输入的数字完全逆转。比如输入25679,返回97652。我第一想法是用StringBuffer的reverse()一句话就写完了。eg:StringBuffer stb=new StringBuffer("3d3a555445");  stb.reverse();然后在先转成String类型,逆转后再转回去。结果面试官说,不能 ...
by zwm512327 2008-05-02 浏览 (780) 回复 (14)

用Swing做的文件选择器

把我曾经遇到的一些问题跟大家分享下。好多问题教材上找不到答案,当时花费了好多时间,有些是网上查了好久查到的,有些是自己试了好久才明白的。 1)不管屏幕大小,始终把界面显示到屏幕固定比例的位置 2)文件选择器的使用,Java API上讲的太少了,就一个如何使文件选择器显示出来都困扰我很久,不知道大家刚接触时是否有同感。 3)事件处理怎么判断是哪个控件触发了事件。 4)选项卡的使用 5)滚动 ...
by zwm512327 2008-04-30 浏览 (211) 回复 (0)

如何成为系统架构师

3月到5月正是跳槽的时节。 有经验的求职者中会想:我现在虽然还在开发软件,可是我应该及早对人生作出规划呀。可以考虑试试应聘系统架构师。能应聘上,当然好。不能应聘上,也可以积累点经验。 一些公司老板也在考虑,能招到有经验的系统架构师当然好,如果没有,也可以从一些有经验的开发人员中培养。但是,我怎么知道他们是否有这个潜力呢? 我是做java开发的。所以就java方面的系统架构师所要具备的潜 ...
by mfcai 2008-04-30 浏览 (114) 回复 (4)

文件读写实例模板

在公司经常做一些文件分析及修改的工具。大多数的同事用vb,也有人用perl。我刚开始也学着用vb和perl来做。后来做了几次后发现,对于文件操作和字符串匹配Java更有优势。perl的正则表达式是很强大,但是一般的应用根本用不着那么深的分析。而vb对于字符串的操作实在是不敢恭维。举个简单的例子,判断一个字符串是否包含一个子串。java中只需要 String s=“Hello,World ...
by zwm512327 2008-04-29 浏览 (306) 回复 (3)

尝试使用fuzzyquery分析中文字符的相似度

需要对一些数据进行去掉重复处理,规则类似于,两条记录的名称和地址相似度很大,则认为是同样的,应该去掉当中的某一个。昨天晚上翻了lucene得书籍,想找找看有什么好的方法没有,最后决定尝试一下fuzzyquery,大早上的就写了一个,结果很让我莫名其妙! 代码如下: public class FuzzyQueryTest { public static void m ...
by lang 2008-04-29 浏览 (61) 回复 (1)

sqlserver锁机制研究

对锁机制的研究要具备两个条件: 1.数据量大 2.多个用户同时并发 如果缺少这两个条件,数据库不容易产生死锁问题。研究起来可能会事倍功半。如果这两个条件都有,但你还是按数据库缺省设置来处理数据,则会带来很多的问题,比如: 1)丢失更新 A,B两个用户读同一数据并进行修改,其中一个用户的修改结果破坏了另一个修改的结果 2)脏读 A用户修改了数据时,B用户也在读该数据,但A用户因为某些原因取消了对数据 ...
by mfcai 2008-04-24 浏览 (77) 回复 (1)

【转】Lucene使用与优化

我认为这篇文章作为入门,对Lucene的总结比较好: 1 lucene简介 1.1 什么是lucene Lucene是一个全文搜索框架,而不是应用产品。因此它并不像www.baidu.com 或者google Desktop那么拿来就能用,它只是提供了一种工具让你能实现这些产品。 1.2 lucene能做什么 要回答这个问题,先要了解lucene的本质。实际上lucene的功能很单一,说到底, ...
by grantbb 2008-04-17 浏览 (621) 回复 (0)

lucene的前端集群思路

你的搜索可以集群吗(这里单指前端应用集群)?这是一个突然发来的问题。。。其实lucene说实话什么都好就是集群不方便。。。查看了些资料基本上做集群都是利用系统的集群文件系统等实现的,这个效率不会好。突然我觉得可以这样的结构来做集群:一台单机做索引,索引文件存在这台物理机上然后利用nfs将索引文件映射到多台前端子机,子机将nfs的内容用RAMDirectory读到内存索引中,然后子机各自使用web服 ...
by edwardpro 2008-04-17 浏览 (192) 回复 (3)

更新lucene到2.3 建立索引遇到的困扰

为了提高索引的速度,利用缓存的方式,达到一定量的时候flush。 lucene2.2版本代码这样写:(部分代码) IndexWriter fsWriter = new IndexWriter(fsDir,analyzer, true); addDocument(fsWriter, s); //添加一条信息到Document if (fsWriter.ramSizeInBytes() > IPara ...
by tongjian 2008-04-16 浏览 (126) 回复 (2)

Lucene的评分(score)机制的简单解释

通过Searcher.explain(Query query, int doc)方法可以查看某个文档的得分的具体构成。 在Lucene中score简单说是由 tf * idf * boost * lengthNorm计算得出的。 tf:是查询的词在文档中出现的次数的平方根 idf:表示反转文档频率,观察了一下所有的文档都一样,所以那就没什么用处,不会起什么决定作用。 boost:激励因子,可以 ...
by grantbb 2008-04-11 浏览 (445) 回复 (4)

使用Lucene2.3构建搜索引擎

Lucene不是一个完整的全文索引应用,而是是一个用Java写的全文索引引擎工具包,它可以方便的嵌入到各种应用中实现针对应用的全文索引/检索功能。Lucene的作者:Lucene的贡献者Doug Cutting是一位资深全文索引/检索专家,曾经是V-Twin搜索引擎(Apple的Copland操作系统的成就之一)的主要开发者,后在 Excite担任高级系统架构设计师,目前从事于一些INTERNET ...
by 晨星★~雨泪 2008-04-03 浏览 (362) 回复 (0)

步入j2ee架构设计

1.RUP简介 谈到架构设计,就不能说rup,架构是在rup中最早提出来的。 RUP(Rational Unified Process,统一软件开发过程,统一软件过程)是一个面向对象且基于网络的程序开发方法论。 RUP把一个项目开发概括成4个阶段,9个核心工作流程,6大方法。 RUP定义了初始、细化、实现和部署4个阶段 RUP是最佳软件开发经验的总结,它包括了软件开发中的六大方法 ...
by mfcai 2008-04-02 浏览 (165) 回复 (2)

基于Spindle的增强HTTP Spider

构建于lucene之上的可用的Java开源Spider少之又少,spindle长期没有更新且功能不够完善,故而自己参考其源代码重新编写了一个可扩展的WebCrawler,本着开源共享,共同进步的想法发布于此,期冀得到大家的批评指正,有任何意见及建议均可Email联系我(kaninebruno@hotmail.com) 以下代码基于lucene-2.3.1,htmlparser-1.6,je ...
by brunoplum 2008-03-30 浏览 (196) 回复 (7)

实现MHT文件格式的解析和内容抽取

由于我们的业务系统中有大量的MHT格式的资料,需要对其建立索引,搜索很久了一直没有找到相关解析的类库,只好自己动手丰衣足食了。已实现内容的提取以及和lucene的整合,稍后会完善编码检测及其他内容的提取,做一个完整的parser出来。    文本内容提取:  首先提取html部分的内容,解码之后使用nekoHtml提取文本内容;public class Mh ...
by betafox 2008-03-29 浏览 (158) 回复 (1)

NekoHTML 处理转义字符的问题

NekoHTML在处理html文档时,如果碰到&开始的转义字符(如 空格),会出现乱码问题! 现象: 此问题在网络上多次出现,但没有解决办法,经过跟踪nekoHtml的执行,发现其处理&转义字符时需要读取org\cyberneko\html\res\HTMLlat1.properties属性文件,查找&转义字符的对应字符,但是由于某种原因,java.util.Pr ...
by betafox 2008-03-26 浏览 (112) 回复 (1)

Lucene搜索优化技巧 - 搜索篇

搜索 1、对于按创建时间的排序可以使用doc.id的方式 new SortField(null, SortField.DOC, reverse)排序方式尽量使用INT类型的字段 也就是按照写入索引的顺序排序 2、对于时间字符串的排序可以转换成整数进行排序 3、去掉不必要的parse 使用TermQuery替换 4、 ...
by grantbb 2008-03-21 浏览 (1091) 回复 (0)

Lucene搜索优化技巧 - 索引篇

索引 1、t.termText()替换为new String(t.termBuffer(),0,t.termLength()) 2、StringReader 和TokenStream对象都需要close 3、索引时Document只用一个、Field只用几个 一个Document对象对应多个Field实例 Field有新的setValue方法 ...
by grantbb 2008-03-21 浏览 (1088) 回复 (0)

lucene in action笔记之二搜索基础

一、简单的搜索程序主要搜索的类:1) IndexSearcher     搜索操作入口,所有的搜索操作都是通过IndexSearcher实例使用一个重载的search方法来实现。        2)Query及其子类   具体的Query子类为每一种特定类型的查询进行了 ...
by hank 2008-03-12 浏览 (162) 回复 (0)