
lucene
文章平均质量分 77
codemosi
hadoop hive hbase mahout storm spark kafka flume,等连载中,做个爱分享的人。
干一件事,干好一件事!
QQ :1606588828
展开
-
Lucene4.10使用教程(九):Tika
Tika可以用来提取office、PDF、HTML、txt等常用文件中得文本(在提取文本时,图片是无法提取的,会被丢弃),方便Lucene进行文本的生成索引和检索。Tika的用法很简单,但是依赖包有些多,导入包后,使用方法如下:package com.johnny.lucene05.lucene_plugin.tika;import java.io.File;imp转载 2015-02-16 15:36:20 · 537 阅读 · 0 评论 -
Lucene4.10使用教程(八):Lucene的自定义评分(2)
第二种自定义评分的实现方式如下:** * 自定义评分的第二种写法,基于FunctionQuery * (1)创建类并继承ValueSource * (2)重写getValues方法 * @author Johnny * */public class MySelfScore2 { public void searchBySelfScore(){转载 2015-02-16 15:35:48 · 472 阅读 · 0 评论 -
Lucene4.10使用教程(三):lucene的增删改查(转载)
万丈高楼平地起,在看完helloLucene的demo后,我们可以看下Lucene的增删改查,下面是详细代码。其中:Store.YES表示将索引并且存储,Store.NO表示索引但不存储在Lucene中使用评分来确定文档的重要度和优先级。评分越高,表示文档优先级越高,进行排序显示的时候显示的位置越靠前。在Lucene4.10中,无法对整个文档进行评分,不过可以通过对文档中各个Fie转载 2015-02-16 15:32:36 · 445 阅读 · 0 评论 -
Lucene4.10使用教程(七):Lucene的自定义评分
自定义评分的第一种实现方式,详细内容可以查看代码注释package com.johnny.lucene04.advance_search.selfScore;import java.io.IOException;import java.text.SimpleDateFormat;import java.util.Date;import org.apache.luce转载 2015-02-16 15:35:23 · 400 阅读 · 0 评论 -
Lucene4.10使用教程(十一):Lucene的近实时搜索
近实时搜索(Near real time search)表示当索引数据发生变化时,Lucene能及时把这种变化反映到客户进行查询的结果中。实现原理:只有Index Writer上的commit操作才会导致ram directory上的数据完全同步到文件。Index Writer提供了实时获得reader的API,这个调用将导致flush操作,生成新的segment,但不会c转载 2015-02-16 15:37:35 · 468 阅读 · 0 评论 -
Lucene4.10使用教程(四):lucene的Search(转)
对于检索来说,Lucene4.10默认提供了很多检索模式,包括模糊查询、正则匹配、通配符匹配等有用的匹配模式,但是在实际使用时需要考虑Lucene匹配的效率和系统的需求然后选择相应的匹配模式。Lucene也提供了分页的查询方式。可以在scoredocs中进行分页,适合数据量比较小的情况,数据量太大有可能导致内存溢出;使用SearchAfter分页,每页都从索引中查询数据,查询速度较上一种慢转载 2015-02-16 15:33:28 · 560 阅读 · 0 评论 -
Lucene4.10使用教程(六):Lucene的过滤器
过滤器在生产环境中应用也比较多。比如禁用词的过滤显示、推荐商品的过期设置等。在编写时,需要在incrementToken添加自己的过滤规则。,下面的demo是针对同义词编写的过滤。过滤器的编写也可以参照org.apache.lucene.analysis.cn.ChineseFilter进行编写。使用自定义过滤器进行查询package com.johnny.lucene转载 2015-02-16 15:34:48 · 449 阅读 · 0 评论 -
Lucene4.10使用教程(二):简单的索引建立和读取步骤(HelloLucene)(转载)
下面是HelloLucene的代码,其中步骤已经在代码中标示出来。其中需要主要注意的是TextField和StringField的区别:StringField将字符串认为是一个整体,不能被切分;而TextField中的字符串可以被切分。package com.johnny.lucene01.index;import java.io.File;import java.转载 2015-02-16 15:32:05 · 567 阅读 · 0 评论 -
Lucene4.10使用教程(一):常用概念(转载)
Lucene是一个基于Java的全文信息检索工具包,它不是一个完整的搜索应用程序,而是为你的应用程序提供索引和搜索功能。Lucene 目前是 Apache Jakarta 家族中的一个开源项目。也是目前最为流行的基于 Java 开源全文检索工具包。Lucene与应用程序的关系如下图所示:在对Lucene4.10的使用进行说明前,需要先了解以下几个概念。转载 2015-02-16 15:30:44 · 418 阅读 · 0 评论 -
Lucene4.10使用教程(五):lucene的分词器
Lucene默认提供的分词器中有中文分词器,但是它的分词是基于单个字进行拆分的,所以在正式的项目中基本无用。所有要在项目中Lucene,需要添加另外的中分词器,比如IK、mmseg4j、paoding等。关于中文分词器的比较和适用情况,可以Google,文章很多,不是我们这里讨论的重点。如果需要使用中文分词器,也很简单,只要在使用分词器的地方,将分词器替换成我们的中文分词器即可,eg: Index转载 2015-02-16 15:34:12 · 617 阅读 · 0 评论