solr - 在搜索字段时转义 Solr 查询中的特殊字符?
问题描述
Solr 查询:fooField:foovalue OR barField:barValue
此查询可以是来自浏览器的查询覆盖,这可能会带来潜在的注入攻击。但是转义特殊字符(如:
和空格)不会按预期返回结果。
有没有办法逃避查询并在 solr 字段上搜索以获得所需的结果?
解决方案
查询处理程序是为这样的情况而edismax
设计的 - 如果您不希望用户能够自己附加字段名称,请使用qf
告诉 Solr 它应该搜索哪些字段,然后正确转义查询并将其q
作为原始参数发送文本。
如果您确实想在不同的字段中搜索不同的值,则必须转义每个值并在其前面加上显示的字段名称。
推荐阅读
- asp.net-mvc - 部署到远程服务器 IIS 后如何访问 MVC 应用程序
- javascript - 跨域请求被阻止 - 服务器是否必须允许跨域请求?
- java - 将多个对象继承到一个类中
- c# - 您如何满足 WebApi 查询字符串中的 AND 和 OR 搜索?
- go - 将匿名 json 字段解组为“命名”字段
- pip - 无法安装 spaCy 和 textacy 包
- ruby - Nokogiri - 获取属性?
- kubernetes - Kubernetes:kubectl 运行:找不到命令
- powershell - 导出名称的更简洁方法
- selenium - 在我的量角器测试中启动 Internet Explorer 会话时遇到问题