- 浏览: 362356 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (292)
- jbpm3.2 (4)
- hibernate (1)
- struts (2)
- spring (7)
- oracle (20)
- TCP/UDP (3)
- SpringSide (4)
- maven (4)
- eclipse插件 (11)
- 模板引擎 (2)
- javascript (4)
- 设计模式 (2)
- 工作中遇到异常及解决 (3)
- java文件编译问题 (1)
- ehcache应用 (1)
- java反射 (1)
- jbpm4 (1)
- Google-Gson (1)
- Jquery (6)
- XML (5)
- 工作记事 (2)
- flash builder 4 (1)
- Lucene (8)
- struts2 (1)
- AspectJ (1)
- spring proxool连接池配置 (1)
- StringUtils (1)
- spring security (5)
- JAVA点滴 (9)
- jbpm4.3 (1)
- ACL (0)
- 线程 (7)
- Java线程:新特征-线程池 (1)
- MemCache (5)
- compass (0)
- NIO (2)
- zookeeper (4)
- 并发 (2)
- redis (9)
- Nginx (5)
- jvm (1)
- 互联网 (24)
- shell (3)
- CAS (1)
- storm (4)
- 数据结构 (3)
- MYSQL (3)
- fsdfsdfsd (0)
- hadoop (19)
- hive (3)
- IntelliJ (3)
- python (3)
- 23423 (0)
- spark (7)
- netty (9)
- nmon (1)
- hbase (8)
- cassandra (28)
- kafka (2)
- haproxy (3)
- nodejs (3)
- ftp (1)
最新评论
-
记忆无泪:
遇到这个问题我用的sed -i 's/\r$//' /mnt/ ...
CentOS6 Shell脚本/bin/bash^M: bad interpreter错误解决方法 -
alenstudent:
Windows 下Nexus搭建Maven私服 -
dandongsoft:
lucene3+IK分词器 改造 lucene2.x+paoding -
duanyanrui:
学习了,支持
Google-Gson -
yscyfy:
这是你直接翻译过来的???
Google-Gson
首先来认识下全文检索的工作流程:
java Project 目录结构如图:
package com.lebuqi.lucene; import java.io.IOException; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; import org.apache.lucene.index.CorruptIndexException; import org.apache.lucene.index.IndexWriter; import org.apache.lucene.index.IndexWriter.MaxFieldLength; import org.apache.lucene.queryParser.MultiFieldQueryParser; import org.apache.lucene.queryParser.QueryParser; import org.apache.lucene.search.Filter; import org.apache.lucene.search.IndexSearcher; import org.apache.lucene.search.Query; import org.apache.lucene.search.ScoreDoc; import org.apache.lucene.search.TopDocs; import org.junit.Test; import com.lebuqi.lucene.utils.File2Document; /** * @Title: HelloWord.java * @Package com.lebuqi.lucene * @Description: TODO(添加描述) * @author longzhun * @date 2011-8-6 下午07:13:56 * @version V1.0 */ public class HelloWord { String filePath = "G:\\work5\\luceneDemo\\luceneDatasource\\IndexWriter addDocument's a javadoc .txt"; String indexPath = "G:\\work5\\luceneDemo\\luceneIndex"; Analyzer analyzer = new StandardAnalyzer(); /** * 创建索引 * IndexWriter是用来操作(增,删,改)索引库的 */ @Test public void createIndex() throws Exception{ Document doc = File2Document.file2Document(filePath); IndexWriter indexWriter = new IndexWriter(indexPath,analyzer,true,MaxFieldLength.LIMITED); indexWriter.addDocument(doc); indexWriter.close(); } /** * 搜索 * @throws IOException * @throws CorruptIndexException */ @Test public void seach() throws Exception{ String queryString = "document"; String[] fields = {"name","content"}; QueryParser parser = new MultiFieldQueryParser(fields, analyzer); Query query = parser.parse(queryString); IndexSearcher indexSearcher = new IndexSearcher(indexPath); Filter filter = null; TopDocs topDocs = indexSearcher.search(query, filter, 10000); System.out.println("总共有"+topDocs.totalHits+"条匹配结果"); for(ScoreDoc scoreDoc:topDocs.scoreDocs){ int docSn = scoreDoc.doc; //文档内部编号 Document doc = indexSearcher.doc(docSn); //根据文档编号取出相应文档 // Field f = doc.getField("name"); // f.stringValue(); System.out.println("name ="+doc.get("name")); System.out.println("content ="+doc.get("content")); System.out.println("size ="+doc.get("size")); System.out.println("path ="+doc.get("path")); } } }
File2Document .java
package com.lebuqi.lucene.utils; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.InputStreamReader; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; import org.apache.lucene.document.Field.Index; import org.apache.lucene.document.Field.Store; /** * @Title: File2Document.java * @Package com.lebuqi.lucene.utils * @Description: TODO(添加描述) * @author longzhun * @date 2011-8-6 下午07:46:51 * @version V1.0 */ public class File2Document { public static Document file2Document(String path){ File file = new File(path); //文件.name,content.size,path Document doc = new Document(); doc.add(new Field("name", file.getName(),Store.YES,Index.ANALYZED )); doc.add(new Field("content", readFileContent(file),Store.YES,Index.ANALYZED )); doc.add(new Field("size", String.valueOf(file.length()),Store.YES,Index.NOT_ANALYZED)); doc.add(new Field("path", file.getAbsolutePath(),Store.YES,Index.NO )); return doc; } private static String readFileContent(File file) { try { BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file))); StringBuffer content = new StringBuffer(); for(String line = null;(line = br.readLine())!= null;){ content.append(line).append("\n"); } return content.toString(); } catch (Exception e) { throw new RuntimeException(e); } } }
发表评论
-
利用Spring AOP处理自定义注解
2015-07-08 16:09 3031Spring3.0中加入了对缓存的注解支持,即当你使用ehc ... -
spring ioc 原理 spring aop原理
2015-05-15 12:56 9361.关于spring ioc 这段时间也着实好好的看了下sp ... -
分页检索及完善站内搜索
2012-02-27 22:40 883public static final int pageSi ... -
lucene3+IK分词器 改造 lucene2.x+paoding
2012-02-27 21:12 1388public void createIndex(Article ... -
即时更新索引思路
2012-02-26 00:05 8791.用户发表一篇文章,即时添加索引. 2.用户修改一篇 ... -
更新索引策略之一(非繁忙时刻更新)
2012-02-25 22:54 694半夜更新:也可以叫做非繁忙时段更新。 思路:从上次遍历 ... -
lucene与数据表比较
2012-02-25 17:01 689LUCENE 数据表 说明 Document ... -
lucene+paoding实现全文检索
2012-02-25 16:42 1229Lucene的主要逻辑图 Lucene包括两块:一是文 ... -
Spring整合 RMI
2012-02-23 19:18 1146Spring整合RMI的原理 客户端的核心是RmiProxy ... -
自己写个简单的IOC容器
2012-02-13 22:19 741第一次看spring的时候 ... -
Lucene2.4 索引库位置介绍
2011-08-07 17:35 757在Lucene第一个简单实例中,我们是直接把文件位置index ... -
详解 Spring 3.0 基于 Annotation 的依赖注入实现
2011-06-01 11:09 779使用 @Repository、@Service、@Contro ... -
SpringContextUtil
2011-04-29 16:24 3475import org.springframework.cont ...
相关推荐
Lucene2.4入门总结lucene2.4 人门 field 多条件搜索
java拼车网雏形(Ext2.0+SSH+oracle10g+lucene2.4)
lucene 2.4 jar lucene2.4版本的JAR包
ictclas4j for lucene 2.4 任何人不得将此用于商业用途,仅限个人学习研究之用.该开源项目遵循Apache License 2.0
能够直接运行的Lucene2.4样例以及全面注释; + Lucene中文文档,能够帮助你最快掌握Lucene2.4
庖丁解牛 源码 for Lucene 2.4
Luene2.4版本在以前的基础上进行了不少的改动,性能上也提升了不少,这里边学习边写了一个简单的例子,给初学者行个方便!
lucene实例lucene实例lucene实例lucene实例lucene实例lucene实例lucene实例lucene实例lucene实例
基于java的Lucene全文搜索引擎资源简单实例下载
struts2 + spring2.5 + hibernate 3.2 + lucene 2.4 + compass 2.0 包含所有jar包,按readme.txt导入并运行即可 开始不用分了................
基于lucene 2.4简单的一个索引和搜索实例
lucene2.4手册,是开发搜索引擎的好帮手.
通过lucene创建索引,然后进行各种搜索
NULL 博文链接:https://chenhua-1984.iteye.com/blog/380779
lucene实例lucene实例lucene实例lucene实例lucene实例
支持net4.0环境下运行,Lucene.net版本为3.0,PanGu版本为2.4
Lucene索引器实例Lucene索引器实例Lucene索引器实例Lucene索引器实例
Lucene2.4.1的源代码,包括core包和demos包的内容。
Lucene实现索引和查询的实例讲解Lucene实现索引和查询的实例讲解