0

我正在尝试在 riak 中实现消息归档。架构看起来像这样

{
  id = <<>>                            :: binary() | '_',
  username_s = <<"">>                  :: binary() | '_',
  timestamp_i = 0                      :: integer(),
  peer_s = <<"">>                      :: binary(),
  bare_peer_s = <<"">>                 :: binary(),
  packet = #xmlel{}                    :: xmlel() | '_',
  nick_s = <<"">>                      :: binary(),
  type_s = chat                        :: chat | groupchat
}

id 和 packet 不需要被索引,但需要在每个查询中查询。

我应该创建一个自定义方案并将它们作为非索引字段存储在 Solr 中吗?

我应该在单独查询每个键时对搜索结果进行应用程序级连接吗?

还是 MapReduce 以某种方式是一种选择?

还是完全不同的东西?

谢谢你。

4

1 回答 1

0

如果有人需要这个问题的答案,我将回答这个问题。我已经转移到其他项目,并且在我离开项目时没有选择任何解决方案。

Yokozuna,Riak 与 Solr 的集成插件,在我的评价中很糟糕。我选择“创建一个自定义方案并将它们作为非索引字段存储在 Solr 中”进行评估。在 yokozuna 中,对一段文本之类的内容进行索引会占用大量 CPU 和时间,因此对于像文本消息这样快速更新的内容,请尽量不要这样做,因为可能对产品之类的内容执行此操作。即使没有索引段落 Yokozuna 与 MySQL 或 Cassandra 之类的东西相比,它的表现也很糟糕。Riak 也没有提供支持,因为 Basho 自 2017 年 1 月以来可能已经关闭。因此,我得出结论,MySQL 足以满足当前负载,如果 MySQL 还不够,Cassandra 可能是下一个最佳选择。

于 2017-09-09T05:46:45.877 回答