【问题标题】:Search by values in Redis cache - Secondary Indexing在 Redis 缓存中按值搜索 - 二级索引
【发布时间】:2019-11-17 19:50:09
【问题描述】:

我是 Redis 新手。我想通过来自 API 的一个或多个值进行搜索。 例如 - 假设我想存储一些 sec 数据,如下所示:

    Value1
        {

        "isin":"isin123",
        "id_bb_global":"BBg12345676",
        "cusip":"cusip123",
        "sedol":"sedol123",
        "cpn":"0.09",
        "cntry":"US",
        "144A":"xyz",
        "issue_cntry":"UK"
        }

        Value2
        {

        "isin":"isin222",
        "id_bb_global":"BBG222",
        "cusip":"cusip222",
        "sedol":"sedol222",
        "cpn":"1.0",
        "cntry":"IN",
        "144A":"Y",
        "issue_cntry":"DE"
        }
...
...

我想按 cusip 或 cusip 和 id_bb_global、ISIN plus Exchange 或 sedol 进行搜索。

例如 - 搜索查询数据 -> {"isin":"isin222", "cusip":"cusip222"} ,应该从值返回所有数据集。

将这种数据结构存储在 Redis 和 API 中以更快地检索相同数据的最佳方法是什么。

【问题讨论】:

  • 您可以遵循redis.io/topics/indexes 中描述的模式或尝试为此构建的一些东西,例如oss.redislabs.com/redisearch
  • 谢谢@itamar Haber。 redisearch 非企业版可以在集群多集群上工作吗?
  • "redisearch 非企业版是否可以在集群多集群上工作?"

标签: caching redis full-text-search key-value-store


【解决方案1】:

插入数据时,可以创建集合来维护索引。

{

        "isin":"isin123",
        "id_bb_global":"BBg12345676",
        "cusip":"cusip123",
        "sedol":"sedol123",
        "cpn":"0.09",
        "cntry":"US",
        "144A":"xyz",
        "issue_cntry":"UK"
        }

以上数据的示例,如果您想通过isincusip 进行过滤,您可以为isin:123cusip:123 创建相应的集合,并将该项目ID 添加到这两个集合中。

稍后,如果您想查找同时在isin:123cusip:123 中的项目,您只需在这两个集合上运行SINTER

或者,如果您想查找 isin:123cusip:123 中的项目,您可以将它们合并。

【讨论】:

  • 请您提供一个示例,说明如何将整个有效负载(例如值 1)作为一组插入并使用一个或多个属性检索相同的内容。谢谢!!
  • 我的博客上有一个例子tuananh.org/2018/06/12/…
猜你喜欢
  • 2020-11-02
  • 2019-02-06
  • 1970-01-01
  • 2018-04-25
  • 2015-08-31
  • 2020-01-06
  • 2016-05-10
  • 1970-01-01
  • 2014-10-29
相关资源
最近更新 更多