TextCriteria с diacriticSensitive.Spring Data MongoDB 1.10.9 - PullRequest
0 голосов
/ 07 марта 2019

Я пытаюсь создать поиск в моей базе данных MongoDB для поиска в поле «имя» без учета акцентов

Мне нужно создать индекс в поле:

// создать индекс

@Indexed
@Field("nombre")
private String nombre;

Проверьте в BBDD, что он создан правильно:

db.empleado_bk.getIndexes();

{
    "v" : 2,
    "key" : {
        "nombre" : 1
    },
    "name" : "nombre",
    "ns" : "elser2.empleado_bk"
}

Я изменяю свой репозиторий для поиска по тексту без учета акцентов

if (StringUtils.isNoneBlank(dtoFilter.getNombre())) {
query.addCriteria(TextCriteria.forDefaultLanguage().diacriticSensitive(true).matching("nombre"));
}

Но при поиске этого поля я получаю следующую ошибку:

org.springframework.data.mongodb.UncategorizedMongoDbException: Query failed with error code 27 and error message 'text index required for $text query'

Может кто-нибудь сказать мне, если я делаю что-то не так, если мне нужно сделать что-то еще

1 Ответ

0 голосов
/ 07 марта 2019

Вы применили стандартный индекс с @Indexed. Чтобы применить индекс текстового поиска, вам нужно использовать @TextIndexed.

...