使用 Luke 浏览 Lucene 的索引

背景

我目前所在的搜索团队用 Lucene 做站内搜索,索引是每天更新一次。

最近在做国际化,新增了一个语种的 analyzer,并且索引里也会加一些字段。为了验证和测试这些改动,我需要在索引里加一些 mock 的 document,看看能不能搜到。

写入 mock document 到索引还算比较容易,但写入之后怎么验证呢?毕竟 Lucene 的索引文件并不是可读格式。

这时候,Lucene 官方的索引浏览器 Luke 就派上用场了!

下载 Luke

不得不说,使用 Lucene 而不是 Elasticsearch 最让人头疼的问题就是社区支持。用 Lucene 的人太少了!

上网查了一下,Lucene 第一版发布于 1999 年,那时候 Google 才刚刚成立,正是搜索引擎最耀眼的时候!然而 20 多年过去了,为什么 Lucene 的关注度这么少,Github 上只有区区 600 多个 star(相比之下,Elasticsearch 有 58k 个 star,几乎是 Lucene 的 100倍)!简直无法相信自己的眼睛。大家都知道 Elasticsearch 是基于 Lucene 的,这也没能把 Lucene 带火一点儿?

在网上(主要是 Stack Overflow 上)能搜到的关于 Lucene 的信息非常有限,不过好在我还是从中挖掘出来了“Lucene 有个配套的索引浏览器叫 Luke ”这个十分有价值的信息!不多说了,下载一下试试看吧。

由于社区支持太少,连把 Luke 下载下来也成了一件难事。如果你在谷歌上搜“download lucene luke”,第一个结果居然是 Google Code 上已经归档多年的很老很老版本的 Luke!下载下来才发现根本读不了我们建的索引。

而且在 Apache Lucene 的官网上竟然也没找到 Luke 的下载链接!

后来终于找到了较新版 Luke 的下载页面:https://github.com/DmitryKey/luke/releases/tag/luke-swing-8.0.0,就连这个 Github repo 竟然也已归档!

(看了这个项目的 README.md 才明白,原来最新版本的 Luke 是和 Lucene 一起下载的)

运行 Luke

Luke 是一个 GUI 工具,但并不是以 App 的形式安装的,而是一个 jar 包。下载下来的 zip 包解压之后,里面的 target/luke-swing-with-deps.jar 就是我们需要的东西。

可以直接在命令行里运行:

$ java -jar luke-swing-with-deps.jar

这样 Luke 的窗口就启动了:
请添加图片描述

基本功能

我目前用到的不多,所以在这里只介绍最基础的功能:

加载索引

一开始弹出来的就是加载索引的对话框,你需要选择一个本地的索引文件夹,让 Luke 加载。

浏览 Documents

Documents 标签页下可以逐一浏览索引中的 document,可以看到每个 document 的每个 field;也可以按编号直接跳转到某个 document。

这对我来说非常有帮助,因为可以直观看到我 mock 的 document 是不是成功写入了相应的 field。

基础搜索

Luke 里不仅可以浏览 document,还可以简单测试一下搜索!

Search 标签页下,你可以选择任何一种内置 analyzer,然后输入 query 并检查搜索结果。非常非常实用!
请添加图片描述

小结

今天先写这么多。更多功能可以参考这篇文章:https://lingpipe-blog.com/2012/07/24/using-luke-the-lucene-index-browser-to-develop-search-queries/

这篇文章很老了,讲的是一个很老版本的 Luke,但 Luke 的功能倒是没怎么变。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值