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 更新格式

删除前确认环境和目标,保留可恢复来源,并核对提交与搜索可见性策略。不要用全量匹配条件试验生产索引,也不要把返回成功与目标已在搜索中消失混为一谈。