首页 > 解决方案 > 在搜索字段时转义 Solr 查询中的特殊字符?

问题描述

Solr 查询:fooField:foovalue OR barField:barValue

此查询可以是来自浏览器的查询覆盖,这可能会带来潜在的注入攻击。但是转义特殊字符(如:和空格)不会按预期返回结果。

有没有办法逃避查询并在 solr 字段上搜索以获得所需的结果?

标签: solrlucene

解决方案


查询处理程序是为这样的情况而edismax设计的 - 如果您不希望用户能够自己附加字段名称,请使用qf告诉 Solr 它应该搜索哪些字段,然后正确转义查询并将其q作为原始参数发送文本。

如果您确实想在不同的字段中搜索不同的值,则必须转义每个值并在其前面加上显示的字段名称。


推荐阅读