我需要在 Solr 中执行在线搜索,即用户需要查找具有特定条件的在线用户列表。
我是如何处理这个问题的:我们将用户的 ID 存储在一个表中,然后在 Solr 请求中发送所有在线用户 ID,例如
&fq=-id:(id1 id2 id3 ............id5000)
这种方法的问题是,当 id 变大时,Solr 需要花费太多时间来解决,我们需要通过网络传输大请求。
一种解决方案可以在 Solr 中使用 join,但在线数据会定期更改,我不能每次都索引数据(比如 5-10 分钟,应该至少一个小时)。
其他解决方案我认为基于 URL 中的某些参数从 Solr 内部触发此查询。我对 Solr 内部没有太多了解,所以不知道如何进行。