Supponiamo che il vostro soggetto User
è modellata come
@Document
class User {
String firstName;
String middleName;
String lastName;
String emailId;
}
e vogliono avere un indice di testo in base alla sua firstName, campi middleName, Cognome e EMAILID, la definizione dell'indice MongoDB grezzo sarebbe simile a questa :
{
firstName: "text",
middleName: "text",
lastName: "text",
emailId: "text"
}
per create a text index sui campi sopra si desidera avere ricerca a testo integrale abilitata su, effettuare le seguenti operazioni
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);
oppure è possibile creare l'indice automaticamente attraverso le annotazioni di mappatura:
@Document
class User {
@TextIndexed String firstName;
@TextIndexed String middleName;
@TextIndexed String lastName;
@TextIndexed String emailId;
}