个人简介

Echo Blog


江湖无名 安心练剑
  • Lucene in action-01-lucene 是什么?
    初识Lucene Lucene的简单易用性是它广受欢迎和成功的关键因素之一。Lucene是一个设计得非常优秀的软件, 因为它向用户提供了简单易用的索引和搜索API, 并屏蔽了复杂的实现过程。因此, 当开始使用Lucene时, 不必很深入地了解它的信息索引及检索的内部工作原理。而且由于Lucene API的简单直接, 你只需要学会如何使用它提供的类就可以了。在本章中, 我们通过一些现成的代码...
    2022-01-10 13:01:55 | Lucene
  • Lucene in action-00-overview 概览
    简介 官方地址 源码下载地址:源码 Lucene Lucene 是开源世界中的一颗宝石——一个高度可扩展的快速搜索引擎。 它提供了性能并且非常易于使用。 Lucene in Action 是 Lucene 的权威指南。 它描述了如何索引您的数据,包括您肯定需要知道的类型,例如 MS Word、PDF、HTML 和 XML。 它向您介绍搜索、排序、过滤和突出显示搜索结果。 关...
    2022-01-10 13:01:55 | Lucene
  • Lucene-22-lucene增量更新和NRT(near-real-time)Query近实时查询
    增量更新的必要性 有时候我们创建完索引之后,数据源可能有更新的内容,而我们又想像数据库那样能直接体现在查询中,这里就是我们所说的增量索引。 对于这样的需求我们怎么来实现呢? lucene内部是没有提供这种增量索引的实现的; 这里我们一般可能会想到,将之前的索引全部删除,然后进行索引的重建。对于这种做法,如果数据源的条数不是特别大的情况下倒还可以,如果数据源的条数特别大的话,势必会造成...
    2022-01-10 13:01:55 | Lucene
  • Lucene-21-lucene索引时join和查询时join使用示例
    join 了解sql的朋友都知道,我们在查询的时候可以采用join查询,即对有一定关联关系的对象进行联合查询来对多维的数据进行整理。 这个联合查询的方式挺方便的,跟我们现实生活中的托人找关系类似,我们想要完成一件事,先找自己的熟人,然后通过熟人在一次找到其他,最终通过这种手段找到想要联系到的人。 有点类似于”世间万物皆有联系“的感觉。 lucene的join包提供了索引时join和查...
    2022-01-10 13:01:55 | Lucene
  • Lucene-20-expressions 表达式
    expressions 有时候我们在做lucene的结果展示的时候可能需要对多个列的内容进行计算,根据多个field对应的值做数值方面的运算。 lucene自4.6版本起,提供了用于运算的expression模块; expression分为两部分: org.apache.lucene.expressions:提供了字段绑定和相关的表达式参数传递的功能; org.apache.luc...
    2022-01-10 13:01:55 | Lucene
  • Lucene-18-facet lucene搜索之facet查询原理和facet查询实例
    Facet说明 我们在浏览网站的时候,经常会遇到按某一类条件查询的情况,这种情况尤以电商网站最多,以天猫商城为例,我们选择某一个品牌,系统会将该品牌对应的商品展示出来,效果图如下: 如上图,我们关注的是品牌,选购热点等方面,对于类似的功能我们用lucene的term查询当然可以,但是在数据量特别大的情况下还用普通查询来实现显然会因为FSDirectory.open等耗时的操作造成查询...
    2022-01-10 13:01:55 | Lucene
  • Lucene-17-sorted 排序
    自定义排序说明 我们在做lucene搜索的时候,可能会需要排序功能,虽然lucene内置了多种类型的排序,但是如果在需要先进行某些值的运算然后在排序的时候就有点显得无能为力了; 要做自定义查询,我们就要研究lucene已经实现的排序功能,lucene的所有排序都是要继承FieldComparator,然后重写内部实现,这里以IntComparator为例子来查看其实现; IntComp...
    2022-01-10 13:01:55 | Lucene
  • Lucene-16-grouping 分组
    grouping介绍 我们在做lucene搜索的时候,可能会用到对某个条件的数据进行统计,比如统计有多少个省份,在sql查询中我们可以用distinct来完成类似的功能,也可以用group by来对查询的列进行分组查询。 在lucene中我们实现类似的功能怎么做呢? 比较费时的做法时我们查询出所有的结果,然后对结果里边的省份对应的field查询出来,往set里边放,显然这种做法效率低,...
    2022-01-10 13:01:55 | Lucene