最近准备做个自己的blog,考虑到对文文章内容的搜索,于是决定通过lucene对文章进行全文搜索。以下是我的学习笔记。 首先学习了中文java上的为自己的系统搞个全文搜索、车东的基于Java的全文索引引擎Lucene简介和竹笋炒肉的lucene学习笔记对lucene的原理有个一个全局的认识。 下面是对lucene自带的两个demo的运行测试方法: 一、FileIndex例子很简单。 1、设置classpath中包含lucene-1.3-final.jar和lucene-demos-1.3-final.jar包。 2、建立lucene的索引文件。 java org.apache.lucene.demo.IndexFiles filePath --------------------------------------------------------------------- 注:1、lucene将该filePath目录下的所有文件作为数据源来建立索引文件 2、demo中是在当前目录下建一个index目录来存放索引文件 3、查询 java org.apache.lucene.demo.SearchFiles Query:搜索的关键字 二、HTMLIndex例子 1、设置classpath中包含lucene-1.3-final.jar和lucene-demos-1.3-final.jar包。 2、部署luceneweb应用到jsp容器中。 3、建立lucene的索引文件。 格式为:IndexHTML [-create] [-index <index>] <root_directory> 参数含义:[-create] 表示重新建立索引文件(第一次,该参数必须) [-index <index>] 索引文件存放位置(任意) <root_directory> 用于创建索引文件的源文件位置(相对路径) 注:1、只对.html .htm .txt文件作为数据源进行索引文件的创建 2、因为该例子是web应用,所以设置<root_directory>路径时应注意,CMD下的相对路径和web应用下search.jsp的相对路径要相同。就必须在cmd下进入该search.jsp所在目录执行IndexHTML. cd luceneweb java org.apache.lucene.demo.IndexHTML -create -index d:/lucenedb ../examples 4、修改configuration.jsp文件中索引文件存放目录String indexLocation = "d:/lucenedb"; 5、如果搜索关键字为中文,还需修改results.jsp中获取表单的参数语句。进行编码转换。 将queryString =request.getParameter("query"); 替换为 queryString = new String(request.getParameter("query").getBytes("iso8859-1")); 6、http://localhost:8080/luceneweb/执行搜索 |
|