假设我有一些名为候选人的集合。我想在此集合内的所有字段上创建一个 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/