`
junjie314
  • 浏览: 60269 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
文章分类
社区版块
存档分类
最新评论

Lucene学习笔记(1)

阅读更多

0、准备工作
  去Lucene的主页下载目前的稳定版本lucene-1.2.tar.gz,解压缩,将lucene-1.2目录下的两个jar文件lucene-1.2.jar和lucene-demo2-1.2.jar放到适当的目录下后,并将其加入到CLASSPATH环境变量中。

 

tar zxvf lucene-1.2.tar.gz <----解压缩
cd lucene-1.2
cp *.jar $DP<---存放jar文件的目录,根据具体工作要求用实际目录替换
CLASSPATH=$CLASSPATH:$DP/lucene-1.2.jar:$DP/lucene-demos-1.2.jar; export CLASSPATH
winclasspath.gif如果不想在每次都登录后,可以编辑/etc/profile或自己目录下的.profile,将上面的最后一行加到文件的最后一行。Windows的设置,右击桌面的“我的电脑”,选“高级”->“环境变量”->选中CLASSPATH->“编辑”,在输入框中加入两个jar文件的全路径名,注意分隔符是分号(;)。参见右图。

 

1、运行demo

$ java org.apache.lucene.demo.IndexFiles /usr/local/man/man1/ <--对man文件建立索引
adding /usr/local/man/man1/mysql.1
...........
adding /usr/local/man/man1/cvs.1
1614 total milliseconds
$ java org.apache.lucene.demo.SearchFiles <--进行检索
Query: password
Searching for: password
7 total matching documents
0. /usr/local/man/man1/mysql.1
......
6. /usr/local/man/man1/mysqlshow.1
Query:
OK!Lucene自待的demo运行成功
这个demo程序调用的主要API函数:
/*关于索引的主要函数*/
File file=new File(argv[]);
IndexWriter writer = new IndexWriter("index", new StandardAnalyzer(), true);

 

Document doc = new Document();
doc.add(Field.Text("path", file.getPath()));
doc.add(Field.Keyword("modified",DateField.timeToString(file.lastModified())));
FileInputStream is = new FileInputStream(f);
Reader reader = new BufferedReader(new InputStreamReader(is));
doc.add(Field.Text("contents", reader));

writer.addDocument(doc);

writer.optimize();
writer.close();

/*关于检索的主要函数*/
Searcher searcher = new IndexSearcher("index");
Analyzer analyzer = new StandardAnalyzer();
Query query = QueryParser.parse(lineforsearch, "contents", analyzer);
Hits hits = searcher.search(query);
for (int i = start; i < hits.length(); i++) {
Document doc = hits.doc(i);
String path = doc.get("path");
System.out.println(i + ". " + path);
}

 


3、运行LuceneWeb
  假定tomcat装在$TOMCATHOME目录下,具体应用时用真实的目录替换$TOMCATHOME。

cd $TOMCATHOME/webapps
mkdir lucenedb
cd lucenedb
java org.apache.lucene.demo.IndexHTML -create -index $TOMCAT/webapps/lucenedb ../examples<--用相对路径“..”,一来指明被索引的文件的位置,二来用来显示被索引文件的URL,因为检索的jsp程序在luceneweb子目录下.examples可用其它的真实应用的目录名来替换
cd ..
cp ~/lucene-1.2/luceneweb.war . <--luceneweb.war在你解压缩生成的lucene-1.2目录下
../bin/shudown.sh
../bin/startup.sh

然后通过客户端访问http://yourdomain.com:8080/luceneweb,如果顺利浏览器应出现右边所示的内容。luceneweb-1.gif.再到服务器端
cd luceneweb
vi configuration.jsp <--将indexLocation 的值改为 "$TOMCATHOME/webapps/lucenedb";
cd ..
jar -ur luceneweb.war luceneweb

再到客户端,刷新刚才的页面,然后就可以输入单词进行检索了。遗憾的是,此是只能检索英文单词。且如果命中的html页面的title是汉字的话,显示也有问题。如图。
luceneweb-2.gif
  此处的IndexHTML,可以对htm、html和txt类型的文件进行索引,用的是一个HTMLParser,除此以外与上一例基本相同。

 

参考文献
1、Lucene FAQ, http://lucene.sourceforge.net/cgi-bin/faq/faqmanager.cgi?file=chapter.indexing&toc=faq#q1

2、Getting Started,http://jakarta.apache.org/lucene/docs/gettingstarted.html

分享到:
评论

相关推荐

    Lucene 学习笔记 1

    **Lucene 学习笔记 1** Lucene 是一个全文搜索引擎库,由 Apache 软件基金会开发。它提供了一个可扩展的、高性能的搜索框架,使得开发者能够在其应用程序中集成高级的搜索功能。本篇学习笔记将深入探讨 Lucene 的...

    【大搜集:lucene学习资料】---<下载不扣分,回帖加1分,欢迎下载,童叟无欺>

    lucene学习笔记 1 .txt lucene学习笔记 2.txt lucene学习笔记 3 .txt lucene入门实战.txt Lucene 的学习 .txt Lucene-2.0学习文档 .txt Lucene入门与使用 .txt lucene性能.txt 大富翁全文索引和查询的例子...

    Lucene学习笔记.doc

    【Lucene学习笔记】 Lucene是一个高性能、全文检索的开源库,完全用Java编写,能够帮助开发者在应用程序中实现复杂的搜索引擎功能。它提供了强大的索引和搜索机制,使得从大量文本数据中快速找到相关信息变得简单。...

    lucene学习笔记

    标题:Lucene学习笔记 描述:Lucene学习笔记,Lucene入门必备材料 知识点: 一、Lucene概述与文档管理策略 Lucene是一款高性能、全功能的文本搜索引擎库,广泛应用于文档检索、全文搜索等场景。为了提升搜索效率...

    Lucene 3.6 学习笔记

    【Lucene 3.6 学习笔记】 Lucene 是一个高性能、全文本搜索库,广泛应用于各种搜索引擎的开发。本文将深入探讨Lucene 3.6版本中的关键概念、功能以及实现方法。 ### 第一章 Lucene 基础 #### 1.1 索引部分的核心...

    Lucene学习笔记(一)Lucene入门实例

    NULL 博文链接:https://kylinsoong.iteye.com/blog/719415

    Lucene学习笔记

    【Lucene学习笔记】 Lucene 是一款开源的全文检索框架,由Apache软件基金会维护,它提供了高效的、可扩展的搜索引擎功能。不同于一个完整的应用程序,Lucene 提供的是一个基础组件,开发者可以将其集成到自己的应用...

    lucene3.5学习笔记

    ### Lucene 3.5 学习笔记 #### 一、Lucene 3.5 基本概念 ##### 1.1 Lucene 概述 **1.1.1 IndexWriter** `IndexWriter` 是 Lucene 中的核心类之一,用于创建或更新索引。它提供了添加文档、删除文档、优化索引等...

    lucene 3.5学习笔记

    《Lucene 3.5 学习笔记》 在信息技术高速发展的今天,搜索引擎技术成为了信息检索的核心工具。Apache Lucene,作为一个开源全文检索库,为开发者提供了强大的文本搜索功能。本文将深入探讨Lucene 3.5版本的相关知识...

    lucene3.0学习笔记(三)与paoding整合

    《Lucene 3.0 学习笔记(三)与Paoding整合》 在深入了解Lucene 3.0的过程中,我们经常会遇到如何将其与第三方工具进行整合的问题,以提升搜索性能和用户体验。这篇学习笔记主要关注的是将Lucene 3.0与Paoding搜索...

    lucene基础学习笔记&源码

    **Lucene 基础学习笔记与源码分析** **一、Lucene 概述** Lucene 是一个高性能、全文本搜索库,由 Apache 软件基金会开发并维护。它是一个 Java 开发的开源项目,被广泛应用于各种搜索引擎的构建,支持多种编程...

    本人的Lucene2.9学习笔记

    《深入理解Lucene 2.9.1:构建与搜索的全方位解析》 Lucene,作为一款开源的全文搜索引擎库,被广泛应用于各种信息检索场景。本文将详细讲解Lucene 2.9.1版本的核心概念、架构以及索引创建与搜索的流程。 一、...

Global site tag (gtag.js) - Google Analytics