java - 如何在 spring data mongodb 中对所有字段建立索引?

标签 java spring mongodb indexing spring-data-mongodb

假设我有一些名为候选人的集合。我想在此集合内的所有字段上创建一个 text 索引。在mongo中,我知道我可以这样做

db.candidates.createIndex({"$**":"text"},{name:"TextIndex"}) 

这是我的 java pojo 或实体。

@Document(collection = "candidates")
public class Candidate {

    @Id
    private String id;
    private String firstName;
    private String lastName;

   // Other stuff: removed for brevity
}

现在我该如何在java中执行db.candidates.createIndex({"$**":"text"},{name:"TextIndex"})?这就是如何索引整个 pojo 或者如何索引集合中的所有字段?

This question尝试做同样的事情,但没有完整的细节。

我还查看了@Indexed注释,但是我如何使用它来索引整个集合,因为它只能应用于字段?

最佳答案

使用@TextIndexed,您至少可以对要包含在索引中的所有字段建立索引。 https://docs.spring.io/spring-data/mongodb/docs/current/api/org/springframework/data/mongodb/core/index/TextIndexed.html

或者,您可以使用 mongotemplate 来实现此目的。 How to set @TextIndex name in an entity with Spring-Data-MongoDB

关于java - 如何在 spring data mongodb 中对所有字段建立索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54351054/

相关文章:

java - 如何更新 sqlite 数据库中的值?

java - 如何防止在事务提交时保存到 Hibernate 中的数据库?

java - 在eclipse中运行tomcat上的maven项目时找不到请求资源404错误

node.js - 使用 Azure cosmos DB 进行表达

java - 如何使用 Jackson 反序列化此 JSON?

java - C 比 JAVA 执行时间更长

mongodb - MongoDB中,如何使用聚合框架,文档少

java - MongoDB getList ("field-name", Double::class.java);在 Kotlin 中产生 ClassCastException

java - 从伪代码(NTRUEncrypt)实现递归

java - 在 SpringBootApplication 类中使用服务会抛出 NullPointerException