作者:战斗民族就是干

转载请注明地址:http://www.cnblogs.com/prayers/p/8822417.html

Facet  

开门见山,facet解决的就是筛选,我是把它理解为一种聚合。

  例如,商品属性中的品牌名称。例如:搜索召回了100个sku,这100个sku里面包含在20个品牌里面,那我如何聚合出这20个品牌呢?solr给我们提供了强大的API,facet,基本用例如下

http://localhost:8080/solr/b2b/select?q=*:*&wt=json&indent=true&facet=true&facet.field=brandName

  这里需要注意的是:如果brandName配置了分词器,facet的结果是对域的域值分词后得到的每一个唯一的词进行分组统计。

  facet不仅仅可以支持单值域的分组统计,还支持多值域,文本域,嵌入式facet的统计。需要注意的是:在进行文本域的facet的时候大量的噪音词会影响你返回的结果,这时候需要对文本域配置停用词过滤器

  还有一种情况,比如说品牌名称,我既需要查询做分词处理,又需要进行facet统计。但是分词后facet的结果并不是我想要的,我想要的是不做分词处理的facet的结果。这个时候我们可以使用复制域CopyField,将品牌名称作为一个新域,并且是域的类型是StringFilter。copyField使用用例如下:  

<copyField  source="brandName"  dest="copyBrandName"  maxChars="30000" />

source:需要拷贝的域名称

dest:被拷贝的域名称

maxChars:限制复制的字符数

  单个域的facet用例如下  

http://localhost:8080/solr/b2b/select?q=*:*&wt=json&indent=true&facet=true&facet.field=brandName

  多个域的facet用例如下  

http://localhost:8080/solr/b2b/select?q=*:*&wt=json&indent=true&facet=true&facet.pivot=brandCode,brandName

  区间facet

http://localhost:8080/solr/b2b/select?q=*%3A*&wt=json&indent=true&facet=true&facet.range=price&facet.range.gap=10&facet.range.start=0&facet.range.end=10000

  facet.range:表示对那个域执行facet区间查询,facet.range.start表示区间的上限值,facet.range.end表示区间的下限值,facet.range.gap:参数按照每个区间分布多少个值进行自动区间划分

solr研磨之facet的更多相关文章

  1. Solr高级查询Facet

    一.什么是facet solr种以导航为目的的查询结果成为facet,在用户查询的结果上根据分类增加了count信息,然后用户根据count信息做进一步搜索. facet主要用于导航实现渐进式精确搜索 ...

  2. solr研磨之性能调优

    作者:战斗民族就是干  转载请注明地址:http://www.cnblogs.com/prayers/p/8982141.html 本篇文章我们来了解一下solr的性能方面的调优,分为Schema优化 ...

  3. solr参数之facet

    facet就像sql语句中的group一样,是对某一个字段进行group并count,即能够按照Facet的字段进行分组并统计. 一.基本使用: 必须属性:facet=true&facet.f ...

  4. solr特点二:Facet(1)

    一.   Facet 简介 Facet 是 solr 的高级搜索功能之一 , 可以给用户提供更友好的搜索体验 . 在搜索关键字的同时 , 能够按照 Facet 的字段进行分组并统计 . 二.   Fa ...

  5. solr特点二:Facet

    返回查询集合中指定field的统计情况,例如找到city一样的文档数目: 加入文档 <add> <doc> <field name="id">1 ...

  6. Solr的学习使用之(七)Solr高级查询facet、facet.pivot简介

    以下转载自:http://hongweiyi.com/2013/03/apache-solr-facet-introduction/ 1.什么是Faceted Search Facet['fæsɪt] ...

  7. solr研磨之游标分页

    普通分页 当需要深度分页的时候,比如查询第10000页数据,每页显示10条,意味着需要提取前10000 x 10 页的数据,并将这100000条数据缓存在内存中,然后在内存中进行排序.最后返回最后10 ...

  8. 电商指尖---(9).net发展Solr中间Facet特征

    上一节中我们演示了在SolrAdmin中使用Facet功能来进行分组统计.这一节我们看看如何使用.NET开发Solr中的Facet功能.在讲Facet功能的同一时候, 我们看下.Net中如何使用Sol ...

  9. 指尖上的电商---(8)Solr中Facet的使用方法

    在大型电子商务站点中,在商品列表页,我们都能够看到商品按分类,品牌,价格的分类显示,例如以下图,这些我们能够使用solr中的facet功能实现. facet的基本功能就是对搜索结果中的商品进行分类. ...

随机推荐

  1. 关于weak

    #define DECLARE_WEAK_SELF __typeof(&*self) __weak weakSelf = self #define DECLARE_STRONG_SELF __ ...

  2. JRE System Library [JavaSE-1.7](unbound)

    window > preferences > java > Install jars >如果没有jdk1.7 ,点击下面的search,会自动找到已经安装对jdk1.7,选择, ...

  3. 05 Activity生命周期

    生命周期:一个Activity从创建到销毁经过的全部方法 1.onCreate() 创建一个Activity的时候执行的方法 2.onStart()Activity可以被看见到时候无法交互(没有焦点) ...

  4. SDL2源代码分析2:窗口(SDL_Window)

    ===================================================== SDL源代码分析系列文章列表: SDL2源代码分析1:初始化(SDL_Init()) SDL ...

  5. Swift基础之OC文件调用Swift代码(在上次的基础上写的)

    前两天刚写过Swift调用OC,今天在原来的基础上,实现OC调用Swift. 首先,创建一个OneSwiftFile.swift文件,创建一个继承于NSObject的类(这个地方你可以自己选择继承的父 ...

  6. JUI/DWZ 分页 Servlet

    分页介绍 参考:官方用户手册中的"分页组件"         分页思路服务器返回当前页的数据,总条数,再由js来生成分页标签.分页是配合服务器端来处理的, 不是存js做的分页. 因 ...

  7. 我眼中的Linux设备树(三 属性)

    三 属性(property)device_type = "memory"就是一个属性,等号前边是属性,后边是值.节点是一个逻辑上相对独立的实体,属性是用来描述节点特性的,根据需要一 ...

  8. pycharm+django之小试牛刀

    准备好好学习一下python,就从django开始吧,顺带了解一下网站的开发.今天在windows上安装了python,django,以及酷炫吊的IDE--pycharm,学习资料主要是<the ...

  9. javascript之DOM编程增加附件

    在开始这个案例之前,需要学习一下有关于根据子关系节点获取标签的几个方法.罗列如下 /*通过关系(父子关系.兄弟关系)找标签.parentNode 获取当前元素的父节点.childNodes 获取当前元 ...

  10. 浅谈我为什么选择用Retrofit作为我的网络请求框架

    比较AsyncTask.Volley.Retrofit三者的请求时间 使用 单次请求 7个请求 25个请求 AsyncTask 941ms 4539ms 13957ms Volley 560ms 22 ...