Solr Facet引发思考 on the road

简介: 假期重新把之前在新浪博客里面的文字梳理了下,搬到这里。

Facet引发的思考

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

 

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 查询,不需要相关性计算,去得分

  Rowsstart 都设为0,只获取facet信息

  Sort=id asc  自然顺序

只扫描单次的,filterquery可以不开启

目录
相关文章
|
Java 数据格式
Solr4.1 spatial solrj search demo
假期重新把之前在新浪博客里面的文字梳理了下,搬到这里。本文介绍solr的地理搜索Demo。
132 0
|
存储 NoSQL 索引
【Elastic Engineering】Elasticsearch:inverted index,doc_values 及 source
Elasticsearch:inverted index,doc_values 及 source
219 0
【Elastic Engineering】Elasticsearch:inverted index,doc_values 及 source
|
自然语言处理
ElasticSearch02_DSL特定语言、match、bool、term、terms、aggs、from、size、range、sort排序查询、高亮显示(二)
ElasticSearch02_DSL特定语言、match、bool、term、terms、aggs、from、size、range、sort排序查询、高亮显示(二)
118 0
ElasticSearch02_DSL特定语言、match、bool、term、terms、aggs、from、size、range、sort排序查询、高亮显示(七)
ElasticSearch02_DSL特定语言、match、bool、term、terms、aggs、from、size、range、sort排序查询、高亮显示(七)
104 0
ElasticSearch02_DSL特定语言、match、bool、term、terms、aggs、from、size、range、sort排序查询、高亮显示(九)
ElasticSearch02_DSL特定语言、match、bool、term、terms、aggs、from、size、range、sort排序查询、高亮显示(九)
103 0
ElasticSearch02_DSL特定语言、match、bool、term、terms、aggs、from、size、range、sort排序查询、高亮显示(九)
|
JSON 数据格式
ElasticSearch02_DSL特定语言、match、bool、term、terms、aggs、from、size、range、sort排序查询、高亮显示(一)
ElasticSearch02_DSL特定语言、match、bool、term、terms、aggs、from、size、range、sort排序查询、高亮显示(一)
ElasticSearch02_DSL特定语言、match、bool、term、terms、aggs、from、size、range、sort排序查询、高亮显示(四)
ElasticSearch02_DSL特定语言、match、bool、term、terms、aggs、from、size、range、sort排序查询、高亮显示(四)
127 0
ElasticSearch02_DSL特定语言、match、bool、term、terms、aggs、from、size、range、sort排序查询、高亮显示(五)
ElasticSearch02_DSL特定语言、match、bool、term、terms、aggs、from、size、range、sort排序查询、高亮显示(五)
|
自然语言处理
ElasticSearch02_DSL特定语言、match、bool、term、terms、aggs、from、size、range、sort排序查询、高亮显示(三)
ElasticSearch02_DSL特定语言、match、bool、term、terms、aggs、from、size、range、sort排序查询、高亮显示(三)
ElasticSearch02_DSL特定语言、match、bool、term、terms、aggs、from、size、range、sort排序查询、高亮显示(八)
ElasticSearch02_DSL特定语言、match、bool、term、terms、aggs、from、size、range、sort排序查询、高亮显示(八)
107 0