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更为丰富的 ...
随机推荐
- 像职业选手样编码:地道Python
Code Like a Pythonista: Idiomatic Python David Goodger goodger@python.org http://python.net/~goodger ...
- QT中窗口刷新事件的学习总结(viewport, paintEvent, repaint, update, erase, updatesEnabled)
一.主要理解一下几个方法和属性: 1.QWidget * QScrollView::viewport () const 2.void QWidget::paintEvent ( QPaintEvent ...
- Linux性能测试 top命令
原文地址:http://www.cnblogs.com/txw1958/archive/2012/07/25/linux-top-command.html top命令是Linux下常用的性能分析工具, ...
- 从零开始学习 asp.net core 2.1 web api 后端api基础框架(三)-创建Data Transfer Object
原文:从零开始学习 asp.net core 2.1 web api 后端api基础框架(三)-创建Data Transfer Object 版权声明:本文为博主原创文章,未经博主允许不得转载. ht ...
- python短信轰炸机版本smsbomb----------部分(post)
用一些用手机号注冊且须要发送验证码的站点的漏洞.能够向不论什么人的手机号发送短信,当然短信内容,我们无法控制.所以主要工作还是寻找这种站点.然后利用Fiddler或者HttpWatch分析请求.使用p ...
- 细数Windows 的那些小技巧!
以下整理自知乎 Windows 有哪些你相见恨晚的技巧?和Quora(英文版) What are some secret tricks you should know about Windows? 等 ...
- LINUX 蓝牙耳机的配置方法
由于经常使用SKYPE聊天打电话,一直觉得被拴在电脑前面不是很自由,终于在一个周末,一激动买了一个蓝牙耳机.经过几天的努力在Linux/Debian上用了起来,现在就把这个配置过程和大家分享. 第一 ...
- SQLServer 远程服务器不存在,未被指定为有效的发布服务器,或您无权查看可用的发布服务器
原文:SQLServer 远程服务器不存在,未被指定为有效的发布服务器,或您无权查看可用的发布服务器 创建了事务发布,在初始化时出现错误,查看相关代理信息如下: 日志读取器代理错误: 状态: 0,代码 ...
- Dynamic proxy (good-原创)
import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflec ...
- sql语句查询重复值
select * from user where name in (select name from user group by name having count(*)>1)