1. lucene获取
这里我用的是lucene-3.4.0,下载地址为:http://labs.renren.com/apache-mirror//lucene/java/3.4.0/,将其放到E:\lab下,并解压缩。
2. 建立测试用文档
在E:\lab\lucene-3.4.0\myselfdocs建立文档,以用于索引,如下:
其中,dog4_cat1.txt中内容如下:
表示dog有4个,cat有1个。
3. 建立索引
1. 将lucene-core-3.4.0.jar、contrib/demo/lucene-demo-3.4.0.jar加入classpath。
2. 运行如下命令
java org.apache.lucene.demo.IndexFiles -docs E:\lab\lucene-3.4.0\myselfdocs
结果如下图所示:
4. 搜索
1.运行java org.apache.lucene.demo.SearchFiles。并分别输入dog、cat进行搜索。如下图所示。
很简单,如你所愿,是我们想要的效果
5. 测试排序
这回我们输入“dog cat”进行搜索,结果如下
这回,哥迷惑了。据我所知, Lucene的排序算法使用的是 Vector Space Model (VSM) of Information Retrieval (向量空间模型)和 Boolean model(布尔模型)共同计算排序相关度的。我在以前写过一个名为《lucene排序 摘要(lucene的排序原理)》的博客时提到过。
按照我对向量空间模型的了解,显示顺序应该是
|
dog4_cat1.txt dog3_cat1.txt dog2_cat2.txt
|
并且,cat1.txt 和 dog1.txt都不显示,呵呵,布尔模型吗。
进一步探索吧,呵呵
PS:建立索引、搜索完全按照http://lucene.apache.org/java/3_4_0/demo.html而来。