spring-data-mongodb - 带有变音符号敏感的 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'
如果我需要做其他事情,有人可以告诉我我做错了什么吗
解决方案
您应用了一个标准索引@Indexed
。要应用文本搜索索引,您需要使用@TextIndexed
.
推荐阅读
- react-native - 如何修复“RealmObject 不能作为函数调用”realm-js 错误?
- javascript - Javascript 错误:.split 不是函数
- database - 更新单个模式的序列不起作用(Postgres 12)
- html - Django HTML在提交时将POST数据作为PK值发送到url
- python - 带循环的 Ansible 用户部署任务
- oracle - 在多个表上分组
- r - 从外部函数更改警告消息
- java - HTTP 服务器中的 Java 垃圾收集(Spring Boot/Spring Web)
- c# - 从 NuGet 包访问文件时出错
- intellij-idea - 如何在 IntelliJ 中调试项目并提供上下文 xml 文件?