说我有一些叫做候选人的收藏。我想在此集合内的所有字段上创建一个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
注释,但是由于只能将其应用于字段,因此如何使用它对整个集合编制索引?
答案 0 :(得分:1)
使用@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