Solr 查询语法
来源:互联网 发布:淘宝上的消字灵管用吗 编辑:程序博客网 时间:2024/06/03 06:38
摘要: 默认的Solr查询语法扩展了Lucene的语法,其目的也就是检索索引。
basic query
Solr的查询用到了参数q
,标准的查询语法就想下面这样: http://localhost:8983/solr/query?q=test
可以使用debug=query
来分析查询过程: http://localhost:8983/solr/query?q=test&debug=query
{ "responseHeader":{ "status":0, "QTime":0, "params":{ "q":"hello", "debug":"query"}}, "response": {"numFound":0,"start":0,"docs":[] }, "debug":{ "rawquerystring":"hello", "querystring":"hello", "parsedquery":"text:hello", "parsedquery_toString":"text:hello", "QParser":"LuceneQParser"}}
一般来说,response会包含匹配程度最好的文档,但是上面例子中,没有文档满足这一查询。
在debug信息中,可以看到是如何解析查询语句的:查询的主体是hello
,查询的字段是text
。
一般来说,查询会指定在哪个字段查询,语法:
title:China
表示的意思是查询title字段包含China
信息。
phrase query
短语查询是需要满足多个查询词组。
text:"Air China"
这样的话,查询到的结果必须包含Air China
这样的词组,如果标题中只有Air Liquide China
是不会匹配到的。
proximity query
临近查询有点像短语查询的扩充,允许干扰项出现在所查询的词组之间。
text:"bank of china"~2
如果这样的话,不仅可以匹配到Bank of China
这样的词组,还会匹配central bank system of china
、bank institution of china
这样的短语。
Boolean query
布尔查询可以包含多条查询语句,可以使查询条件是可选的、必须的、禁止的。
solr search
默认的查询操作符是OR
,也就是说是可选的。那么text中包含solr或包含search都满足查询语句。
可以使用一些操作符来实现布尔查询,例如+
、AND
表示必须的,-
、NOT
表示禁止的,OR
表示可选的。
+solr +search example -test
可以认为返回的结果必须包含solr
和search
,不能出现test
,有没有exapmle
无所谓。
下面这种写法表达的是相同的意思: solr AND search OR exapmle NOT test
boosted query
提升查询需要用到操作符^
,该查询不会影响到查询结果的数量,只会改变相关性,影响结果的排序。
text:solr^10 text:rockstext:(solr^10 rocks)(inStock:true AND text:solr)^123.45 text:hi
Range query
范围查询需要选定一定范围的文档,查询可以作用于数字类型、日期类型、字符串类型。
age:[18 TO 30] // 匹配 age 在18-30 之间(包含 18 和 30 ) age:[18 TO 30} // 匹配 age 在18-30 之间(包含 18 不含 30 ) age:[65 TO *] // 匹配 age 大于 65 age:[* TO *] // 匹配所有含有age字段的文档
constant score query
常数得分查询有点像布尔查询,只是该查询需要左右的文档有相同的得分,查询需要用到操作符^=
。
+color:blue^=1 text:shoes
filter query
过滤查询需要用到fiter chche
,返回的结果都来自缓存,但是由于score 不会缓存,所以满足查询条件的文档得分都是0,不过该查询请求响应会很快(来自缓存)。
description:HDTV OR filter(+promotion:tv +promotion_date:[NOW/DAY-7DAYS TO NOW/DAY+1DAY])
这里用到了filter()
语法。
query comments
可以使用像C语言一样的注释语法给solr的查询语法添加注释。语法如下:
/* comments */
一个例子: description:HDTV /* TODO: +promotion:tv +promotion_date:[NOW/DAY-7DAYS TO NOW/DAY+1DAY] */
- Solr-----9、Solr查询语法
- solr查询语法
- Solr查询语法总结
- solr查询语法
- solr查询语法
- solr查询语法
- Apache Solr查询语法
- solr查询语法
- Solr查询语法总结
- solr查询语法
- solr查询语法
- solr查询语法
- solr查询语法
- Apache Solr查询语法
- Solr -- 查询语法/参数
- solr客户端查询语法
- solr查询语法
- solr查询语法
- ERDAS2015RGB颜色分类法水体提取
- 斐波那契数列的递归与非递归实现
- USB OTG 插入检测识别
- 树莓派笔记(五)--修改下载源
- MySQL表共享读锁(Table Read Lock)和表独占写锁(Table Write Lock)
- Solr 查询语法
- 4.2LOCAL AREA NETWORKS
- leetcode 3 golang实现 Longest Substring Without Repeating Characters
- 在网页里动态加载js
- java编程使用EasyUI进行分页查询前后端代码编写
- 统计自然语言处理学习(概论)
- c++语言内存四区的概念:栈区,堆区,全局区,代码区
- Implementation of card reversal
- Markdown学习札记