You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Jredisearch创建索引时如何添加前缀

JRedisearch 2.0.0 创建索引配置前缀的实现方法

你可以通过自定义构造IndexOptions实例实现前缀配置,无需修改核心创建索引逻辑,具体实现方式如下:

  • 确保已导入对应的IndexOptions类,该类的Builder模式原生支持前缀配置参数
  • 按原有逻辑构造索引Schema,定义字段类型与权重
  • 通过IndexOptions.builder()构造自定义配置,调用prefixes方法传入需要匹配的key前缀数组
  • 将构造完成的IndexOptions实例传入createIndex方法的第二个参数即可

完整代码示例:

import io.redisearch.Client;
import io.redisearch.Schema;
import io.redisearch.client.Client.IndexOptions;

public class CreateIndexWithPrefix {
    public static void main(String[] args) {
        // 初始化RediSearch客户端,参数依次为索引名、Redis地址、Redis端口
        Client client = new Client("MyIndex", "localhost", 6379);
        // 如果Redis有密码,使用如下构造方法:
        // Client client = new Client("MyIndex", "localhost", 6379, 10000, "your_password");
        
        // 构建Schema,对应命令中的SCHEMA部分
        Schema schema = new Schema()
                .addTextField("name", 1.0);

        // 自定义索引配置,设置前缀
        IndexOptions options = IndexOptions.builder()
                // 传入前缀数组,对应命令中的PREFIX 1 doc:
                .prefixes(new String[]{"doc:"})
                // 默认索引基于HASH类型,如果是JSON类型可添加如下配置
                // .on(IndexOptions.DataType.JSON)
                .build();

        // 创建索引
        client.createIndex(schema, options);
    }
}

配置说明

  • prefixes方法接收字符串数组参数,支持配置多个前缀,例如需要匹配doc:和order:两个前缀时,可写为.prefixes(new String[]{"doc:", "order:"}),底层会自动计算前缀数量生成对应命令参数
  • 上述代码生成的底层命令和你给出的原生FT.CREATE MyIndex ON HASH PREFIX 1 doc: SCHEMA name TEXT完全一致

验证配置是否生效

索引创建完成后,可在Redis-cli执行FT.INFO MyIndex命令,查看返回结果中index_definition项下的prefixes值,确认前缀配置是否符合预期。


内容的提问来源于stack exchange,提问作者chaitra d

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 02:18:04