solr 重要的知识点
1 solr 查询参数说明
常用
) q - 查询字符串,必须的。
) fl - 指定返回那些字段内容,用逗号或空格分隔多个。
) start - 返回第一条记录在完整找到结果中的偏移位置, 开始,一般分页用。
) rows - 指定返回结果最多有多少条记录,配合 start 来实现分页。
) sort - 排序,格式: sort=<field name>+<desc|asc>[,<field name>+<desc|asc>]… 。示例:( inStock desc, price asc)表示先 “inStock” 降序, 再 “price” 升序,默认是相关性降序。注:排序字段 只能针对数值型如: int,dobuble 等…
) wt - (writer type)指定输出格式,可以有 xml, json, php, phps, 后面 solr 1.3 增加的,要用通知我们,因为默认没有打开。
) fq - ( filter query)过虑查询,作用:在 q 查询符合结果中同时是 fq 查询符合的,例如:q=mm&fq=date_time:[ TO ],找关键字 mm,并且 date_time 是 到 之间的。官方文档:http://wiki.apache.org/solr/CommonQueryParameters#head-6522ef80f22d0e50d2f12ec487758577506d6002
2) 不常用
) q.op - 覆盖 schema.xml 的 defaultOperator(有空格时用"AND"还是用"OR"操作逻辑),一般默认指定
) df - 默认的查询字段,一般默认指定
) qt - ( query type)指定那个类型来处理查询请求,一般不用指定,默认是 standard。
) 其它
) indent - 返回的结果是否缩进,默认关闭,用 indent=true|on 开启,一般调试 json,php,phps,ruby 输出才有必
要用这个参数。
) version - 查询语法的版本,建议不使用它,由服务器指定默认值。
2 solr检索运算符
. “ :” 指定字段查指定值,如返回所有值*:*
. “ ?” 表示单个任意字符的通配
. “ *” 表示多个任意字符的通配(不能在检索的项开始使用*或者?符号)
.“ ~” 表示模糊检索,如检索拼写类似于” roam”的项这样写: roam~将找到形如foam和roams的单词; roam~0.8,检索返回相似度在0.8以上的记录。
. 邻近检索,如检索相隔10个单词的” apache”和” jakarta”,” jakarta apache” ~
. “ ^” 控制相关度检索,如检索jakarta apache,同时希望去让” jakarta”的相关度更加好,那么在其后加上”^”符号和增量值,即jakarta^ apache
. 布尔操作符AND、 ||
. 布尔操作符OR、 &&
. 布尔操作符NOT、 !、 - (排除操作符不能单独与项使用构成查询)
.“ +” 存在操作符,要求符号” +”后的项必须在文档相应的域中存在
. ( ) 用于构成子查询
. [] 包含范围检索,如检索某时间段记录,包含头尾, date:[ TO ]
. {} 不包含范围检索,如检索某时间段记录,不包含头尾 date:{ TO } 注:范围检索字段只适用于:String,int,dobule,date不能用于long型的字段
. \ 转义操作符,特殊字符包括+ - && || ! ( ) { } [ ] ^ ” ~ * ? : \
3 字段增加权重
在很多时候,我们可能会需要增加某一个字段的权重,以合理的显示搜索结果。
例如:有一个schma,有三个字段: chapterId, title, content. 我们希望某一个关键字如果在title中匹配了,就要优先显示,而在content中匹配了,就放在搜索结果的后面。当然,如果两者同时匹配当然没什么好说的了。看看solr中如何做到吧。
title:(test1 test2)^ content:(test1 test2)
给title字段增加权重,优先匹配,关于^后面的数字4,经过我测试,最佳值应该是有n个字段就写成n+,当然希望大家能更好的去测试!
4 facet 字段分组
http://wiki.apache.org/solr/SimpleFacetParameters
.facet.field 分组的字段 .facet.prefix 表示Facet字段前缀 .facet.limit Facet字段返回条数 .facet.offset 开始条数,偏移量,它与facet.limit配合使用可以达到分页的效果 .facet.mincount Facet字段最小count,默认为0 .facet.missing 如果为on或true,那么将统计那些Facet字段值为null的记录 .facet.method 取值为enum或fc,默认为fc, fc表示Field Cache .facet.enum.cache.minDf 当facet.method=enum时,参数起作用,文档内出现某个关键字的最少次数
4.1 JSON Facet API (solr 5.1)
http://yonik.com/json-facet-api/
Count Distinct in Solr (实现对某个字段进行Distinct 的统计)
$ curl http://localhost:8983/solr/techproducts/query -d '
q=*:*&
json.facet={
x : "unique(manu_exact)" // manu_exact is the manufacturer indexed as a single string
}
solr 重要的知识点的更多相关文章
- 【solr基础教程之一】Solr相关知识点串讲
Solr是Apache Lucene的一个子项目.Lucene为全文搜索功能提供了完备的API,但它只作为一个API库存在,而不能直接用于搜索.因此,Solr基于Lucene构建了一个完 ...
- 【solr基础教程之中的一个】Solr相关知识点串讲
Solr是Apache Lucene的一个子项目.Lucene为全文搜索功能提供了完备的API.但它仅仅作为一个API库存在.而不能直接用于搜索. 因此,Solr基于Lucene构建了一 ...
- Solr的知识点学习
Solr单机版的安装与使用 1.Solr单机版的安装与使用,简单写了如何进行Solr的安装与使用.那么很多细节性问题,这里进行简单的介绍.我使用的是Solr与Tomcat整合配置. 2.什么是Solr ...
- Solr知识点摘录
1.Solr和Lucene区别: 2.Solr的下载与安装 3. 4. 5. 6.Solr基础 7. 8.Solr索引操作 9. 10.
- Nutch搜索引擎(第2期)_ Solr简介及安装
1.Solr简介 Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器.同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置.可扩展并对查询性能进行了优化 ...
- Solr查询详解
前言:上节是关于Solr的开发准备工作:.NET开发过程中的全文索引使用技巧之Solr(http://www.cnblogs.com/johnwood/p/3447242.html) 这节重点是讲So ...
- 指尖上的电商---(2)Solr全文搜索引擎的准备工作
Solr是一个基于Lucene的全文搜索引擎.提供了更丰富的搜索语言.更灵活的配置.更高的查询效率. 一句话.与Lucene相比.有过之而无不及.这一节里, 主要谈论两个知识点:Jdk的安装和Tomc ...
- Solr集群、KI分词、项目实战
Solr是一个高性能,采用Java开发,基于Lucene的全文搜索服务器.同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置.可扩展并对查询性能进行了优化,并且提供了一个完善 ...
- Nutch搜索引擎Solr简介及安装
Nutch搜索引擎(第2期)_ Solr简介及安装 1.Solr简介 Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器.同时对其进行了扩展,提供了比Lucene更为丰富的 ...
随机推荐
- 线性滤波器(linear filter)与非线性滤波器(non-linear filter)
1. 均值滤波器与中值滤波器 image processing - Difference between linear and non linear filter - Signal Processin ...
- 新浪微博Python3客户端接口OAuth2
Keyword: Python3 Oauth2 新浪微博 本接口基于廖雪峰的weibo python SDK修改完成,其sdk为新浪官方所推荐,原作者是用python2写的 经过一些修改,这里提供基于 ...
- mongodb与SQL对应关系表
1. select查询 mongodb使用find要么findOne要查询: find批量查询. findOne查询记录. find有两个参数: 查询条件. 第二个查询返回的字段. 以下是mongod ...
- WPF: FishEyePanel/FanPanel - 自定义Panel
原文:WPF: FishEyePanel/FanPanel - 自定义Panel 原文来自CodeProject,主要介绍如何创建自定义的Panel,如同Grid和StackPanel. 1) Int ...
- Symfony——如何使用Assetic实现资源管理
1. 安装和启用 从Symfony 2.8开始,Assetic不再包含在Symfony Standard Edition中.在使用其任何功能之前,请在您的项目中安装执行此控制台命令的 AsseticB ...
- VS中实时获取SVN的版本号并写入到AssemblyInfo.cs中(C#)
原文:VS中实时获取SVN的版本号并写入到AssemblyInfo.cs中(C#) 在开发项目时,需要知道当前发布的到底是哪个版本,比较好的方式就是获取SVN的版本来作为项目的版本.项目版本一般由主版 ...
- Spring框架:Spring安全
在传统的Web发展,安全码被分散在各个模块,这样方便管理,有时你可能会错过一个地方导致安全漏洞.为了解决这个问题,它的发明Spring Security.它是业务逻辑的有关安全代码的作用全部转移到一个 ...
- 数据源Source 目标Target
数据源Source-目标Target 数据源实现INotifyPropertyChanged接口,实现“通知”目标实现依赖属性 举例 后台的数据源,实现INotifyPropertyChanged接口 ...
- wpf的webbrowser与javascript交互
JS调用C#代码 HTML代码: <button onclick="window.external.Test('called from script code')"> ...
- C# 设置IP地址及设置自动获取IP
原文:C# 设置IP地址及设置自动获取IP </pre><pre name="code" class="csharp">1.添加引用&q ...