Lucene&Solr
IT进行曲
这个作者很懒,什么都没留下…
展开
-
Lucene七(搜索)
通过代码详细讲解Lucene3.5的各种搜索功能,包括TermQuery精确匹配,TermRangeQuery范围匹配,NumericRangeQuery数字类型的范围匹配,PrefixQuery按前缀匹配,WildcardQuery通配符匹配,BooleanQuery连接多个条件匹配,PhraseQuery短语匹配,FuzzyQuery模糊匹配,最后讲解了通过查询解析器QueryParser来查原创 2015-08-01 14:55:38 · 358 阅读 · 0 评论 -
Lucene二(域选项、文档基本信息、索引的增删改查)
先来看看域选项,域选项分为域存储选项和域索引选项,该选项是在为Document添加Field的时候,对该Field的描述。域存储选项即Field.Store.* *等于YES时表示会把这个域中的内容完全存储到索引文件中,方便进行还原;*等于NO表示这个域中的内容不存储到索引文件中,但是不代表不能进行索引,存储和索引是两个概念。域索引选项即Field.Index.* *等于NO,表示不进原创 2015-07-22 10:34:15 · 662 阅读 · 0 评论 -
Lucene一(开篇:lucene整体学习路线和初体验)
lucene是一个全文检索框架,用于快速的搜索全文信息。学习它就是围绕着索引、分词、搜索、以及一些高级的搜索、评分、排序等功能进行学习,该博客围绕3.5版本来进行学习。首先从一个简单的实例开始:建立索引的步骤:1、创建Directory;2、创建IndexWriter;3、创建Document对象;4、为Document添加Field;5、通过IndexWriter添加文档到索引中;6、关原创 2015-07-22 08:55:59 · 411 阅读 · 0 评论 -
Lucene九(分词)
Lucene3.5中有这四大类分词器:SimpleAnalyzer、StopAnalyzer、WhiltespaceAnalyzer、StandardAnalyzer。分词流程:Tokenizer:TokenFilter:TokenStream中保存的信息如下:了解了分词流程和TokenStream之后,可以通过代码来查看分词信息:packa原创 2015-08-02 08:20:06 · 382 阅读 · 0 评论 -
Lucene四(Luke工具的使用)
Luke工具可以用来查看索引文件的所有信息,是Lucene开发必备的工具之一,Luke的版本一定要和项目所使用的Lucene的版本一致才能打开Lucene创建的索引文件。Luke工具的使用:双击lukeall-3.5.0.jar打开该工具,如果不能打开,使用java命令打开,打开后界面如下所示:Path to Index Directory窗口用于打开已存在的索引文件所在目录,原创 2015-07-22 16:13:29 · 1617 阅读 · 0 评论 -
Lucene三(索引加权)
在建立索引的时候,为指定的Document对象加权会增加该文档的评分,使其在搜索结果中靠前。使用Document对象的setBoost方法可以为索引加权,代码如下:先来测试一下不加权时索引的搜索结果,需要一个search方法:public void search() {try {IndexReader reader = IndexReader.open(directory);I原创 2015-07-22 16:00:46 · 823 阅读 · 0 评论 -
Lucene十(自定义分词器、中文分词器)
根据分词器的分词流程,我们可以自定义分词器,这里扩展停用词分词器。package cn.liuys.lucene.util;import java.io.Reader;import java.util.Set;import org.apache.lucene.analysis.Analyzer;import org.apache.lucene.analysis.原创 2015-08-03 09:30:43 · 545 阅读 · 0 评论 -
Lucene八(搜索分页)
Lucene搜索分页有两种方式,即“再查询”和基于searchAfter的方式,这里为了演示分页,我在F:\stady\JAVA\other\Lucene\test\sourceToFenye下添加了很多个文件,用于测试分页,然后为这些文件创建索引,代码及测试如下:package cn.liuys.lucene.index;import java.io.File;import原创 2015-08-01 15:14:50 · 367 阅读 · 0 评论 -
Lucene六(IndexReader的设计)
IndexReader和IndexWriter的打开是非常消耗资源的,一般我们在项目中都将IndexReader设计为单例,有的项目中将IndexWriter也设计为单例。由于将IndexReader设计为单例,所以IndexReader不可以被关闭,只需要关闭IndexSearcher。而在用IndexReader的过程中,正因为由于单例的原因,如果索引发生了改变,不能即时的反映到IndexRe原创 2015-08-01 10:07:36 · 982 阅读 · 0 评论 -
Lucene五(添加日期和数字类型索引)
日期和数字类型索引可以使用NumericField对象来添加,建立索引、搜索、测试的代码如下:public class IndexUtil {private String[] ids = {"1","2","3","4","5","6"};private String[] emails = {"aa@itat.org","bb@itat.org","cc@cc.org","dd@s原创 2015-07-22 17:05:19 · 1526 阅读 · 0 评论