是不是更好用
- Lucene 中有很多索引(例如,对于每个用户,因为您的应用程序允许这样做)
- 或者只有一个,将每个文档都放在 int 中
...如果您考虑:
- 表现
- 磁盘空间
- 健康
我使用的是弹性搜索,因此我使用的是 Lucene。
是不是更好用
...如果您考虑:
我使用的是弹性搜索,因此我使用的是 Lucene。
在弹性搜索中,我认为根据您的信息,我会使用 1 个索引。我的理解是用户只是在那里搜索自己的文档,并且这些文档似乎比较相似。
性能- 搜索时,您可以使用过滤查询来过滤与用户匹配的文档。用户 ID 过滤器是可缓存的,而且速度很快。
可扩展- 在 Elasticsearch 中,您可以在索引级别控制分片和复制。Elasticsearch 可以处理大量索引,我只是认为配置适当的分片和复制可能对整个索引很有价值。
在单个索引中,您仍然可以轻松擦除数据(请参阅通过查询删除),除非您将查询写错,否则几乎不会担心看到其他数据。过滤后的查询将结果过滤到仅与用户 ID 关联的结果非常简单。复杂性类似于为每个用户搜索不同的索引。
您的确切需求可能更适合不同的方法。根据我目前的情况,我会选择一个索引。