solr搜索语法
参数
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
操作符
参数 描述
: 指定要查找的字段,比如: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”
[] 包含范围边界
{} 不包含范围边界