全文检索
Luncene Solr ElasticSearch等
wangchenggong1988
这个作者很懒,什么都没留下…
展开
-
Lucene学习--索引的建立
本篇目录:1.索引建立的步骤2.域的存储选项和索引选项3.索引的增删查改4.IndexReader的单例模式5.域为数字和日期时的处理6.生命周期 1.索引建立的步骤建立索引就是为了在检索时从索引文件中进行快速查找。各种类型的文件都需要先转换为文本,然后再通过适当的分词器,建立索引文件。 先创建Directory和IndexWriter,然后创建文档原创 2013-03-14 15:57:51 · 911 阅读 · 0 评论 -
全文索引Lucene学习小结之项目设计
以媒资4.5或央广媒资为原型,实现搜索功能,具体软件功能说明如下:1.索引文本增量更新【需求描述】:检索引擎索引的数据来源于业务系统,业务系统需要检索的数据会经常发生变化,当业务数据发生变化的时候需要检索引擎在最短的时间内对变化进行处理。最为常见的情况是当业务数据增加一天数据的时候,检索引擎需要在尽可能短的时间内将给数据加入到检索引擎中。索引增量更新的时间间隔要求可以进行配置。原创 2013-07-02 20:55:03 · 1142 阅读 · 0 评论 -
pinyin4j的使用例子:将中文转换成拼音
在全文索引的项目中需要在用户输入拼音时,也能检索到相应的文档 将中文转换为英文的例子:原文地址http://www.360doc.com/content/11/0407/11/987036_107780458.shtml package com.jetsen.test;import net.sourceforge.pinyin4j.PinyinHelper;import转载 2013-06-07 11:41:03 · 1147 阅读 · 0 评论 -
对中文文本生成的索引文件中有乱码
原因可能是中文的文本文件的编码格式与项目的编码格式不一致造成的。比如我的项目中Java文件的编码是utf-8的,而要建立索引的数据源(一批txt文本文件)是gbk编码的,也就是说:用不同的编码方式对文本建立的索引。所以出现了乱码。 解决方式是,调整项目的编目即可。 右击项目--》Properties---》ResourceText file encoding:Other:g原创 2013-05-21 17:41:04 · 1316 阅读 · 0 评论 -
Lucene的搜索功能
【Query】Query对象有诸多子类:TermQuery、TermRangeQuery、NumericQuery、PrifixQuery前缀查询、WildcardQuery通配符查询、BooleanQuery、PhraseQuery短语查询、FuzzyQuery模糊查询。在搜索时,可以直接创建这些类的对象,也可以使用QueryParser将查询字符串解析为某种查询对象。 【Query原创 2013-04-18 15:43:22 · 963 阅读 · 0 评论 -
Lucene查询语法详解
Lucene提供了丰富的API来组合定制你所需要的查询器,同时也可以利用Query Parser提供的强大的查询语法解析来构造你想要的查询器。本文章详细的介绍了Lucene的查询语法。通过Java语法分析器把一个查询字符串解析成 Lucene的查询器。在你选择使用Query Parser前,请考虑以下事项:如果你打算在程序中拼接查询语法串然后再利用Query Parser转换,那么强烈建议转载 2013-04-25 13:47:40 · 822 阅读 · 0 评论 -
Lucene搜索扩展笔记
两个Lucene工具:Luck 能基于索引文件进行直接的检索,几乎是使用Lucene的必备工具。Tika能方便地提取出word、pdf等文档文件或网页中的文本数据,为使用Lucene建立索引做好准备。使用Tika时有两种写法:①public String fileToTxt(File f) { Parser parser = new AutoDetectParser();原创 2013-04-25 13:38:52 · 928 阅读 · 0 评论 -
Lucene的自定义评分
使用Lucene进行查询时,默认是按评分由高到低进行排序的。而这里的评分是从哪里来的呢?原来Lucene本身就会根据关键词出现的频率等计算出一个评分,我们称之为原始评分。这个原始评分往往不能满足我们实际的需求。需要我们自定义评分规则。Lucene可以将原始的Query对象跟org.apache.lucene.search.function.FieldScoreQuery的对象作原创 2013-04-08 17:11:16 · 1559 阅读 · 0 评论 -
初识全文检索Lucene
1.全文检索存在的意义:应对信息爆炸,满足人们在当下浩如烟海的数据中快速查找所需要的内容。2.实现快速查找的大体思路:将原始数据分析后生成索引,实现在索引中对信息进行检索从而加快查找的效率;3.全文检索工具中,都是由三部分组成:索引部分、分词部分、搜索部分。分词部分是服务于索引的建立的。4.建立索引的步骤:创建Directory→创建IndexWriter→创建Document对象→为原创 2013-03-06 21:49:54 · 681 阅读 · 0 评论 -
Lucene学习阶段回顾--3个小问题
1.索引的加权操作2.分页3.在实现自定义的同义词分词器时的整体思路和核心代码1.对文档的加权处理可以通过有效的加权对顺序调整在向IndexWriter中添加文档时,可以对doc进行加权处理;doc.setBoost(float boost);在索引建立之后如何进行加权?是指自定义评分吗,后边会学。2.【分页】分页对搜索引擎而言意原创 2013-03-23 23:05:24 · 977 阅读 · 2 评论 -
初步接触全文检索小记
【全文检索功能优化的更新步骤】全文检索功能有一个索引生成工具,有一个目录,放置了字典文件夹和一系列文件。由于媒资系统当下较慢,需要重新生成索引。在生成索引这段时间,需要保证先前的全文检索是可用的。这就需要对媒资系统中索引文件的路径重新配置,然后将老的字典文件等移走,使两者仍保持对应关系,这样全文检索就仍然可用。然后把媒资系统中全文检索表中的记录状态为发布状态的ID字原创 2013-02-26 20:31:45 · 746 阅读 · 0 评论 -
初识建立索引过程用的分词器和对同义词的处理
1.不同的分词器会对同一段文本进行不同的处理,形成不同的词汇集合,供检索之用;常见的有4种分词器:标准分词器、停用词分词器、空格分词器、简单分词器拆分后的每个分词都有自己的参数信息,比如它在原文本中的位置(偏移量)、它在词汇中的位置增量。 我们比较重视的是中文分词器。mmseg4j的jar包中的MMSegAnalyzer和ComplexAnalyzer为我们提供了中文分词器原创 2013-03-15 21:11:45 · 1711 阅读 · 0 评论 -
Lucene的IndexWriter初始化时的LockObtainFailedException的解决方法
原文链接:http://www.javaarch.net/jiagoushi/904.htm本网站使用了lucene来支持搜索功能,然后定时重建索引,但是最近日志里面出现了下面的异常。这个异常是因为lucene进入到索引目录中,发现里面就是一个write.lock。而IndexWriter的构造函数在试图获取另外一个IndexWr转载 2013-12-20 15:45:26 · 996 阅读 · 0 评论