Skip to content

Commit

Permalink
Re-work FT.CREATE and FT.ALTER (#3120)
Browse files Browse the repository at this point in the history
* Re-work FT.CREATE and FT.ALTER

* Adjust optional parameters for Geo, Numeric and Vector fields

* changes

* format

* remove addAttribute option (already in builder)
  • Loading branch information
sazzad16 committed Sep 6, 2022
1 parent ff95d38 commit 2cec9a5
Show file tree
Hide file tree
Showing 20 changed files with 1,584 additions and 417 deletions.
20 changes: 18 additions & 2 deletions src/main/java/redis/clients/jedis/CommandObjects.java
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
import redis.clients.jedis.search.SearchResult.SearchResultBuilder;
import redis.clients.jedis.search.aggr.AggregationBuilder;
import redis.clients.jedis.search.aggr.AggregationResult;
import redis.clients.jedis.search.schemafields.SchemaField;
import redis.clients.jedis.timeseries.*;
import redis.clients.jedis.timeseries.TimeSeriesProtocol.TimeSeriesCommand;
import redis.clients.jedis.timeseries.TimeSeriesProtocol.TimeSeriesKeyword;
Expand Down Expand Up @@ -3052,14 +3053,29 @@ public final CommandObject<Long> publish(byte[] channel, byte[] message) {
public CommandObject<String> ftCreate(String indexName, IndexOptions indexOptions, Schema schema) {
CommandArguments args = commandArguments(SearchCommand.CREATE).add(indexName)
.addParams(indexOptions).add(SearchKeyword.SCHEMA);
schema.fields.forEach(field -> field.addParams(args));
schema.fields.forEach(field -> args.addParams(field));
return new CommandObject<>(args, BuilderFactory.STRING);
}

public CommandObject<String> ftCreate(String indexName, FTCreateParams createParams,
Iterable<SchemaField> schemaFields) {
CommandArguments args = commandArguments(SearchCommand.CREATE).add(indexName)
.addParams(createParams).add(SearchKeyword.SCHEMA);
schemaFields.forEach(field -> args.addParams(field));
return new CommandObject<>(args, BuilderFactory.STRING);
}

public CommandObject<String> ftAlter(String indexName, Schema schema) {
CommandArguments args = commandArguments(SearchCommand.ALTER).add(indexName)
.add(SearchKeyword.SCHEMA).add(SearchKeyword.ADD);
schema.fields.forEach(field -> field.addParams(args));
schema.fields.forEach(field -> args.addParams(field));
return new CommandObject<>(args, BuilderFactory.STRING);
}

public CommandObject<String> ftAlter(String indexName, Iterable<SchemaField> schemaFields) {
CommandArguments args = commandArguments(SearchCommand.ALTER).add(indexName)
.add(SearchKeyword.SCHEMA).add(SearchKeyword.ADD);
schemaFields.forEach(field -> args.addParams(field));
return new CommandObject<>(args, BuilderFactory.STRING);
}

Expand Down
26 changes: 17 additions & 9 deletions src/main/java/redis/clients/jedis/MultiNodePipelineBase.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,10 @@
import redis.clients.jedis.params.*;
import redis.clients.jedis.providers.ConnectionProvider;
import redis.clients.jedis.resps.*;
import redis.clients.jedis.search.IndexOptions;
import redis.clients.jedis.search.Query;
import redis.clients.jedis.search.Schema;
import redis.clients.jedis.search.SearchResult;
import redis.clients.jedis.search.*;
import redis.clients.jedis.search.aggr.AggregationBuilder;
import redis.clients.jedis.search.aggr.AggregationResult;
import redis.clients.jedis.search.schemafields.SchemaField;
import redis.clients.jedis.timeseries.*;
import redis.clients.jedis.util.KeyValue;

Expand Down Expand Up @@ -3306,11 +3304,26 @@ public Response<LCSMatchResult> strAlgoLCSKeys(byte[] keyA, byte[] keyB, StrAlgo
}

// RediSearch commands
@Override
public Response<String> ftCreate(String indexName, IndexOptions indexOptions, Schema schema) {
return appendCommand(commandObjects.ftCreate(indexName, indexOptions, schema));
}

@Override
public Response<String> ftCreate(String indexName, FTCreateParams createParams, Iterable<SchemaField> schemaFields) {
return appendCommand(commandObjects.ftCreate(indexName, createParams, schemaFields));
}

@Override
public Response<String> ftAlter(String indexName, Schema schema) {
return appendCommand(commandObjects.ftAlter(indexName, schema));
}

@Override
public Response<String> ftAlter(String indexName, Iterable<SchemaField> schemaFields) {
return appendCommand(commandObjects.ftAlter(indexName, schemaFields));
}

@Override
public Response<SearchResult> ftSearch(String indexName, Query query) {
return appendCommand(commandObjects.ftSearch(indexName, query));
Expand Down Expand Up @@ -3757,11 +3770,6 @@ public Response<List<Object>> jsonArrPop(String key, Path2 path) {
public Response<Object> jsonArrPop(String key, Path path) {
return appendCommand(commandObjects.jsonArrPop(key, path));
}

@Override
public Response<String> ftCreate(String indexName, IndexOptions indexOptions, Schema schema) {
return appendCommand(commandObjects.ftCreate(indexName, indexOptions, schema));
}
// RedisJSON commands

// RedisTimeSeries commands
Expand Down
16 changes: 12 additions & 4 deletions src/main/java/redis/clients/jedis/Pipeline.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,10 @@
import redis.clients.jedis.json.Path2;
import redis.clients.jedis.params.*;
import redis.clients.jedis.resps.*;
import redis.clients.jedis.search.IndexOptions;
import redis.clients.jedis.search.Query;
import redis.clients.jedis.search.Schema;
import redis.clients.jedis.search.SearchResult;
import redis.clients.jedis.search.*;
import redis.clients.jedis.search.aggr.AggregationBuilder;
import redis.clients.jedis.search.aggr.AggregationResult;
import redis.clients.jedis.search.schemafields.SchemaField;
import redis.clients.jedis.timeseries.*;
import redis.clients.jedis.util.KeyValue;

Expand Down Expand Up @@ -3313,11 +3311,21 @@ public Response<String> ftCreate(String indexName, IndexOptions indexOptions, Sc
return appendCommand(commandObjects.ftCreate(indexName, indexOptions, schema));
}

@Override
public Response<String> ftCreate(String indexName, FTCreateParams createParams, Iterable<SchemaField> schemaFields) {
return appendCommand(commandObjects.ftCreate(indexName, createParams, schemaFields));
}

@Override
public Response<String> ftAlter(String indexName, Schema schema) {
return appendCommand(commandObjects.ftAlter(indexName, schema));
}

@Override
public Response<String> ftAlter(String indexName, Iterable<SchemaField> schemaFields) {
return appendCommand(commandObjects.ftAlter(indexName, schemaFields));
}

@Override
public Response<SearchResult> ftSearch(String indexName, Query query) {
return appendCommand(commandObjects.ftSearch(indexName, query));
Expand Down
16 changes: 12 additions & 4 deletions src/main/java/redis/clients/jedis/TransactionBase.java
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,10 @@
import redis.clients.jedis.json.Path2;
import redis.clients.jedis.params.*;
import redis.clients.jedis.resps.*;
import redis.clients.jedis.search.IndexOptions;
import redis.clients.jedis.search.Query;
import redis.clients.jedis.search.Schema;
import redis.clients.jedis.search.SearchResult;
import redis.clients.jedis.search.*;
import redis.clients.jedis.search.aggr.AggregationBuilder;
import redis.clients.jedis.search.aggr.AggregationResult;
import redis.clients.jedis.search.schemafields.SchemaField;
import redis.clients.jedis.timeseries.*;
import redis.clients.jedis.util.KeyValue;

Expand Down Expand Up @@ -3380,11 +3378,21 @@ public Response<String> ftCreate(String indexName, IndexOptions indexOptions, Sc
return appendCommand(commandObjects.ftCreate(indexName, indexOptions, schema));
}

@Override
public Response<String> ftCreate(String indexName, FTCreateParams createParams, Iterable<SchemaField> schemaFields) {
return appendCommand(commandObjects.ftCreate(indexName, createParams, schemaFields));
}

@Override
public Response<String> ftAlter(String indexName, Schema schema) {
return appendCommand(commandObjects.ftAlter(indexName, schema));
}

@Override
public Response<String> ftAlter(String indexName, Iterable<SchemaField> schemaFields) {
return appendCommand(commandObjects.ftAlter(indexName, schemaFields));
}

@Override
public Response<SearchResult> ftSearch(String indexName, Query query) {
return appendCommand(commandObjects.ftSearch(indexName, query));
Expand Down
16 changes: 12 additions & 4 deletions src/main/java/redis/clients/jedis/UnifiedJedis.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,10 @@
import redis.clients.jedis.params.*;
import redis.clients.jedis.providers.*;
import redis.clients.jedis.resps.*;
import redis.clients.jedis.search.IndexOptions;
import redis.clients.jedis.search.Query;
import redis.clients.jedis.search.Schema;
import redis.clients.jedis.search.SearchResult;
import redis.clients.jedis.search.*;
import redis.clients.jedis.search.aggr.AggregationBuilder;
import redis.clients.jedis.search.aggr.AggregationResult;
import redis.clients.jedis.search.schemafields.SchemaField;
import redis.clients.jedis.timeseries.*;
import redis.clients.jedis.util.IOUtils;
import redis.clients.jedis.util.JedisURIHelper;
Expand Down Expand Up @@ -3446,11 +3444,21 @@ public String ftCreate(String indexName, IndexOptions indexOptions, Schema schem
return executeCommand(commandObjects.ftCreate(indexName, indexOptions, schema));
}

@Override
public String ftCreate(String indexName, FTCreateParams createParams, Iterable<SchemaField> schemaFields) {
return executeCommand(commandObjects.ftCreate(indexName, createParams, schemaFields));
}

@Override
public String ftAlter(String indexName, Schema schema) {
return executeCommand(commandObjects.ftAlter(indexName, schema));
}

@Override
public String ftAlter(String indexName, Iterable<SchemaField> schemaFields) {
return executeCommand(commandObjects.ftAlter(indexName, schemaFields));
}

@Override
public SearchResult ftSearch(String indexName, Query query) {
return executeCommand(commandObjects.ftSearch(indexName, query));
Expand Down
Loading

0 comments on commit 2cec9a5

Please sign in to comment.