solr常用查询

一、查询参数说明

        再做solr查询的时候,solr提供了很多参数来扩展它自身的强大功能,比如一下常用参数:

        q      查询字符串,如果是查询所有:*:*,如果根据指定字段查询:Name:张三 AND Address:上海

        fq     过滤查询(filter query),作用在q查询符合结果中同时是fq查询符合的,如:q=Name:张&fq=CreateDate:[20080101 TO 20090101]

                查询Name是张,并且CreateDate是在2008年1月1日和2009年1月1日之间的数据。

        fl      指定返回哪些字段内容,用逗号或者空格分隔多个。索引显示那些field(*表示所有field,如果查询指定字段用逗号或者空格隔开,如:

                Name,SKU,ShortDescription或Name SKU ShortDescription)注:字段是严格区分大小写。

        start   返回第一条记录在完整找到结果中的偏移位置,0表示开始,一般用作分页

        rows   指定返回结果中最多有多少条记录,配合start来实现分页。

        sort     排序。格式:sort=<field name>+<desc|asc> [ ,<field name>+<desc|asc>]...。如:score desc,price asc 表示先sore降序再price升序,

                    默认是相关性降序。

        wt       指定输出格式(writer type),有xml、json、php、phps

        q.op    表示q中查询语句的各条件的逻辑操作AND(与)、OR(或)

        hl     是否高亮,如hl=true

        hl.fl    高亮field,如hl.fl=Name

        hl.snippets     默认是1

                                hl.simple.pre    高亮前面的格式

                                hl.simple.post    高亮后面的格式

         facet    是否启动统计

         facet.field    统计field


二、Solr运算符

        1、":"    指定字段查指定值,如果返回所有值:*:*

        2、"?"   表示单个任意字符的通配

        3、"*"    表示多个任意字符的通配(不能在检索的项开始使用 *  或者 ?  符号)

        4、"~"   表示模糊检索,如检索拼写类似于"roam"的项时,这样写:roam~ 将找到形如 froam 和roams 的词;roam~0.8,检索返回相似度在

              0.8以上记录。临近检索,如检索相隔10个单词的"apache"和"jakarta" ,"jakarta apache" ~10。

        5、"^" 控制相关度检索,如检索jakarta apache ,同时希望去让 jakarta 的相关度更加好,那么在其后加上"^" 符号和增加量,即jakarta ^4 apache

        6、布尔操作符AND、||、OR、&&,not、!、-(排除操作符不能单独与项使用构成查询)

        7、"+" 存在操作符,要求符号"+"后的项必须在文档相应的域中存在

        8、()   用于构成子查询

        9、[]   包含范围检索,如检索某段时间记录,包含头尾:date:[20080101 TO 20090101]

        10、{}   不包含范围检索,如检索某段时间记录,不包含头尾:date:{20080101 TO 20090101}

         11、/    转义操作符,特殊字符包括:+-&&||!(){}[]^"~*?:/

         注:+  -  表示对单个查询单元的修饰,and  or  not 是对两个或多个查询单元做交集或者差集还是取反的操作符号。

                  如:AB:china+AB:america 表示AB:china忽略不计,可有可无,必须满足第二个条件才是对的,而不是两条件都满足

                  如果是:AB:china AND AB:america,解析出来的结果是两条件都必须满足,即:+AB:china AND +AB:america 或

                  +AB:china + AB:america

                  总而言之,查询语法:修饰符 字段名:查询关键词 AND/OR/NOT 修饰符 字段名:查询关键词


三、Solr查询语法

        1、最普通的查询,如查询姓张的人:Name:张,如果是精准搜索相当于SQL语句中的LIKE搜索,需要加引号(""),如:Address:"北京"

        2、多条件查询,注:如果的针对单个字段进行搜索,可以用(Name:搜索条件+运算符(OR、AND、NOT)Name:搜索条件),如:

              模糊查询:Name:张 OR Name:李,单个字段多条件查询不建议这样写,一般建议是在单个字段里进行条件筛选,如:Name:张 OR 李,

              多个字段查询:Name:张 + Address:北京

        3、排序,比如根据姓名升序:Name asc ,降序:Name desc


  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值