首页 > 解决方案 > 带有变音符号敏感的 TextCriteria。Spring Data MongoDB 1.10.9

问题描述

我正在尝试在我的 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'

如果我需要做其他事情,有人可以告诉我我做错了什么吗

标签: spring-data-mongodb

解决方案


您应用了一个标准索引@Indexed。要应用文本搜索索引,您需要使用@TextIndexed.


推荐阅读