基本上,我们希望能够在大型文档存储库的各个子集中进行搜索。我们正在考虑使用多值字段为每个文档存储它当前所在的子集,并在搜索时过滤该字段。问题是子集在不断变化,因此我们必须经常添加新子集并从该字段中删除旧子集。
我读过在更新 Solr 文档中的字段时,我必须更新整个文档,并且通过删除旧副本并添加新副本来更新文档。所以频繁的更新会导致大量的删除副本,导致内部查找表膨胀,性能下降。
我的问题是这种退化有多严重?有没有更好的方法来解决这个问题?毕竟这应该是一个常见的问题,立即想到的是搜索具有特定标签的文章并搜索用户最喜欢的文章(尽管我们自己的用例更复杂)。
我看了一点 ExternalFileField 但似乎它不支持多值字段(我希望我错了),并且子集的不同组合太多,无法使用一个整数来表示组合(以转换多值字段转换为单值字段)。