Solr -- 查询语法/参数
1. 常用查询参数
参数 | 描述 |
---|---|
defType | 指定用于处理查询语句(参数q的内容)的查询解析器,eg:defType=lucene |
sort | 指定响应的排序方式:升序asc或降序desc.同时需要指定按哪个字段进行排序。eg: sort=price desc,score asc |
start | 指定显示查询结果的开始位置,默认是0 |
rows | 指定一次显示多少行查询结果,默认是10 |
fq | 指定用于对查询结果进行过滤的过滤器(也看作是一种query) eg: fq=price:[100 To *]&fq=setction:0 |
fl | 指定查询结果中返回的字段,该字段的stored=”true”或docValues=”true” ,eg:fl=id,title,product(price, popularity) |
debug | 指定查询结果中携带额外的调试信息:时间信息debug=timing,“explain”信息debug=results,所有调试信息debug=query |
explainOther | Allows clients to specify a Lucene query to identify a set of documents. If non-blank,the explain info of each document which matches this query, relative to the main query (specified by the q parameter) will be returned along with the rest of the debugging information. |
timeAllowed | 指定查询处理的时间,单位毫秒。如果查询在指定的时间未完成,则只返回部分信息 |
segmentTerminateEarly | Indicates that, if possible, Solr should stop collecting documents from each individual (sorted) segment once it can determine that any subsequent documents in that segment will not be candidates for the rows being returned. The default is false. |
omitHeader | 当设为true时,返回结果不包含头部信息(例如请求花费的时间等信息),默认是false |
wt | 执行响应的输出格式:xml或json等 |
logParamsList | 指定哪些参数需要写入log, eg:logParamsList=q,fq |
echoParams | 指定响应头部包含哪些参数,取值为none/all/explicit(默认值) |
2. 标准查询参数
参数 | 描述 |
---|---|
q | 使用标准查询语法定义的查询语句,必填 |
q.op | 查询表达式的默认操作符,取值AND或者OR |
df | 默认查找的字段 |
3. 标准查询操作符
参数 | 描述 |
---|---|
: | 指定要查找的字段,比如:title:“The Right Way” AND text:go |
? | 匹配单一字符,比如:te?t匹配test/text |
* | 匹配0或多个字符,比如:tes*匹配test/testing/tester |
~ | 基于编辑距离的模糊查询,比如:roam~匹配roams/foam/foams/roam. roam~1(指定距离必须是1)匹配roams/foam,但不会匹配foams |
~n | 邻近查询,查找相隔一定距离的单词,比如:”jakarta apache”~10(相隔10个单词) |
to | 范围查询,{}不包含边界,[]包含边界,比如:title:{Aida TO Carmen} |
^ | 加权因子,比如:jakarta^4 apache 查找结果中jakarta更相关 |
^= | 指定查询语句的score得分为常量,比如:(description:blue OR color:blue)^=1.0 text:shoes |
AND(&&) | 运算符两边的查询词同时出现 比如:”jakarta apache” AND “Apache Lucene” |
OR | 运算符两边的查询词至少一个出现, 默认运算符,比如 “jakarta apache” jakarta 等价于 “jakarta apache” OR jakarta |
NOT(!) | 运算符后面的查询词不出现,比如”jakarta apache” NOT “Apache Lucene” |
+ | 运算符后面的查询词出现(known as the “required” operator),比如+jakarta lucene查询必须包含jakarta,而lucene可以出现可不出现 |
- | 不能包含运算符后面的查询词 “jakarta apache” -“Apache Lucene” |
[] | 包含范围边界 |
{} | 不包含范围边界 |
4. 转义字符
+ - && || ! ( ) { } [ ] ^ " ~ * ? : /
这些字符在solr中具有特殊的含义,如果要使用这么字符本身含义,需要利用反斜杠进行转义,比如: \(1\+1\):2
- 1
- 2
- 3
5. 子查询语句
(jakarta OR apache) AND website 查询jakarta或apache出现,并且website必须出现 title:(+return +"pink panther") 查询title中包含return和“pink panther”
- 1
- 2
6. 查询语句中使用注释
solr的查询语句支持C语言格式的注释。
"jakarta apache" /* this is a comment in the middle of a normal query string */ OR jakarta
- 1
- 2
- 3
7. 时间和日期的表示
timestamp:[* TO NOW]
createdate:[1976-03-06T23:59:59.999Z TO *]
createdate:[1995-12-31T23:59:59.999Z TO 2007-03-06T00:00:00Z]
pubdate:[NOW-1YEAR/DAY TO NOW/DAY+1DAY]
createdate:[1976-03-06T23:59:59.999Z TO 1976-03-06T23:59:59.999Z+1YEAR]
createdate:[1976-03-06T23:59:59.999Z/YEAR TO 1976-03-06T23:59:59.999Z]
- 1
- 2
- 3
- 4
- 5
- 6
- 7
8. solr标准的查询解析与Lucene的查询解析的不同点如下:
- *号可以用在范围查询的开始或结束
field:[* TO 100] field值小于等于100
field:[100 TO *] field值大于等于100
field:[* TO *] 匹配包含field字段的所有文档 - 支持单独出现的否定查询
-inStock:false field值inStack是false
-field:[* TO *] 匹配field无值的所有文档 - 支持函数查询
val:myfield
val:”recip(rord(myfield),1,2,3)” - 支持多种类型的查询解析器
inStock:true OR {!dismax qf=’name manu’ v=’ipod’} - 支持过滤器缓存
inStock:true会被缓存并在以下三个查询中重用。
q=features:songs OR filter(inStock:true)
q=+manu:Apple +filter(inStock:true)
q=+manu:Apple & fq=inStock:true - 范围查询、前缀查询和通配符查询都可以指定文档的score是常量
9. 查询语句中的局部参数
solr支持在基本查询语句中加入局部参数,
比如可以在 q=solr rocks 中加入参数以修改操作符和默认的查找字段:
q={!q.op=AND df=title}solr rocks
语法规定如下:
(1)以{!开始
(2)后跟任意数量的用空格分隔的key=value对
(3)以}结束,后跟查询语法
Solr -- 查询语法/参数的更多相关文章
- Apache Solr查询语法(转)
查询参数 常用: q - 查询字符串,必须的. fl - 指定返回那些字段内容,用逗号或空格分隔多个. start - 返回第一条记录在完整找到结果中的偏移位置,0开始,一般分页用. rows - 指 ...
- Apache Solr查询语法
常用: q - 查询字符串,必须的. fl - 指定返回那些字段内容,用逗号或空格分隔多个. start - 返回第一条记录在完整找到结果中的偏移位置,0开始,一般分页用. rows - 指定返回结果 ...
- solr总结 第六部分:solr查询语法
1.基本查询语法 q:全文查询.schema.xml里面定义了如下两块.eg q=ibm即表示org_name或者org_weisite里面出现ibm的document都可以被匹配到.KeyWords ...
- Solr查询语法
基于solr版本:6.0.0 当配置好本地的环境之后,就访问http://localhost:8080/solr/index.html.或者是访问已经放在服务器上的solr环境,例如http://10 ...
- 7.Solr查询参数
一.基本查询 q 查询的关键字,此参数最为重要,例如,q=id:1,默认为q=*:*, fl (field list)指定返回哪些字段,用逗号或空格分隔,注意:字段区分大小写,例如,fl= id, ...
- Solr常用查询语法笔记
1.常用查询 q - 查询字符串,这个是必须的.如果查询所有*:* ,根据指定字段查询(Name:张三 AND Address:北京) fq - (filter query)过虑查询,作用:在q查询符 ...
- Solr查询详解
前言:上节是关于Solr的开发准备工作:.NET开发过程中的全文索引使用技巧之Solr(http://www.cnblogs.com/johnwood/p/3447242.html) 这节重点是讲So ...
- solr的查询语法、查询参数、检索运算符
转载自:http://martin3000.iteye.com/blog/1328931 1.查询语法 solr的一些查询语法 1.1. 首先假设我的数据里fields有:name, tel, add ...
- Solr学习总结(四)Solr查询参数
今天还是不会涉及到.Net和数据库操作,主要还是总结Solr 的查询参数,还是那句话,只有先明白了solr的基础内容和查询语法,后续学习solr 的C#和数据库操作,都是水到渠成的事.这里先列出sol ...
随机推荐
- 一次完整的HTTP事务是怎样一个过程
当我们在浏览器的地址栏输入 www.linux178.com,然后回车,回车这一瞬间到看到页面到底发生了什么呢? 以下过程仅是个人理解: 域名解析 --> 发起TCP的3次握手 --> 建 ...
- Java中的String和StringBuffer
在任何编程语言中,字符串都是我们编写程序时不可避免要用到的常用的数据类型之一. 对于Java初学者而言,当谈到String和StringBuffer的区别时,通常都会有些困惑. 而要弄清楚两者之间的区 ...
- idea配置echache.xml报错Cannot resolve file 'ehcache.xsd'
解决方法: 打开settings->languages&frameworks->schemas and dtds ,添加地址 http://ehcache.org/ehcache. ...
- CF 274D Lovely Matrix 拓扑排序,缩点 难度:2
http://codeforces.com/problemset/problem/274/D 这道题解题思路: 对每一行统计,以小值列作为弧尾,大值列作为弧头,(-1除外,不连弧),对得到的图做拓扑排 ...
- 【转】 linux的网络接口之扫盲
[转] linux的网络接口之扫盲 转自:http://blog.csdn.net/zhangxinrun/article/details/6820433 (1)网络接口的命名 这里并不存在一定的命名 ...
- IOS NSCharacterSet 去除NSString中的空格
去除 username中的空格,table newline,nextline 代码如下: NSCharacterSet *whitespace = [NSCharacterSet whitespac ...
- Word操作(基于word2013)【非编程类】
一.生成目录 1.word支持自动生成目录功能,生成地点为操作时光标的落点 2.生成方式:打开首选项,进入引用标签,如下图所示最左边即为目录选项. 一般有3个内置目录类型 a:手动目录,生成目录后只有 ...
- latex的使用
要写论文了,要用到latex,总算明白了一些,在ubuntu下安装好texlive和texmaker后,在终端测试,输入命令tex: 出现上面的图说明安装好了. 在texmaker下编写tex文档,保 ...
- HDU 2154:跳舞毯
跳舞毯 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
- [CF321E]Ciel and Gondolas&&[BZOJ5311]贞鱼
codeforces bzoj description 有\(n\)个人要坐\(k\)辆车.如果第\(i\)个人和第\(j\)个人同坐一辆车,就会产生\(w_{i,j}\)的代价. 求最小化代价.\( ...