我们的solr索引需要拥有大约20 000条记录的用户特定状态信息。每个用户(大约30 000)可以在每个项目上具有状态。状态信息类似于“已启动,成功,失败”。
需要根据状态进行过滤,并对这些状态进行分析。
是否正在使用动态字段(比如“userStatus_1234”的方式,或者是一个更好的id来拥有一个多值字段并在那里添加“userStatus_1234:started”?
答案 0 :(得分:3)
后者。拥有大量动态字段会使缓存过载,因为每个字段都有自己的字段。通过单个字段构建它并查询特殊值通常会更好。
随着文档更改次数的增加,可能更适合使用单独的索引来搜索(doc,status,user)并处理该文档,但您的解决方案可能会正常工作。随着字段数量的增加(如果每个用户都具有文档的状态,您单个文档的条目接近30k),您将需要使用单独的核心来评估性能。