Solr学习总结-Facet
返回查询集合中指定field的统计情况,例如找到city一样的文档数目:
加入文档
- <add>
- <doc>
- <field name="id">1</field>
- <field name="name">Company 1</field>
- <field name="city">New York</field>
- </doc>
- <doc>
- <field name="id">2</field>
- <field name="name">Company 2</field>
- <field name="city">New Orleans</field>
- </doc>
- <doc>
- <field name="id">3</field>
- <field name="name">Company 3</field>
- <field name="city">New York</field>
- </doc>
- </add>
查询:http://localhost:8983/solr/select?q=name:company&facet=true&facet.field=city&facet.mincount=1
结果:
- <lst name="facet_fields">
- <lst name="city">
- <int name="New York">2</int>
- <int name="New Orleans">1</int>
- </lst>
- </lst>
获得指定日期范围内的文档:添加的文档
- <add>
- <doc>
- <field name="id">1</field>
- <field name="title">Lucene or Solr ?</field>
- <field name="added">2010-12-06T12:12:12Z</field>
- </doc>
- <doc>
- <field name="id">2</field>
- <field name="title">My Solr and the rest of the world</field>
- <field name="added">2010-12-07T11:11:11Z</field>
- </doc>
- <doc>
- <field name="id">3</field>
- <field name="title">Solr recipes</field>
- <field name="added">2010-11-30T12:12:12Z</field>
- </doc>
- <doc>
- <field name="id">4</field>
- <field name="title">Solr cookbook</field>
- <field name="added">2010-11-29T12:12:12Z</field>
- </doc>
- </add>
查询语句:分别指定时间的field,开始时间和结束时间,gap指定时间的划分,结果显示时间区间的数目。
http://localhost:8983/solr/select?q=*:*&rows=0&facet=true&facet.date=added&facet.date.start=NOW/DAY-30DAYS&facet.date.end=NOW/DAY&facet.date.gap=+7DAY
结果:
- <int name="2010-11-08T00:00:00Z">0</int>
- <int name="2010-11-15T00:00:00Z">0</int>
- <int name="2010-11-22T00:00:00Z">0</int>
- <int name="2010-11-29T00:00:00Z">2</int>
- <int name="2010-12-06T00:00:00Z">2</int>
得到数值范围的数目,和时间范围一样:
http://localhost:8983/solr/select?q=*:*&rows=0&facet=true&facet.range=price&facet.range.start=0&facet.range.end=400&facet.range.gap=100
自定义区间,而不是连续区间的划分:
http://localhost:8983/solr/select?q=name:car&facet=true&facet.query=price:[10 TO 80]&facet.query=price:[90 TO 300]
移除过滤:
http://localhost:8983/solr/select?q=name:company&facet=true&fq={!tag=stateTag}state:"New York"&facet.field={!ex=stateTag}city&facet.field={!ex=stateTag}state
fq={!tag=stateTag}state:"New York":只显示state为"New York"的结果。
facet.field={!ex=stateTag}city:移除stateTag的过滤后,在结果集中,对city域进行统计。
命名facet结果集:
http://localhost:8983/solr/select?q=name:company&facet=true&fq={!tag=stateTag}state:Luiziana&facet.field={!key=stateFiltered}city&facet.field={!ex=stateTag key=stateUnfiltered}state
acet.field={!key=stateFiltered}city:命名city为stateFiltered,并按照前面的过滤
对facet结果集进行排序按照字典序排序,默认是按数量排序:
http://localhost:8983/solr/select?q=name:house&facet=true&facet.field=city&facet.sort=index
实现自动提示:前缀为so的都会显示,一般不需要分词
http://localhost:8983/solr/select?q=*:*&rows=0&facet=true&facet.field=title_autocomplete&facet.prefix=so
得到某一个域中不含某词的facet,也可以是不含某个域:
http://localhost:8983/solr/select?q=title:solr&facet=true&facet.query=!price:[* TO *]
指定结果集数目的统计facet:-1表示所有
http://localhost:8983/solr/select?q=title:solr&facet=true&facet.field=category&facet.limit=-1
指定不同域的facet的限制数目:一个没限制,一个限制10
http://localhost:8983/solr/select?q=name:car&facet=true&facet.field=category&facet.field=manufacturer&f.category.facet.limit=-1&f.manufacturer.facet.limit
Solr学习总结-Facet的更多相关文章
- Solr学习总结(六)SolrNet的高级用法(复杂查询,分页,高亮,Facet查询)
上一篇,讲到了SolrNet的基本用法及CURD,这个算是SolrNet 的入门知识介绍吧,昨天写完之后,有朋友评论说,这些感觉都被写烂了.没错,这些基本的用法,在网上百度,资料肯定一大堆,有一些写的 ...
- Solr学习总结(五)SolrNet的基本用法及CURD
上一篇已经讲到了Solr 查询的相关的参数.这里在讲讲C#是如何通过客户端请求和接受solr服务器的数据, 这里推荐使用SolrNet,主要是:SolrNet使用非常方便,而且用户众多,一直都在更新, ...
- Solr学习笔记之5、Component(组件)与Handler(处理器)学习
Solr学习笔记之5.Component(组件)与Handler(处理器)学习 一.搜索篇 拼写检查(spellCheck) 作用:用来检查用户输入的检索内容是否存在,如果不存在则给它提示出相近或相似 ...
- Solr学习之四-Solr配置说明之二
上一篇的配置说明主要是说明solrconfig.xml配置中的查询部分配置,在solr的功能中另外一个重要的功能是建索引,这是提供快速查询的核心. 按照Solr学习之一所述关于搜索引擎的原理中说明了建 ...
- Solr学习记录:Getting started
目录 Solr学习记录:Getting started 1.Solr Tutorial 2. A Quick Overview Solr学习记录:Getting started 本教程使用环境:jav ...
- solr学习笔记-入门
solr学习笔记 1.安装前准备 solr依赖java 8 运行环境,所以我们先安装java.如果没有java环境无法启动solr服务,并且会看到如下提示: [root@localhost solr- ...
- Solr高级查询Facet
一.什么是facet solr种以导航为目的的查询结果成为facet,在用户查询的结果上根据分类增加了count信息,然后用户根据count信息做进一步搜索. facet主要用于导航实现渐进式精确搜索 ...
- Solr学习笔记之3、Solr dataimport - 从SQLServer导入数据建立索引
Solr学习笔记之3.Solr导入SQLServer数据建立索引 一.下载MSSQLServer的JDBC驱动 下载:Microsoft JDBC Driver 4.0 for SQL Server ...
- Solr学习笔记之2、集成IK中文分词器
Solr学习笔记之2.集成IK中文分词器 一.下载IK中文分词器 IK中文分词器 此文IK版本:IK Analyer 2012-FF hotfix 1 完整分发包 二.在Solr中集成IK中文分词器 ...
- Solr学习笔记之1、环境搭建
Solr学习笔记之1.环境搭建 一.下载相关安装包 1.JDK 2.Tomcat 3.Solr 此文所用软件包版本如下: 操作系统:Win7 64位 JDK:jdk-7u25-windows-i586 ...
随机推荐
- springCloud allibaba 微服务引言
微服务篇: springcloud 常见组件有哪些 nacos 的服务注册表结构是怎样的 nacos 如何支撑阿里内部数十万服务注册压力 nacos 如何避免并发读写冲突问题 nacos 和eurek ...
- 函数防抖-TS实现
什么是函数防抖? 在事件被触发n秒后再执行回调,如果在这n秒内又被触发,则重新计时 实现很简单,大体就是设置一个变量来记录定时器,每次触发事件的时候就看定时器是否存在,如果存在清除一下,然后重新开启一 ...
- ES6中的Set数据结构
Set是ES6新推出的数据结构,Set结构里面的每个元素都是唯一的: 如何创建一个Set? // Set 构造函数接收一个数组进行初始化;如果什么都不传则创建一个空Set; var set = new ...
- Qml 实现仿前端的 Notification (悬浮出现页面上的通知消息)
[写在前面] 经常接触前端的朋友应该经常见到下面的控件: 在前端中一般称它为 Notification 或 Message,但本质是一种东西,即:悬浮弹出式的消息提醒框. 这种组件一般具有以下特点: ...
- Let's Encrypt Free SSL – Certify The Web
介绍 随着 Let's Encrypt 的普及. 现在为网站升级到 HTTPS 已经不需要付费了. Let's Encrypt 的 SSL 是免费的, 每 3 个月需要更新一次. 可以完全用 API ...
- t-io 学习笔记(一)
基础介绍理解篇 序:本文也是在t-io官网学习的基础上写的理解学习笔记:1.什么是t-io? t-io是基于JVM的网络编程框架,和netty属同类,所以netty能做的t-io都能做,考虑到 ...
- acme+cloudflare生成免费证书(自动续期)
acme DNSapi acme DNSapi的作用是在申请证书时使用dns交易,acme可以通过dnsapi在对应的dns管理平台提交对应的dns记录.玩过证书的朋友都知道,证书申请时有三种验证方式 ...
- CAS存在的问题及在Java中的解决方式
CAS 介绍 CAS 可以保证对共享变量操作的原子性 CAS全称Compare And Swap,比较与交换,是乐观锁的主要实现方式.CAS在不使用锁的情况下实现多线程之间的变量同步.Reentran ...
- Java日期时间API系列40-----中文语句中的时间语义识别(time NLP)代码实现分析
从上篇 Java日期时间API系列39-----中文语句中的时间语义识别(time NLP 输入一句话,能识别出话里的时间)原理分析 中得知解析的主要步骤分为三步: (1)加载正则文件 (2)解析中文 ...
- 7-11 leetcode 2619
请你编写一段代码实现一个数组方法,使任何数组都可以调用 array.last() 方法,这个方法将返回数组最后一个元素.如果数组中没有元素,则返回 -1 . ps:this 环境变量的使用 ,this ...