【问题标题】:How Do I create in memory search indexes in Elixir如何在 Elixir 中创建内存搜索索引
【发布时间】:2020-11-12 16:56:36
【问题描述】:

我目前正在从事 Elixir/Phoenix 项目,我想知道什么是创建快速内存搜索索引的好方法。

索引将根据请求创建并在请求结束时销毁,当前数据通过 Ecto 来自数据库。另外,我想通过不同的索引来查询它,所以不仅仅是:id,而是其他索引例如:user_id,所以平面键值存储可能不够。

有什么有用的工具吗?我对 mnesia 进行了一些研究,但是在将它与 ecto3_mnesia 一起使用时,会创建一个本地文件/文件夹,如果所有内容都在内存中,我更愿意。

谢谢

【问题讨论】:

  • 我不确定我是否理解您的问题...如果您只需要在请求期间存储信息,那么最简单的方法是在 conn 结构内 - - 它被传递给每个插头和控制器。 :mnesiacachex 之类的解决方案只有在您希望在单个请求之外保留数据时才有用。

标签: search indexing elixir ecto in-memory


【解决方案1】:

我不知道ecto3_mnesia,但我很确定没有任何冗余包装器的原始:mnesia 非常适合(或者,如果您不需要集群解决方案,甚至可以使用:ets。)

:mnesia.table_create/2 接受许多选项,您可能感兴趣的两个选项是 disc_copiesraw_copies。只需用空节点列表初始化前者,用完整的节点列表初始化后者,一切就绪:没有创建磁盘副本,一切都在内存中。

【讨论】:

    猜你喜欢
    • 2020-07-28
    • 1970-01-01
    • 2013-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-27
    • 2011-03-20
    • 2011-12-06
    • 2013-10-01
    相关资源
    最近更新 更多