Lucene学习笔记(3)
继续学习车东利用Lucene提供网站全文检索的开源项目。由于文档不全,这次看代码看得很苦,几乎是用log4j一个类一个方法的看过来的。令人高兴的是,期间请教车东时,他说到要重新整理一下整个项目的源代码和文档,估计后来者可以轻松矣。
除了以前提到的汉化外,车东在这个项目中,加入了很多实用的东东,如反显、排序、摘要等,甚至也连网页过期时间、输出格式的限制都考虑到了。
下面是我的测试页面,大家看看先。等明天我把源代码diff一下,把我做的修改文件也挂上来,供大家参考。
在车东的简历上,有一个商业检索网址,估计是车东他们的成绩,可以去看看,也帮助理解这个项目的功能。
下面是运行weblucene需要作得改动和说明。
weblucene/
|-- WEB-INF
| |-- classes
| | `-- com
| | `-- chedong
| | |-- weblucene
| | |-- WebLuceneAdminServlet.java
| | |-- index
| | | `-- SAXIndexer.java
| | `-- search
| | `-- WebLuceneHighlighter.java
| |-- logs <-----这是一个子目录,手工建立后程序运行时log文件在这个目录下。
| `-- var
| `-- app
| |-- index <-----这是一个子目录,手工建立后索引时将索引文件放在这儿。
| |-- weblucene.xsl
| `-- wl.conf
|-- index.html
|-- style.css
`-- test.xml
对SAXIndexer.java的修改
将两行
sb.append(luceneDoc.getField((String) it.next()));
改为两行
sb.append(luceneDoc.get((String) it.next()));
对WebLuceneHighlighter.java的修改
将两处<u>改为<ins>
将两处</u>改为</ins>
对WebLuceneAdminServlet.java可改可不改
建议将
logFileName = servletConfig.getServletContext().getRealPath("WEB-INF/logs/")
+ logFileName;
改为
logFileName = servletConfig.getServletContext().getRealPath("WEB-INF/logs/")
+ "/" + logFileName;
除了三个java程序外,其它文件都可以从这儿下载.
通过web进行检索前,需要先建立索引,命令如下:
$ java IndexRunner -i tt.xml -o WEB-INF/var/app/index/ -t Title,Content -n Author,Pubtime
需要再说一句,就是估计车东会很快推出一个崭新的实用性更强的版本,到那时此处可供下载的内容估计都没有用了。:)