目录
1 Solr 管理页面的查询入口
2 Solr 查询输入框简介
3 Solr 管理页面的查询方案
1 Solr 管理页面的查询入口
选中需要查询的 SolrCore, 然后在菜单栏选择 [Query]:
2 Solr 查询输入框简介
select: 查询请求处理器.
q: query 的简写, 指定查询表达式.
*:*, 表示查询所有, 如:
product_name: 花儿朵朵
, 表示 product_name 域中包含花儿朵朵.
fq: filter query 的简写, 是一个数组, 可指定多个. 在 q 的查询结果中, 执行过滤 -- 前提: 需要指定 q 查询
product_price:[* TO 20]
, 表示查询商品价格在 20 块钱以内, 包含 20;
product_price:[* TO 20}
, 表示查询商品价格在 20 块钱以内, 不包含 20.
sort: 指定搜索结果的排序.
product_price desc -- 表示按照商品价格降序
product_price asc -- 表示按照商品价格升序
product_price desc, product_catalog asc
-- 表示按商品价格降序, 按商品分类 id 升序 (多个域排序, 以半角逗号分割)
start,rows: 指定搜索结果分页
start: 结果记录起始数
rows: 每一页显示记录数
fl: field list 的简写, 指定搜索结果显示的域列表.
id, product_name, product_price, product_catalog_name
-- 表示显示商品 Id, 商品名称, 商品价格, 商品类别名称
df: default field 的简写, 指定默认搜索域 -- 只能指定一个.
wt: writer type 的简写, 指定搜索结果数据的响应格式.
(CSV 格式: 类似于记事本的格式.)
indent: 缩进, 格式良好地显示查询结果;
debugQuery: 打印查询的调试信息.
dismax,edismax: 查询解析器, 一般不选择. /select 等使用的是标准查询解析器.
hl: high light 的简写, 设置高亮显示. 高亮显示的 field, 需要 stored=true.
hl.fl: 高亮显示的域的名称;
hl.simple.pre: 高亮显示的 html 标签前缀;
hl.simple.post: 高亮显示的 HTML 标签后缀;
hl.requireFieldMatch: 默认为 false, 若选中 (为 true), 则需要 hl.fl 指定字段, 查询结果才会高亮;
hl.usePhraseHighlighter: 如果查询语句中含有引号括起来的短语, 那么只有完全匹配短语的内容才会高亮;
hl.highlightMultiTerm: 默认为 false, 若选中且 hl.usePhraseHighlighter 为 true 时, 如果使用通配符和模糊搜索, 那么会确保与通配符匹配的 term 才会高亮.
facet(扩展): 分组统计 (分片统计), 如电商中的组合多条件搜索:
facet 查询设置界面:
facet.query: 指定组内初始化统计条件
facet.field: 指定分组统计的域的名称 (通常使用分类域)
facet.prefix: 指定组内过滤查询条件的前缀
spatial: 空间查询 (经纬度)
spellcheck: 拼写检查, 即输入时的智能匹配
3 Solr 管理页面的查询方案
说明: 使用 SolrJ 实现页面的查询效果, 要求参数和结果与页面一致.
页面搜索条件:
页面搜索结果:
文档结果以及分组统计结果:
高亮显示结果:
注意:
由上图可知, Solr 在高亮查询时, 高亮结果集与正常结果集是分开返回的, 为了与正常结果集中的其他内容相匹配, 这里需要设置主键进行结果的关联.
另外, 对于 multiValued=true 的字段, 不要进行高亮设置 -- 它只会返回匹配高亮的值, 不能确定是何条数据.
也可通过 HTTP 请求的方式进行高亮设置, HTTP 请求示例:
http://localhost:7070/Solr/select?q=product_name: 花儿朵朵 & hl=true&hl.fl=product_name&hl.simple.pre=<font color='red'>&hl.simple.post=</font>
也可通过配置 solrconfig.xml 文件, 是默认搜索方案具有高亮功能: 在下配置.
来源: https://www.cnblogs.com/shoufeng/p/9838795.html