天天看点

Lucene7.2.1系列(三)查询及高亮

系列文章:

<a href="https://blog.csdn.net/qq_34337272/article/details/79764305">Lucene系列(一)快速入门</a>

<a href="https://blog.csdn.net/qq_34337272/article/details/79764315">Lucene系列(二)luke使用及索引文档的基本操作</a>

<a href="https://blog.csdn.net/qq_34337272/article/details/79780859">Lucene系列(三)查询及高亮</a>

创建项目并添加Maven依赖

写索引

读取索引

对特定单词查询和模糊查询

我们上面查询了单词“authorship”以及模糊查询了单词"authorshioo",结果如下:

可以看到只在LICENSE.txt文档下找到该单词。

那么模糊查询为什么查不到单词"authorshioo"呢?

这是因为我们在这里允许可以错误几个字符为1个,但是我们单词"authorshioo"错误字符个数为2个,所以就查不到。

解析表达式的使用

我们上面分别查询了:“atomic a atomicReader”和“AtomicReader and AtomicReaderContext”,通过查询结果可以看出即使稍微改变查询内容,也还是可以查询到和我们给出的表达式相关的文档。

中文查询及高亮显示

结果会把我们查询的“南京”单词给高亮显示,这在我们平时搜索中很常见了。

我们平时搜索中的高亮就像下图:

欢迎关注我的微信公众号(分享各种Java学习资源,面试题,以及企业级Java实战项目回复关键字免费领取):

Lucene我想暂时先更新到这里,仅仅这三篇文章想掌握Lucene是远远不够的。另外我这里三篇文章都用的最新的jar包,Lucene更新太快,5系列后的版本和之前的有些地方还是有挺大差距的,就比如为文档域设置权值的setBoost方法6.6以后已经被废除了等等。因为时间有限,所以我就草草的看了一下Lucene的官方文档,大多数内容还是看java1234网站的这个视频来学习的,然后在版本和部分代码上做了改进。截止2018/4/1,上述代码所用的jar包皆为最新。

最后推荐一下自己觉得还不错的Lucene学习网站/博客:

<a href="https://blog.csdn.net/wuyinggui10000/article/category/3173543">Lucene专栏</a>

<a href="https://www.zhihu.com/search?type=content&amp;q=Lucene%E5%8A%A0%E6%9D%83">搜索系统18:lucene索引文件结构</a>

<a href="https://blog.csdn.net/k_122/article/details/76400888">Lucene6.6的介绍和使用</a>

上一篇: PHP 语法
下一篇: Go 语言变量