[lucene]01.lucene介绍以及选定使用的版本

lucene是干什么的?

        想要一句话说明白lucene是什么的,还真不太容易,就像别尝试着用一句话去阐释人生一样。lucene是用于全文检索的,这样说感觉还是离我们太远,举个例子,比如有个很多文件,我想找到哪些文件里面含有“乐之者cms”的缩写"lzzcms"或者中文"乐之者cms",你想到的是什么?难道是一个个的打开每个文件,ctrl+f来搜索,这不是一个程序员应该想到的,哈哈。这时候lucene就可以帮我们实现这个功能,再啰嗦一遍,就是说,lucene可以帮我们通过搜索、判断来确定文本文件中是否某个字符串,这种功能就叫做“全文检索”。

有没有我们熟悉的地方哪用到了?

        那么,有没有我们熟悉的例子呢,记得以前我做项目的时候是用到过,不过因为很久了,再说公司的项目也没法演示出来,不过工作中还是会可能遇到的。现在我就举个乐之者java的例子吧:

image.png

搜索框中,输入要查询的内容,点击查询:

image.png

会列出前10篇含有“java”这个关键字的文章,这是如何实现的,就是通过lucene。

lucene和搜索引擎什么关系?

        lucene是java的一个jar包,是全文检索的工具,不要跟搜索引擎混淆了。

好了,知道了lucene是干嘛的,我们接着就来看怎么来使用它吧。

       知道lucene是什么之后,也就把大体的框架掌握了,学一个新东西一定要知道自己在学什么,一定要从整体上、大局上了解这个东西,然后才有所谓的细枝末节,我们就可以做几个例子,通过从简单的例子了解lucene的功能,于无形中你就能学会了,后边的那些高亮显示、提取摘要、提取关键词了自然不在话下。

        我这里使用maven工程演示,如果你不想用maven工程,去下载下面列出的对应的jar包一样的,需要哪些jar包?

        <!--lucene相关jar包-->
         <!--lucene核心jar包-->
        <dependency> 
	    <groupId>org.apache.lucene</groupId>
	    <artifactId>lucene-core</artifactId>
	    <version>5.3.1</version>
	</dependency> 
	<!--lucene检索jar包-->
	<dependency> 
	    <groupId>org.apache.lucene</groupId>
	    <artifactId>lucene-queryparser</artifactId>
	    <version>5.3.1</version>
	</dependency>
	<!--英文分词器jar包-->
	<dependency>
	    <groupId>org.apache.lucene</groupId>
	    <artifactId>lucene-analyzers-common</artifactId>
	    <version>5.3.1</version>
	</dependency>
	<!-- 高亮jar包-->
	<dependency>
	    <groupId>org.apache.lucene</groupId>  
	    <artifactId>lucene-highlighter</artifactId>
	    <version>5.3.1</version> 
	</dependency>
		 
	<!--支持中文和英文的分词器jar包,替代上面的默认英文分词器-->
	<dependency>
	    <groupId>org.apache.lucene</groupId>
	    <artifactId>lucene-analyzers-smartcn</artifactId>
	    <version>5.5.1</version>      
	</dependency>
	<!--为了读取文件方便,这里才引入,不是lucene必须的-->
	<dependency>
	    <groupId>commons-io</groupId>
	    <artifactId>commons-io</artifactId>
	    <version>2.0</version>
	</dependency>

        我们看到,这里我使用的lucene的版本是5.3.1。lucene5之后的改动还是很好的,我记得以前我用的时候写程序代码还要指定lucene的版本,当时我还记得lucene是通过静态常量给出的,我当时就想,这兼容性岂不是太差了,难道程序还要跟版本搞上这么亲密的关系,需要吗?而且还要指定这么多,当时用着就感觉很不爽啊,还好现在后来的版本都修正了。好的,闲言少叙,jar包引进来之后,我们就来看看怎么一步步学会它吧。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值