假设您的实体User
建模为
@Document
class User {
String firstName;
String middleName;
String lastName;
String emailId;
}
并且想要基于其 firstName、middleName、lastName 和 emailId 字段的文本索引,原始 MongoDB 索引定义将如下所示:
{
firstName: "text",
middleName: "text",
lastName: "text",
emailId: "text"
}
要在上面要启用全文搜索的字段上创建文本索引,请执行以下操作
TextIndexDefinition textIndex = new TextIndexDefinitionBuilder()
.onField("firstName")
.onField("middleName")
.onField("lastName")
.onField("emailId")
.build();
MongoTemplate mongoTemplate = new MongoTemplate(new Mongo(), "database"); // obtain MongoTemplate
mongoTemplate.indexOps(User.class).ensureIndex(textIndex);
或者您可以通过映射注释自动创建索引:
@Document
class User {
@TextIndexed String firstName;
@TextIndexed String middleName;
@TextIndexed String lastName;
@TextIndexed String emailId;
}