内容纲要
Solr Admin的查询参数
1、solr admin控制台的查询界面
2、常用查询参数
- 参数q(必须)
patient_name:华梓程
- 排序参数 sort
默认按相关性(score)降序
单个条件:sort = score desc|asc 排序字段 降序|升序
多个条件:sort = doctor_order asc, time_asc_order asc, time_desc_order desc 先按doctor_order进行升序排,在按time_asc_order升序排,在按time_desc_order desc 降序排
- 分页查询参数 start
在查询结果中的偏移记录,0开始,一般分页使用 - 分页查询参数 rows
指定返回结果的数据,配合start使用
- 结果类型查询参数 wt
类型:xml,json,python,ruby,php,csv
- 过滤查询参数 fq
在q查询结果中过滤出满足fq条件的数据,过滤的结果由solr进行缓存,对提高复杂查询速度非常有用
- 过滤查询参数 fl
指定返回结果中的返回的字段field,默认*所有字段,score返回得分,
多个字段用逗号或空格分隔
- 默认查询参数 df
指定那个类型的处理器处理数据,例:/select,可以自定义搜索器,在通过df指定
- 缩进参数 indent
返回结果是否缩进,参数可以设置indent=true|false,控制台通过勾选
一般只有在返回结果为php,json,ruby中才使用
- debugQuery 参数
设置返回结果是否显示Debug信息
- 高亮参数hight
hl.fl:需要高亮的字段 多个可以通过逗号分隔,并且字段必须stored
hl.simple.pre
hl.simple.post
高亮的一些参数: - 统计参数facet
facet就像sql语句中的group一样,是对某一个字段进行group并count,即能够按照Facet的字段进行分组并统计
facet.query :true 开启分面
facet.field : 需要统计的字段
facet.prefix : 表示字段值的前缀.比如”facet.field=cpu&facet.prefix=Intel”,那么对cpu字段进行Facet查询,返回的cpu都是以”Intel”开头的,”AMD”开头的cpu型号将不会被统计在内
未展示的一些参数
facet.limit: 限制facet结果的数量,默认100,如果未负数,则不限制
facet.sort:表示facet结果已那种顺序返回
facet.mincount:Facet字段值的最小count,默认为0
date_facet
可以对某个时间段内的结果进行统计
facet.date:字段名
facet.date.start:开始时间
facet.date.end:结束时间
facet.date.gap:时间间隔
使用Date Facet时,字段名,起始时间,结束时间,时间间隔这4个参数都必须提供
- dismax查询解析器
查询解析器旨在处理用户输入的简单短语),并根据每个字段的重要性使用不同的加权。能够根据特定于每个用例的规则影响分数 - edismax查询解析器
3、solr的运算符
3.1不包含符号 -
例如不包含患者姓名: -patient_name:华梓程
3.2通配符号 *
表示任意字符的通配
[],{} 范围查询符号,前者包含,后者不包含
field:[ TO 15] 值小于等于15
field:[15 TO ] 值大于等于15
field:[ TO ] 所有
field:{1 TO 15] 大于1小于等于15
field:[1 TO 15} 大于等于1小于15
3.3指定字段符号 :
用户指定字段的值
name:wy,time:'2019-02-17T00:00:00Z'
:表示任意字段的任意数据,即所有值
3.4布尔符号 :
AND && 表示交集
OR || 表示并集
3.5符号 () :
用于构成子查询
fq:business_type:1 AND (id:38 OR id:40)
通配符那一段里面具体的使用场景是不是*丢失了,没有写进去?