-
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
-
Lucene-15-highlighter 语法高亮
highlighter介绍
我们在做查询的时候,希望对我们自己的搜索结果与搜索内容相近的地方进行着重显示。
搜索引擎展示的结果中对用户的输入信息进行了配色方面的处理,这种区分正常文本和输入内容的效果即是高亮显示;
这样做的好处:
视觉上让人便于查找有搜索对应的文本块;
界面展示更友好;
lucene提供了highlighter插件来体现类...
2022-01-10 13:01:55 |
Lucene
-
Lucene-14-suggest lucene 搜索之联想词提示之 suggest 原理和应用
InputIterator说明
联想词
lucene的联想词是在org.apache.lucene.search.suggest包下边,提供了自动补全或者联想提示功能的支持。
InputIterator 是一个支持枚举term,weight,payload三元组的供suggester使用的接口,目前仅支持AnalyzingSuggester,FuzzySuggester andAnal...
2022-01-10 13:01:55 |
Lucene
-
Lucene-13-suggest lucene 搜索之拼写检查和相似度查询提示 spellcheck
suggest应用场景
用户的输入行为是不确定的,而我们在写程序的时候总是想让用户按照指定的内容或指定格式的内容进行搜索,这里就要进行人工干预用户输入的搜索条件了;
我们在用百度谷歌等搜索引擎的时候经常会看到按键放下的时候直接会提示用户是否想搜索某些相关的内容,恰好lucene在开发的时候想到了这一点,lucene提供的suggest包正是用来解决上述问题的。
包介绍
suggest...
2022-01-10 13:01:55 |
Lucene