【发布时间】:2015-12-18 11:08:53
【问题描述】:
我们的 solr 索引需要包含大约 20 000 条记录的用户特定状态信息。每个用户(大约 30 000 名)可以对每个项目都有一个状态。状态信息类似于“开始、成功、失败)。
它需要根据状态进行过滤,也需要根据这些状态进行筛选。
是使用动态字段(例如“userStatus_1234”,还是使用多值字段并在其中添加“userStatus_1234:started”更好?
【问题讨论】:
标签: solr
我们的 solr 索引需要包含大约 20 000 条记录的用户特定状态信息。每个用户(大约 30 000 名)可以对每个项目都有一个状态。状态信息类似于“开始、成功、失败)。
它需要根据状态进行过滤,也需要根据这些状态进行筛选。
是使用动态字段(例如“userStatus_1234”,还是使用多值字段并在其中添加“userStatus_1234:started”更好?
【问题讨论】:
标签: solr
后者。拥有大量动态字段可能会使您的缓存过载,因为每个字段都有自己的。通常最好通过单个字段构造它并查询特殊值。
随着文档更改数量的增加,使用单独的索引来搜索(文档、状态、用户)并进行处理可能更合适,但您的解决方案可能会正常工作。随着字段数量的增加(如果每个用户都有一个文档的状态,那么单个文档的条目将接近 30k),您将需要使用单独的核心来评估性能。
【讨论】: