3

是不是更好用

  • Lucene 中有很多索引(例如,对于每个用户,因为您的应用程序允许这样做)
  • 或者只有一个,将每个文档都放在 int 中

...如果您考虑:

  • 表现
  • 磁盘空间
  • 健康

我使用的是弹性搜索,因此我使用的是 Lucene。

4

1 回答 1

5

在弹性搜索中,我认为根据您的信息,我会使用 1 个索引。我的理解是用户只是在那里搜索自己的文档,并且这些文档似乎比较相似。

性能- 搜索时,您可以使用过滤查询来过滤与用户匹配的文档。用户 ID 过滤器是可缓存的,而且速度很快。

可扩展- 在 Elasticsearch 中,您可以在索引级别控制分片和复制。Elasticsearch 可以处理大量索引,我只是认为配置适当的分片和复制可能对整个索引很有价值。

在单个索引中,您仍然可以轻松擦除数据(请参阅通过查询删除),除非您将查询写错,否则几乎不会担心看到其他数据。过滤后的查询将结果过滤到仅与用户 ID 关联的结果非常简单。复杂性类似于为每个用户搜索不同的索引。

您的确切需求可能更适合不同的方法。根据我目前的情况,我会选择一个索引。

于 2011-12-22T21:48:19.690 回答