非显示检索条件

如果您希望在不将条件文字显示在屏幕上的情况下传递特定的检索条件,可以使用 ex_q 参数。指定给 ex_q 的条件不会显示在检索关键词输入框中,即使通过分页或分面筛选更新屏幕,该条件也会保持。

ex_q 中可以使用与常规检索关键词(q)相同的查询语法(field:value 格式、短语、范围指定、OR 等运算符)。指定的条件默认会与 q 的条件通过 AND 组合后执行检索。也就是说,与 ex_q 条件不匹配的文档将从检索结果中排除。

使用方法

执行检索时(例如通过检索表单等),将 ex_q 的值作为隐藏表单字段或 URL 查询参数附加后执行检索。这样即可在不将条件显示在屏幕上的情况下进行检索。

ex_q 可以指定多个。如下例所示,传递多个 ex_q 时,每个值都会作为检索条件被追加(空值或重复值将被忽略)。

/search?q=keyword&ex_q=label:manual&ex_q=filetype:pdf

分页时的保持

对于分页(下一页、上一页等)和分面筛选的链接,Fess 会自动附加 ex_q 的值。因此,即使通过这些操作更新屏幕,ex_q 的条件也会保持。

另一方面,如果通过标准的检索关键词输入框(搜索框)输入关键词并重新检索,ex_q 不会被继承。如果希望通过搜索框也能保持条件,请在自己的检索表单中准备 ex_q 的隐藏字段,并在每次检索时发送 ex_q

Note

  • ex_q 的各个值的长度超过 query.max.length (默认值:1000 字符)时,该值不会报错,而是被忽略。

  • ex_q 不仅可用于 Web 界面的检索,也可用于检索 API(/api/v2)。在 API 中,适用每次请求 ex_q 元素数量的上限(api.v2.param.max.array.size,默认值:100)以及各元素长度的上限(api.v2.param.max.length,默认值:1000 字符)。