Skip to content

Commit 4a84f30

Browse files
committed
fix: Only autoindex @id field when not explicitely indexed by the user (resolves gh-135)
1 parent b4b30f1 commit 4a84f30

File tree

1 file changed

+11
-8
lines changed

1 file changed

+11
-8
lines changed

redis-om-spring/src/main/java/com/redis/om/spring/RediSearchIndexer.java

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -121,14 +121,17 @@ public void createIndexFor(Class<?> cl) {
121121
Optional<java.lang.reflect.Field> maybeIdField = getIdFieldForEntityClass(cl);
122122
if (maybeIdField.isPresent()) {
123123
java.lang.reflect.Field idField = maybeIdField.get();
124-
if (!fields.stream().anyMatch(f -> f.name.equals(idField.getName()))) {
125-
if (Number.class.isAssignableFrom(idField.getType())) {
126-
fields
127-
.add(indexAsNumericFieldFor(maybeIdField.get(), idxType == IndexDefinition.Type.JSON, "", true, false));
128-
} else {
129-
fields.add(
130-
indexAsTagFieldFor(maybeIdField.get(), idxType == IndexDefinition.Type.JSON, "", false, ",",
131-
Integer.MIN_VALUE));
124+
// Only auto-index the @Id if not already indexed by the user (gh-135)
125+
if (!idField.isAnnotationPresent(Indexed.class) && !idField.isAnnotationPresent(Searchable.class)) {
126+
if (!fields.stream().anyMatch(f -> f.name.equals(idField.getName()))) {
127+
if (Number.class.isAssignableFrom(idField.getType())) {
128+
fields
129+
.add(indexAsNumericFieldFor(maybeIdField.get(), idxType == IndexDefinition.Type.JSON, "", true, false));
130+
} else {
131+
fields.add(
132+
indexAsTagFieldFor(maybeIdField.get(), idxType == IndexDefinition.Type.JSON, "", false, ",",
133+
Integer.MIN_VALUE));
134+
}
132135
}
133136
}
134137
}

0 commit comments

Comments
 (0)