陋室铭
永远也不要停下学习的脚步(大道至简至易)

posts - 2169,comments - 570,views - 413万

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的查询解析的不同点如下:

  1. *号可以用在范围查询的开始或结束
    field:[* TO 100]  field值小于等于100
    field:[100 TO *]  field值大于等于100
    field:[* TO *]    匹配包含field字段的所有文档
  2. 支持单独出现的否定查询
    -inStock:false   field值inStack是false
    -field:[* TO *]  匹配field无值的所有文档
  3. 支持函数查询
    val:myfield
    val:”recip(rord(myfield),1,2,3)”
  4. 支持多种类型的查询解析器
    inStock:true OR {!dismax qf=’name manu’ v=’ipod’}
  5. 支持过滤器缓存
    inStock:true会被缓存并在以下三个查询中重用。
    q=features:songs OR filter(inStock:true)
    q=+manu:Apple +filter(inStock:true)
    q=+manu:Apple & fq=inStock:true
  6. 范围查询、前缀查询和通配符查询都可以指定文档的score是常量

9. 查询语句中的局部参数

solr支持在基本查询语句中加入局部参数,
比如可以在 q=solr rocks 中加入参数以修改操作符和默认的查找字段:
q={!q.op=AND df=title}solr rocks
语法规定如下:
(1)以{!开始
(2)后跟任意数量的用空格分隔的key=value对
(3)以}结束,后跟查询语法
posted on   宏宇  阅读(431)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
历史上的今天:
2015-07-18 SQL Server 2008 数据库同步的两种方式 (发布、订阅)
2015-07-18 SQL Server 2008 数据库同步的两种方式 (发布、订阅)
2015-07-18 通过SQL Server 2008数据库复制实现数据库同步备份
2015-07-18 SQL Server 2008 R2数据库镜像部署图文教程
2015-07-18 SQL 2008提供几种数据同步方式
2014-07-18 web页面导出到Excel乱码解决
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示