gpt4 book ai didi

lucene.net - Lucene 索引 : shared or isolated by account?

转载 作者:行者123 更新时间:2023-12-01 01:29:21 25 4
gpt4 key购买 nike

我正在评估 Lucene 在 SaaS 应用程序中实现全局搜索功能。

我们不希望用户看到其他帐户的内容,因此搜索将始终受帐户限制。

有一个带有帐户 ID 字段的单个索引还是每个帐户有一个索引更好?每种方法的优缺点是什么?

我担心的是,由于频繁更新,全局索引可能会影响性能。

谢谢你。

编辑

  • 预计总文档数:500,0000
  • 账户数:4000
  • 可索引数据永远不会在帐户之间共享
  • 帐户用户每天可能会多次更新其可索引数据(大多数情况下不超过 100)
  • 初始设置过程后索引数据量趋于稳定
  • 我们需要为每个文档存储 10-20 个字段
  • 最佳答案

    除了常见的问题(例如索引更新等)之外,我还会考虑以下一些事项:

  • lucene 返回排序结果的方式取决于一些“语料库范围”的统计数据,例如,该字段中出现一个术语的文档总数。因此,如果客户 a 的索引统计数据不适合客户 b,除了会带来安全风险之外,还会损害两个客户的相关性……如果 oscar 足够聪明,他真的可以开始反转 bob 的文档,因为倒排索引:http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.159.9682您可能可以使用以下排名算法来解决此问题:https://issues.apache.org/jira/browse/LUCENE-2864
  • lucene 中的其他一些东西适用于“作为一个整体的字段”或“作为一个整体的索引”,你应该知道,如果你将索引组合在一起,它们不能在每个客户的基础上真正改变:像 omitTF(如果您将它设置在一个字段的单个文档上,该字段完全省略)、相似性(在任何已发布的 lucene 版本中,您只能全面设置相似性,因此客户将无法调整排名模型),拼写检查(你必须修改一些东西,每个客户都有自己的“过滤”拼写检查索引),...
  • 另一方面,如果您有很多术语,则需要相当多的 RAM,并且通过为每个客户提供自己的索引,您将需要更多内存来将所有索引的术语索引保存在 RAM 中。但是,您可以通过调整诸如 termIndexInterval/Divisor 之类的内容来稍微降低此值。
  • 关于lucene.net - Lucene 索引 : shared or isolated by account?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5783441/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com