带有变音符号的 TextCriteria。 Spring 数据 MongoDB 1.10.9
TextCriteria with diacriticSensitive. Spring Data MongoDB 1.10.9
我正在尝试在我的 MongoDB 数据库中创建搜索以搜索 "name" 字段而不考虑重音
我需要在字段中创建索引:
// 创建索引
@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'
如果我需要做其他事情,有人可以告诉我我做错了什么吗
您使用 @Indexed
应用了标准索引。要应用文本搜索索引,您需要使用 @TextIndexed
。
我正在尝试在我的 MongoDB 数据库中创建搜索以搜索 "name" 字段而不考虑重音
我需要在字段中创建索引:
// 创建索引
@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'
如果我需要做其他事情,有人可以告诉我我做错了什么吗
您使用 @Indexed
应用了标准索引。要应用文本搜索索引,您需要使用 @TextIndexed
。