在 Redis 搜索中存储浮点数或整数列表

问题描述 投票:0回答:1

我正在测试 Redis 矢量搜索解决方案。我已经安装了 Redis 服务器并一直在遵循这些教程和文档:

  1. https://github.com/openai/openai-cookbook/blob/main/examples/vector_databases/redis/getting-started-with-redis-and-openai.ipynb
  2. https://redis.io/docs/interact/search-and-query/

这是我要创建的索引结构:

id = NumericField(name="id")
user_id = NumericField(name="user_id")
title = TextField(name="title")
seo = NumericField(name="seo")
email = TextField(name="email")
tariff = NumericField(name="tariff")
cash = NumericField(name="cash")
title_embedding = VectorField("embeddings",
    "HNSW", {
        "TYPE": "FLOAT32",
        "DIM": VECTOR_DIM,
        "DISTANCE_METRIC": DISTANCE_METRIC,
        "INITIAL_CAP": VECTOR_NUMBER,
    }
)
rubrics = ???

这个“版本”的 Redis 支持的数据类型数量似乎非常有限(我仍然不清楚这个基于向量的 Redis 是否与常规 Redis 有什么不同)。
所以根据 docs this Redis 仅支持以下数据类型:

Number Fields, Geo Fields, Vector Fields, Tag Fields, Text Fields

我应该如何在 this 版本的 Redis 中存储整数列表?
我想在

rubrics
字段中存储一个整数列表,该列表如下所示:
[1, 22, 33]

python search redis
1个回答
0
投票

这是可能的,取决于您的具体用例。

如果数字量规用于某种标记(例如,如果文档有 1,则表示某事),您可以使用 TAG 字段来预过滤具有或不具有某些标记的文档,以及任何联合标签的 (OR) 或交集 (AND)。

如果您的文档存储在 JSON 对象中,您还可以使用多值功能。然后,您将能够使用数字范围过滤文档,并过滤在查询范围内的 rubrics 字段中具有某些值的文档。

您还可以对数字范围查询执行逻辑运算,并将其他条件与其他字段组合。

有用文档的链接: 很快就会添加

© www.soinside.com 2019 - 2024. All rights reserved.