我们的web应用程序最近成为了一些DDoSers的攻击目标。我们使用solr,他们通过每隔几秒钟搜索"**“成功地生成了100%的负载。有人能告诉我为什么这个查询需要几十秒才能运行,而其他所有操作只需要几毫秒吗?此外,代码将用户ID附加到搜索中,因此查询是"userid: 10 AND **",这不会真正减慢速度,因为该用户只有10个左右的文档。
有没有人知道发生了什么,以及我们如何最好地保护自己不受它的影响?
谢谢。
发布于 2010-11-15 09:53:50
Solr将**解释为带有前导和结尾通配符的查询,因为这些字段没有定义字段,所以它位于默认搜索字段(如您在注释中所说的那样),这是一个很大的文本字段。所以它最终会搜索所有的东西,这可能就是为什么它花了这么长时间的原因。
解决方案:在将查询传递给Solr之前,过滤掉应用程序中的**。如果您不想让用户发出任何通配符查询,您甚至可以过滤所有*。
https://stackoverflow.com/questions/4175798
复制相似问题