在SOLR数据库中,唯一的字符串字段是否会在RAM中存储多次?

时间:2011-10-20 05:02:54

标签: java lucene solr

我有一个SOLR数据库,需要有一个新字段,其中包含类似标签的字符串列表,除非它们是预定义的并用于内部目的。此SOLR核心的搜索结果将通过公共互联网传递给第三方网站开发人员。因此,我希望对标签进行模糊处理,并使某人无法猜出会泄露其他客户信息的标签。

我可以使用GUID轻松完成此操作,但我想知道在RAM中包含数十万条包含多个GUID数组的记录会产生什么影响。

如果GUID被记录为原子,即GUID的一个副本和许多引用它,那么这是一个非问题。但我无法确定SOLR或Lucene是否在其RAM内数据结构中使用原子。磁盘存储不是问题。

这类似于重复数据删除问题,但我的研究表明,人们主要关注的是整个重复文档,而不是单个字段。

1 个答案:

答案 0 :(得分:0)

有两个索引:

  1. 倒置索引。无论使用多少次,每个guid将被存储一次(实际上少于一次)。
  2. 正常指数。每次使用时,每个guid将被存储一次。如果您愿意,可以在此处使用压缩。 (“压缩”可以表示您有一个特殊的表格,用于翻译数字&lt; - &gt;标记,因此每个标记都存储为数字 - &gt;每个标记占用1个字节[假设少于2 ^ 8个标记]。)< / LI>