用java编写搜索引擎

上传人:mg****85 文档编号:34074123 上传时间:2018-02-20 格式:DOC 页数:5 大小:85KB
返回 下载 相关 举报
用java编写搜索引擎_第1页
第1页 / 共5页
用java编写搜索引擎_第2页
第2页 / 共5页
用java编写搜索引擎_第3页
第3页 / 共5页
用java编写搜索引擎_第4页
第4页 / 共5页
用java编写搜索引擎_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《用java编写搜索引擎》由会员分享,可在线阅读,更多相关《用java编写搜索引擎(5页珍藏版)》请在金锄头文库上搜索。

1、1.1.1 准备工作环境(10 分钟)http:/ 2009-10-29 10:02 罗刚 电子工业出版社 我要评论() 摘要:自己动手写搜索引擎第 1 章遍历搜索引擎技术,本章从快速实现基本的搜索入手,然后深入展开分析搜索的基本技术。本节为大家介绍准备工作环境(10 分钟)。 标签:搜索引擎 自己动手写搜索引擎 Oracle 帮您准确洞察各个物流环节第 1 章 遍历搜索引擎技术搜索引擎是我们每天上网经常使用的功能,本书介绍的搜索技术需要 Java 编程语言基础。本章从快速实现基本的搜索入手,然后深入展开分析搜索的基本技术。1.1 30 分钟实现的搜索引擎首先从一个简单的搜索引擎入手,实现一个

2、简单的指定目录文件的搜索引擎。实现之前需要读者具有 Java 开发方面的基础知识。1.1.1 准备工作环境(10 分钟)首先要准备一个 Java 的开发环境。当前可以使用 JDK 1.6。JDK 1.6 可以从 Sun 的官方网站 下载得到。使用默认方式安装即可。然后要使用的是一个用来管理搜索引擎索引库的 jar 包,叫做 Lucene。目前可以从http:/lucene.apache.org/java/docs/index.html 下载到最新的 Lucene,当前的版本是 2.3。另外,使用集成开发环境 Eclipse,其开发界面如图 1-1 所示。 (点击查看大图)图 1-1 Java

3、 开发界面如果需要用 Web 界面搜索,还要下载 Tomcat,当前可以从 http:/tomcat.apache.org/下载到,推荐使用 Tomcat 5.5 以上的版本。然后增加 Tomcat 的内存使用量,防止内存溢出。如果是在 Linux 下,可以用 vi 编辑器修改./catalina.sh 文件,增加行:1. JAVA_OPTS=-Xmx600m 如果是在 Windows 下,可以用文本编辑器 记事本修改./catalina.bat 文件,增加行:1. set JAVA_OPTS=-Xmx600m 【作者提示】如果不增加内存使用量,运行时可能会出现 java.lang.OutOf

4、MemoryError异常。1.1.2 编写代码(15 分钟)http:/ 2009-10-29 10:02 罗刚 电子工业出版社 我要评论() 摘要:自己动手写搜索引擎第 1 章遍历搜索引擎技术,本章从快速实现基本的搜索入手,然后深入展开分析搜索的基本技术。本节为大家介绍编写代码(15 分钟)。 标签:搜索引擎 自己动手写搜索引擎 Oracle 帮您准确洞察各个物流环节1.1.2 编写代码(15 分钟)搜索引擎的基础在于对全文索引库的管理,在 Lucene 中,通过 IndexWriter 来写入索引库。伪代码如下:1创建 IndexWriter,准备写索引;2遍历要索引的路径;3优化索引。

5、下面是主要的实现代码:1. public void go() throws Exception 2. long start = System.currentTimeMillis(); 3. if (verbose) 4. System.out.println(Creating index in: + indexDir); 5. /创建索引目录或者建立增量索引 6. if (incremental) System.out.println(-using incremental mode); 7. 8. Index = new IndexWriter(new File(indexDir), new

6、StandardAnalyzer(), 9. !incremental);/打开或创建索引库,indexDir 是索引存放的路径 10. 11. File dir = new File(sSourceDir);/待索引的文件存放的路径 12. indexDir(dir);/索引路径 13. index.optimize();/索引优化 14. index.close();/关闭索引库 15. if(verbose) 16. System.out.println(index complete in :+(System. currentTime Millis() - start)/1000); 1

7、7. 下面这段代码把文件内容加到索引库:1. private void indexFile(File item) 2. if (verbose) System.out.println(Adding FILE: + item); 3. News news = loadFile(item);/把文件中的内容加载到 news 对象 4. if ( news!= null & news.body != null) 5. Document doc = new Document(); 6. /创建网址列 7. Field f = new Field(url, news.URL , 8. Field.Sto

8、re.YES, Field.Index.UN_TOKENIZED, 9. Field.TermVector.NO); 10. doc.add(f); 11. /创建标题列 12. f = new Field(title, news.title , 13. Field.Store.YES, Field.Index.TOKENIZED, 14. Field.TermVector.WITH_POSITIONS_OFFSETS); 15. doc.add(f); 16. /创建内容列 17. f = new Field(body, news.body.toString() , 18. Field.St

9、ore.YES, Field.Index.TOKENIZED, 19. Field.TermVector.WITH_POSITIONS_OFFSETS); 20. doc.add(f); 21. try 22. /文档增加到索引库 23. index.addDocument(doc); 24. 25. catch(Exception e) 26. 27. e.printStackTrace(); 28. System.exit(-1); 29. 30. 31. 完整的代码可以在本书附带的光盘中找到。运行以后,一般会生成以下三个索引文件:_0.cfssegments.gensegments_2其中任何索引库都会包括的一个文件是:segments.gen。可以通过判断一个路径下是否包括这个文件来判断一个路径下是否已经存在 Lucene 索引。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号