【问题标题】:Inverted index with ehcache使用 ehcache 的倒排索引
【发布时间】:2020-05-13 07:01:25
【问题描述】:

假设我想在一个包含 4 个唯一单词的文档上创建一个倒排索引。 它看起来像word1 -> document, word2 -> document, word3 -> document, word4 -> document。 使用大小有限的 ehcache 缓存和陶土集群,我可以将所有四个关联分别放在缓存中。

但这是我想知道的: 缓存会保留一份文档副本还是存储其中四个?我的猜测是它将是四个序列化的副本(这对我来说是不可取的)。如果这是真的,有什么更好的方法来做到这一点?

【问题讨论】:

  • 也许映射word1 -> docId, word2 -> docId, word3 -> docId, word4 -> docId, docId -> document? (当然在单独的缓存中)

标签: java indexing ehcache terracotta inverted-index


【解决方案1】:

您是正确的,Ehcache 中的任何存储层(内存中的存储层除外)都将使用序列化版本,因此您的文档将被有效地复制。

正如评论中所建议的,您可以在单词和文档之间添加一定程度的间接性。您也可以只在缓存中存储一​​个 ID,然后将文档留在其他地方。

清楚的是,对于直接映射,您不应依赖对一个映射的文档所做的修改才能对其他映射可见。你会滥用缓存。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-15
    • 2013-07-07
    相关资源
    最近更新 更多