前面我们安装了solr,也从数据库以及pdf中索引了数据。
这里我们介绍怎么使用这些数据。
1、查询,怎么查询,能够实现那些功能
2、分组统计
1、http://127.0.0.1:8983/solr/product/select?indent=on&q=*:*&wt=json 普通查询

高级查询
-
查询指定的字段 "mfs:****"
-
减法。第一个关键字的查询结果中不包含第二个关键字 “mfs:Amphenol -MAX2057ETX”
-
字符距离,相似内容查询 mfs:AmphenoX 查询不出来结果, mfs:AmphenoX~ 就可以。意思就是在mfs:AmphenoX 这个条件里有一个字符不一样的结果都是符合条件的。
-
权重,不同的字段设置不同的权重,当匹配的结果就可以按照轻重显示。查询max默认的权重一样,那么描述里面有完全匹配的就会排在上面。如果加上权重,pn的权重最高那么pn匹配到的就在上面。dismax勾选 qf = pn^100.0 mfs^80.0 description^1.0

"mfs:****"

mfs:Amphenol -MAX2057ETX

mfs:AmphenoX

mfs:AmphenoX~


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对应下面匹配出来的产品数量。这个就是商城搜索结果页面上面的过滤条件。

3、按价格区间分组 后续单独讲述 TODO
4、排序 sort - 排序,格式:sort=<field name>+<desc|asc>[,<field name>+<desc|asc>] 这个容易理解
5、wt - (writer type)指定输出格式,可以有 xml, json, php, phps。
solr的查询语法。
-
“:” 指定字段查指定值,如返回所有值 pn:MAX
-
“?” 表示单个任意字符的通配 MA? =MAX
-
“*” 表示多个任意字符的通配
-
“~”²表示模糊检索,MAX~1 可以匹配商 MAB MXX 另外 max~2 ,匹配上 MBB MCC 。
下面不常用,先收录
-
“^”²控制相关度检索,如检索jakarta apache,同时希望去让”jakarta”的相关度更加好,那么在其后加上”^”符号和增量值,即jakarta^4 apache

-
布尔操作符AND、||²
-
布尔操作符OR、²&&
-
布尔操作符NOT、!、-²(排除操作符不能单独与项使用构成查询)
-
“+” 存在操作符,要求符号”+”后的项必须在文档相应的域中存在²
-
( ) 用于构成子查询²
-
² [] 包含范围检索,如检索某时间段记录,包含头尾,date:[200707 TO 200710]
-
{}²不包含范围检索,如检索某时间段记录,不包含头尾 date:{200707 TO 200710}
-
" 转义操作符,特殊字符包括+ -² && || ! ( ) { } [ ] ^ ” ~ * ? : "
-
非空数据的查询 比如:fq=fcode:[’’ TO *] 查询fcode非空的数据
-
取反实例:fq=!fstate:1