solr查询方法 (solr查询条件)

前面我们安装了solr,也从数据库以及pdf中索引了数据。

这里我们介绍怎么使用这些数据。

1、查询,怎么查询,能够实现那些功能

2、分组统计

1、http://127.0.0.1:8983/solr/product/select?indent=on&q=*:*&wt=json 普通查询

solr查询方法,solr根据id更新数据

高级查询

  1. 查询指定的字段 "mfs:****"

  2. 减法。第一个关键字的查询结果中不包含第二个关键字 “mfs:Amphenol -MAX2057ETX”

  3. 字符距离,相似内容查询 mfs:AmphenoX 查询不出来结果, mfs:AmphenoX~ 就可以。意思就是在mfs:AmphenoX 这个条件里有一个字符不一样的结果都是符合条件的。

  4. 权重,不同的字段设置不同的权重,当匹配的结果就可以按照轻重显示。查询max默认的权重一样,那么描述里面有完全匹配的就会排在上面。如果加上权重,pn的权重最高那么pn匹配到的就在上面。dismax勾选 qf = pn^100.0 mfs^80.0 description^1.0

solr查询方法,solr根据id更新数据

"mfs:****"

solr查询方法,solr根据id更新数据

mfs:Amphenol -MAX2057ETX

solr查询方法,solr根据id更新数据

mfs:AmphenoX

solr查询方法,solr根据id更新数据

mfs:AmphenoX~

solr查询方法,solr根据id更新数据

solr查询方法,solr根据id更新数据

dismax勾选 qf = pn^100.0 mfs^80.0 description^1.0

查询基本上就这么多,剩下的基本上都是内容的事情,1、停用词整理 2、同义词收集

======================

分组统计。

1、开启facet=on或者facet=ture 在admin ui上勾选facet即可

2、设置分组的字段 facet.field=mfs ok

基本的分组就可以了

在solr返回的结果中会多出来下面的数据。就是mfs对应下面匹配出来的产品数量。这个就是商城搜索结果页面上面的过滤条件。

solr查询方法,solr根据id更新数据

3、按价格区间分组 后续单独讲述 TODO

4、排序 sort - 排序,格式:sort=<field name>+<desc|asc>[,<field name>+<desc|asc>] 这个容易理解

5、wt - (writer type)指定输出格式,可以有 xml, json, php, phps。

solr的查询语法。

  1. “:” 指定字段查指定值,如返回所有值 pn:MAX

  2. “?” 表示单个任意字符的通配 MA? =MAX

  3. “*” 表示多个任意字符的通配

  4. “~”²表示模糊检索,MAX~1 可以匹配商 MAB MXX 另外 max~2 ,匹配上 MBB MCC 。

下面不常用,先收录

  1. “^”²控制相关度检索,如检索jakarta apache,同时希望去让”jakarta”的相关度更加好,那么在其后加上”^”符号和增量值,即jakarta^4 apache

solr查询方法,solr根据id更新数据

  1. 布尔操作符AND、||²

  2. 布尔操作符OR、²&&

  3. 布尔操作符NOT、!、-²(排除操作符不能单独与项使用构成查询)

  4. “+” 存在操作符,要求符号”+”后的项必须在文档相应的域中存在²

  5. ( ) 用于构成子查询²

  6. ² [] 包含范围检索,如检索某时间段记录,包含头尾,date:[200707 TO 200710]

  7. {}²不包含范围检索,如检索某时间段记录,不包含头尾 date:{200707 TO 200710}

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

  9. 非空数据的查询 比如:fq=fcode:[’’ TO *] 查询fcode非空的数据

  10. 取反实例:fq=!fstate:1