前言
Luke是一个用于Lucene搜索引擎的,方便开发和诊断的第三方工具,它可以访问现有Lucene的索引,并允许您显示和修改。如果我们把Lucene的索引比作数据库数据的话,那么Luke就是一个管理数据的客户端(DBMS)。我们开发Lucene的时候可以借助这个工具来提高我们的开发效率
准备工作
Luke是一个开源的i项目,项目托管在GitHub上,地址https://github.com/DmitryKey/luke,选好我们的Luke分支下载下来
ps:Lucene更新迭代的很快,每个版本的变化也比较大,所以我们在选Luke版本的时候也要选择对应的分支下对应的版本,不然就gg了,笔者这里的Lucene是最新的5.X版本,当然Luke也是选的最新的
Luke是一个maven项目,下载好后,install下,会打成一个jar包,直接双击jar就可以运行
ps:最新的Luke的使用的是jdk1.8,其他版本的不清楚,可以去pom.xml文件看下
运行后的界面如下,我这里已选则好索引目录了
图解
1处信息可以看出这个Document有几个Field,以及每个Field的分词个数,百分占比,编码
2.处信息是一个统计区,列出了有几个Document,Document有几个FIeld,总共多少个分词
3.处可以重新打开索引(当索引变化时),提交更改
4.处是索引的详细信息,可以看出每个分词出现的频次,以及对于的Field
使用Luke
上图可以看到第一个选项卡OverView的功能,接下来就看看其他的选项卡的功能
documents选项卡是用来进行文档的操作和查看的,比如文件的删除、添加。下面一个大listview就可以用来查看文档的详细信息了,是不是和DBMS的查看表数据非常的像呢?上面有两个查找文档的方法,根据文档编号来查找和根据词来查找了,其实这个就是搜索了,详情如下图
search选项卡是我认为最有用的一个界面了,其中我们可以在这里进行索引的搜索测试,可以编写最的lucene搜索语句,然后可以看到语句解析后的query树,这样就可以知道为什么我们有些查询会查询不到我们想要的信息了,然后还可以选择进行搜索的分词器、默认字段和重复搜索次数的(可以通过多次搜索来获取平均一个搜索过程的耗时长短,这个对查询的性能测试时非常有用的),然后下面的listview中就会列出一个搜索的的文档的所有保存的(store)字段的值,下面可以看到查询花费的时间。详情如下图
Commits选项卡就是用来查看每个索引相关文件的一些属性的界面,具体的话,可以通过这个界面分析下索引文件的多少大小,是否需要优化或者合并等等。详情如下图
最后一个plugins选项卡,就是可以看到luke提供的各种插件,我认为比较有用的还是那个分词工具,提供一个分词的类,然后下面文本框输入一段文本,然后就可以让这个工具帮你分词,你可以看到详细的分词信息。详情如下图