lucene
文章平均质量分 90
javageekcoder
java开发
展开
-
一步一步跟我学习lucene(2)---lucene的各种Field及其排序
lucene的各种Field及公共接口,Field使用示例,各种Field的特性,lucene排序原创 2015-05-06 18:27:57 · 13292 阅读 · 8 评论 -
一步一步跟我学习lucene(10)---lucene搜索之联想词提示之suggest原理和应用
昨天了解了suggest包中的spell相关的内容,主要是拼写检查和相似度查询提示;今天准备了解下关于联想词的内容,lucene的联想词是在org.apache.lucene.search.suggest包下边,提供了自动补全或者联想提示功能的支持;InputIterator说明InputIterator是一个支持枚举term,weight,payload三元组的供suggester使原创 2015-05-17 23:44:32 · 5324 阅读 · 3 评论 -
一步一步跟我学习lucene(11)---lucene搜索之高亮显示highlighter
highlighter介绍这几天一直加班,博客有三天没有更新了,望见谅;我们在做查询的时候,希望对我们自己的搜索结果与搜索内容相近的地方进行着重显示,就如下面的效果这里我们搜索的内容是“一步一步跟我学习lucene”,搜索引擎展示的结果中对用户的输入信息进行了配色方面的处理,这种区分正常文本和输入内容的效果即是高亮显示;这样做的好处:视觉上让人便于查找有搜索对应的文本块;界面展原创 2015-05-22 00:20:34 · 7116 阅读 · 0 评论 -
一步一步跟我学习lucene(12)---lucene搜索之分组处理group查询
grouping介绍我们在做lucene搜索的时候,可能会用到对某个条件的数据进行统计,比如统计有多少个省份,在sql查询中我们可以用distinct来完成类似的功能,也可以用group by来对查询的列进行分组查询。在lucene中我们实现类似的功能怎么做呢,比较费时的做法时我们查询出所有的结果,然后对结果里边的省份对应的field查询出来,往set里边放,显然这种做法效率低,不可取;luc原创 2015-05-24 00:57:28 · 7373 阅读 · 0 评论 -
一步一步跟我学习lucene(13)---lucene搜索之自定义排序的实现原理和编写自己的自定义排序工具
自定义排序说明我们在做lucene搜索的时候,可能会需要排序功能,虽然lucene内置了多种类型的排序,但是如果在需要先进行某些值的运算然后在排序的时候就有点显得无能为力了;要做自定义查询,我们就要研究lucene已经实现的排序功能,lucene的所有排序都是要继承FieldComparator,然后重写内部实现,这里以IntComparator为例子来查看其实现;原创 2015-05-24 23:02:28 · 4788 阅读 · 1 评论 -
一步一步跟我学习lucene(14)---lucene搜索之facet查询原理和facet查询实例
我们在浏览网站的时候,经常会遇到按某一类条件查询的情况,这种情况尤以电商网站最多,以天猫商城为例,我们选择某一个品牌,系统会将该品牌对应的商品展示出来,效果图如下:如上图,我们关注的是品牌,选购热点等方面,对于类似的功能我们用lucene的term查询当然可以,但是在数据量特别大的情况下还用普通查询来实现显然会因为FSDirectory.open等耗时的操作造成查询效率的低下,同时普通查询是全原创 2015-05-26 00:03:56 · 4405 阅读 · 0 评论 -
一步一步跟我学习lucene(15)---java读取word excel pdf及lucene搜索之正则表达式查询RegExQuery和手机邮箱查询示例
今天快下班的时候收到了一个群友的问题,大意是读取文本文件中的内容,找出文件中的手机号和邮箱,我自己写了一个读取文档的内容的正则查询示例,用于匹配文件中是否含有邮箱或者手机号,这个等于是对之前的文本处理工具的一个梳理,同时结合lucene内部提供的正则匹配查询RegexQuery;废话不多说了,直接上代码,这里先对文件内容读取分类处理,分为pdf word excel 和普通文本四类,不同的种类原创 2015-05-28 00:49:17 · 3949 阅读 · 1 评论 -
一步一步跟我学习lucene(17)---lucene搜索之expressions表达式处理
有时候我们在做lucene的结果展示的时候可能需要对多个列的内容进行计算,根据多个field对应的值做数值方面的运算。lucene自4.6版本起,提供了用于运算的expression模块;expression分为两部分:org.apache.lucene.expressions:提供了字段绑定和相关的表达式参数传递的功能;org.apache.lucene.expressions.原创 2015-06-02 00:36:11 · 3393 阅读 · 0 评论 -
一步一步跟我学习lucene(18)---lucene索引时join和查询时join使用示例
了解sql的朋友都知道,我们在查询的时候可以采用join查询,即对有一定关联关系的对象进行联合查询来对多维的数据进行整理。这个联合查询的方式挺方便的,跟我们现实生活中的托人找关系类似,我们想要完成一件事,先找自己的熟人,然后通过熟人在一次找到其他,最终通过这种手段找到想要联系到的人。有点类似于”世间万物皆有联系“的感觉。原创 2015-06-04 06:36:34 · 3961 阅读 · 0 评论 -
一步一步跟我学习lucene(19)---lucene增量更新和NRT(near-real-time)Query近实时查询
这两天加班,不能兼顾博客的更新,请大家见谅。有时候我们创建完索引之后,数据源可能有更新的内容,而我们又想像数据库那样能直接体现在查询中,这里就是我们所说的增量索引。对于这样的需求我们怎么来实现呢?lucene内部是没有提供这种增量索引的实现的;这里我们一般可能会想到,将之前的索引全部删除,然后进行索引的重建。对于这种做法,如果数据源的条数不是特别大的情况下倒还可以,如果数据源的条数特别大的原创 2015-06-07 22:25:19 · 6496 阅读 · 1 评论 -
一步一步跟我学习lucene(8)---lucene搜索之索引的查询原理和查询工具类(支持分页)示例
昨天我们了解了lucene搜索之IndexSearcher构建过程(http://blog.csdn.net/wuyinggui10000/article/details/45698667),对lucene的IndexSearcher有一个大体的了解,知道了怎么创建IndexSearcher,就要开始学会使用IndexSearcher进行索引的搜索,本节我们学习索引的查询原理和根据其相关原理写索引查询工具类;加入了对分页查询的支持以及多目录索引查询的功能原创 2015-05-15 00:36:30 · 4732 阅读 · 0 评论 -
一步一步跟我学习lucene(16)---lucene搜索之facet查询查询示例(2)
本篇是接一步一步跟我学习lucene(14)---lucene搜索之facet索引原理和facet查询实例(http://blog.csdn.net/wuyinggui10000/article/details/45973769),上篇主要是统计facet的dim和每个种类对应的数量,个人感觉这个跟lucene的group不同的在于facet的存储类似于hash(key-field-value)形式的,而group则是单一的map(key-value)形式的,虽然都可以统计某一品类的数量,显然facet更具原创 2015-05-31 21:29:36 · 2752 阅读 · 0 评论 -
一步一步跟我学习lucene(7)---lucene搜索之IndexSearcher构建过程
最近一直在写一步一步跟我学习lucene系列(http://blog.csdn.net/wuyinggui10000/article/category/3173543),个人的博客也收到了很多的访问量,谢谢大家的关注,这也是对我个人的一个激励,O(∩_∩)O哈哈~,个人感觉在博客的编写过程中自己收获了很多,我会一直继续下去,在工作的过程中自己也会写出更多类似系列的博客,也算是对自己只是原创 2015-05-13 23:34:44 · 6665 阅读 · 2 评论 -
一步一步跟我学习lucene(5)---lucene的索引构建原理
lucene创建索引的原理IndexWriter的addDocument方法详解今天看了IndexWriter类的addDocument方法,IndexWriter对此方法的说明如下:Adds a document to this index. Note that if an Exception is hit (for example disk full) then the ind原创 2015-05-10 22:35:31 · 4384 阅读 · 0 评论 -
一步一步跟我学习lucene(6)---lucene索引优化之多线程创建索引
这两天工作有点忙,博客更新不及时,请大家见谅;前面了解到lucene在索引创建的时候一个IndexWriter获取到一个读写锁,这样势在lucene创建大数据量的索引的时候,执行效率低下的问题;查看前面文档一步一步跟我学习lucene(5)---lucene的索引构建原理可以看出,lucene索引的建立,跟以下几点关联很大;磁盘空间大小,这个直接影响索引的建立,甚至会造成索引写入提原创 2015-05-12 22:57:18 · 9583 阅读 · 1 评论 -
一步一步跟我学习lucene(4)---lucene的中文分词器jcseg和IK Analyzer分词器及其使用说明
为什么要使用lucene中文分词器在lucene的开发过程中,我们常会遇到分词时中文识别的问题,lucene提供了lucene-analyzers-common-5.0.0.jar包来支持分词,但多的是对英国,法国,意大利等过语言的支持,因此我们需要引入中文分词的概念。各种中文分词器及其对比jcseg中文分词器jcseg是使用Java开发的一款开源的中文分词器, 使原创 2015-05-09 20:10:46 · 5960 阅读 · 3 评论 -
一步一步跟我学习lucene(1)---lucene的IndexWriter对象创建和索引策略的选择
lucene的索引构建原理,不同类型的FSDirectory和创建机制,lucene优点原创 2015-05-05 17:03:28 · 9786 阅读 · 1 评论 -
一步一步跟我学习lucene(3)---lucene的analysis相关和自定义分词器
lucene分词相关总结和自定义分词器已经停止词词典的维护,自定义分词原创 2015-05-08 00:00:33 · 5033 阅读 · 0 评论 -
一步一步跟我学习lucene(9)---lucene搜索之拼写检查和相似度查询提示(spellcheck)
suggest应用场景用户的输入行为是不确定的,而我们在写程序的时候总是想让用户按照指定的内容或指定格式的内容进行搜索,这里就要进行人工干预用户输入的搜索条件了;我们在用百度谷歌等搜索引擎的时候经常会看到按键放下的时候直接会提示用户是否想搜索某些相关的内容,恰好lucene在开发的时候想到了这一点,lucene提供的suggest包正是用来解决上述问题的。suggest包联想词相关介绍原创 2015-05-16 22:02:19 · 4966 阅读 · 0 评论