我相信这将需要自定义编码,但是我想做的是
a)要求针对solr运行的查询必须包含过滤器查询参数(fq)的值
b)如果过滤查询的结果候选列表大于某个阈值,则使请求短路。
从查看SOLR代码看来,我可以通过向/ select请求处理程序(通过配置文件)提供自定义组件来完成第一个操作,但是第二个操作则有点模糊。
有人知道某个插件已经实现了这样的功能吗?或对如何实施有建议?尽我所能,我应该看看是否可以扩展QueryComponent并注入自定义的SolrIndexSearcher,但我没有看到过滤器缓存的确切使用位置(从我发现的缓存中获取)。
修改,添加示例查询
下面是一个示例查询,在对其进行了消毒之后
该应用程序是多租户,有些租户产生的文档量较小,而另一些租户产生的文档量却很大。我们已经在搜索中强制采用了日期范围以限制查看的潜在文档总数,但我们真正想要的是能够在考虑其他任何内容之前确定潜在文档的总数,如果请求范围太广,则可以使请求失败。这样,我们就不会产生其他搜索参数或排序的费用。