Solr Facet引发思考 on the road

本文涉及的产品
注册配置 MSE Nacos/ZooKeeper,182元/月
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
简介: 下面的内容包括概念都是个人想到的,不专业或者不规范请知晓。理解意义就行。   1.为什么是facet 搜索与推荐本来是不分家的,搜索没有推荐就是存储了,有推荐的搜索才是真正的搜索,才体现搜索的“情感”(query解析、排序、页面展示)、搜索引擎的“难点”(用户意图理解、最有价值信息、最友好交互

下面的内容包括概念都是个人想到的,不专业或者不规范请知晓。理解意义就行。

 

1.为什么是facet
搜索与推荐本来是不分家的,搜索没有推荐就是存储了,有推荐的搜索才是真正的搜索,才体现搜索的“情感”(query解析、排序、页面展示)、搜索引擎的“难点”(用户意图理解、最有价值信息、最友好交互)。


但是搜索很多概念又是源于存储,例如facet就是源于数据库的groupby。单纯的groupby,搜索肯定顶不过数据库。但是搜索有个好处,就是查询条件的文本、区间、模糊有优势,就是获取结果id有优势。之后的facet统计在存储不见得好于数据库。


另外,对于千万级别的数据,从成本、快捷、维护、重用、准实时角度看,使用solrfacet无疑是首选。


使用时,或者是源数据直接进入索引、直接输出统计结果。或者是已经统计好了,只需输出结果。后者检索角色更浓,前者实时角色更浓。

 

2.facet相对hadoop hive优势

Facet对轻量级处理应该更有优势。表现在灵活性比较强。一份索引,可以随时、随地facet各种信息。数据重用,既可以用一般查询,也可以用统计输出,无需中间结果,按需获取。低成本,开源的solrlucene系统,轻量级,没有hadoophive那么重。

 

3.solr当前支持程度

Solr当前支持stored=true

文本域facet,以及数字域的区间facet,不支持数字类型的facet

Solr当前facet统计可以设置丰富的各种参数,基于遍历的,性能有瓶颈再大数据量上。性能的提升严重依赖cache的配置,但是jvm下垃圾回收又是问题。

4.扩展与优化


已经支持单层facet

Query=q&facet=on&facet.field=fieldA,fieldB


不支持双层或者混合facet

Query=q1,q2&facet=on&facet.field=fieldsA,fieldB


或者

Query=q1&facet=on&facet.field=fieldA Another
query=q2&facet=on&facet.field=field2

 


针对有规律的请求

Bean请求队列会,返回也队列化

  
Id
 
查询,不需要相关性计算,去得分

  
Rows
start 
都设为0,只获取facet信息

  
Sort=id asc 
 
自然顺序
只扫描单次的,filterquery可以不开启

相关文章
GitHub 上的超级 Python 游戏项目,不容错过!
今天分享一个超级牛的 GitHub 项目,是一个专门的基于 Pygame 开发小游戏的项目。该项目就开源在 G 站上,目前已经获得了 2.6K 的 Star 和 1.5K 的 Fork,可以说是超级牛掰了!
GitHub 上的超级 Python 游戏项目,不容错过!
|
Java 存储 Linux
分布式文件系统介绍与minio介绍与使用(附minio java client 使用)(三)
分布式文件系统介绍与minio介绍与使用(附minio java client 使用)
387 0
|
存储 C语言
【数据结构初阶】二、顺序表的实现
目录 一、线性表 二、顺序表 2.1 顺序表概念及结构 2.2 顺序表接口实现 2.2.1 顺序表初始化 2.2.2 顺序表的销毁 2.2.3 顺序表的打印 2.2.4 顺序表增加数据(插入,头插、尾插) 2.2.5 顺序表删除数据(删除,头删、尾删) 2.2.6 顺序表查找数据 2.2.7 顺序表修改数据 三、顺序表完整代码(C语言) 3.1 SeqList.h 3.2 SeqList.c 3.3 Test.c 四、顺序表的优缺点
5820 0
【数据结构初阶】二、顺序表的实现
|
安全 前端开发 Java
Springboot Security and JWT 快速入门实战(上)
Springboot Security and JWT 快速入门实战
200 0
Springboot Security and JWT 快速入门实战(上)
|
3天前
|
SpringCloudAlibaba 负载均衡 Dubbo
微服务架构下Feign和Dubbo的性能大比拼,到底鹿死谁手?
本文对比分析了SpringCloudAlibaba框架下Feign与Dubbo的服务调用性能及差异。Feign基于HTTP协议,使用简单,适合轻量级微服务架构;Dubbo采用RPC通信,性能更优,支持丰富的服务治理功能。通过实际测试,Dubbo在调用性能、负载均衡和服务发现方面表现更出色。两者各有适用场景,可根据项目需求灵活选择。
347 123
微服务架构下Feign和Dubbo的性能大比拼,到底鹿死谁手?
|
2天前
|
Java 数据库 数据安全/隐私保护
Spring 微服务和多租户:处理多个客户端
本文介绍了如何在 Spring Boot 微服务架构中实现多租户。多租户允许单个应用实例为多个客户提供独立服务,尤其适用于 SaaS 应用。文章探讨了多租户的类型、优势与挑战,并详细说明了如何通过 Spring Boot 的灵活配置实现租户隔离、动态租户管理及数据源路由,同时确保数据安全与系统可扩展性。结合微服务的优势,开发者可以构建高效、可维护的多租户系统。
180 127