Solr 查询参数里,start 是结果偏移,不是页码;删除则由更新处理器接收命令,不是只能使用 XML。把查询条件、返回内容和变更入口分开,参数就容易理解。
常用查询参数对照
以下按 Solr 8.0 的常见查询入口说明,字段名需与 schema 一致:
| 参数 | 用途 | 示例 |
|---|---|---|
| q | 主查询,参与相关性计算 | bk_name:土家族 OR bk_content:土家族 |
| fq | 过滤结果,不参与评分,可重复 | price:[* TO 10] |
| sort | 排序及稳定兜底 | score desc,id asc |
| start | 从第几个结果开始,0 起算 | 20 |
| rows | 本次最多返回条数 | 10 |
| fl | 返回字段列表 | id,bk_name |
| df | 未指定字段时的默认搜索字段 | bk_name |
| hl | 开启高亮 | true |
标准查询语法中的 OR、AND 注意大写。区间方括号含端点,花括号不含端点,例如 price:[0 TO 10} 表示含 0、不含 10,前提是字段具有相应数值类型。
多个 fq 是过滤条件的交集;若用 q 的 AND 组合,命中集可能相近,但评分和缓存语义不同。fl 也不能取回任意已索引原文,返回能力受 stored、DocValues 和配置影响。Solr 8.0 通用参数
第三页从 20 开始
每页 10 条时,前三页 start 分别为 0、10、20。常用换算是 start=(页码−1)×rows,并验证页码和 rows 的范围。排序加唯一键可减少同分项的不确定性,但索引在两次请求之间变化仍可能影响偏移分页。
高亮内容不是额外取回的完整正文
旧笔记使用 hl.fl 指定字段,并设置 hl.simple.pre、hl.simple.post。可采用固定的标记前后缀:
hl=true
hl.fl=bk_name,bk_content
hl.simple.pre=<mark>
hl.simple.post=</mark>
实际支持的参数受所选高亮器影响。摘要可能为空,不能默认每条命中都存在第一段。高亮内容返回浏览器前还需按展示方案转义或净化,不把搜索片段直接视为可信 HTML。
删除是更新命令,JSON 也支持
在隔离演示集合中,按单个已确认 ID 删除,可表达为 XML 请求体:
<update>
<delete><id>demo-doc-001</id></delete>
</update>
或者同一逻辑的 JSON 命令:
{
"delete": {
"id": "demo-doc-001"
}
}
这些是 /update 的请求体形状,不是自动执行的命令。请求路径与 Content-Type 必须匹配;/update/json/docs 的便利文档入口不能与任意命令格式互换。Solr 8.0 更新格式
删除前确认环境和目标,保留可恢复来源,并核对提交与搜索可见性策略。不要用全量匹配条件试验生产索引,也不要把返回成功与目标已在搜索中消失混为一谈。