2015-10-14 13 views
5

MongoTemplateを使用して、次のクエリに対してIndexesをどのように作成できますか?私はサイトhttp://docs.mongodb.org/v2.4/tutorial/search-for-text/を参照していますが、MongoTemplateを使用してインデックスを作成する方法についての詳細は何も教えていませんか?MongoTemplateを使用して検索用のインデックスを作成しますか?

db.getCollection('user').ensureIndex({ firstName: "text", middleName : 
"text", lastName : "text",emailId:"text" }); 

答えて

6

エンティティUser

@Document 
class User { 
    String firstName; 
    String middleName; 
    String lastName; 
    String emailId; 
} 

としてモデル化し、そのfirstNameという、middleName、lastNameのとEMAILIDフィールドに基づいてテキストインデックスを持つようにしたいされ、生のMongoDBインデックス定義は次のようになりますと仮定:あなたが持っていると思います上記のフィールド上のcreate a text index

{ 
    firstName: "text", 
    middleName: "text", 
    lastName: "text", 
    emailId: "text" 
} 

春のJavaを使用したモンゴにインデックスを作成するための

@Document 
class User { 
    @TextIndexed String firstName; 
    @TextIndexed String middleName; 
    @TextIndexed String lastName; 
    @TextIndexed String emailId; 
} 
4

最も簡単な方法は、次のようになります:

フルテキスト検索では、次の操作を行います

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); 

それとも、マッピング・アノテーションによって自動的にインデックスを作成することができ、上の有効

// Define ur mongo template defination 

DBObject indexOptions = new BasicDBObject(); 
indexOptions.put("a", 1); 
indexOptions.put("b", 1); 
indexOptions.put("c.d", 1); 
indexOptions.put("e.f", 1); 
CompoundIndexDefinition indexDefinition = 
      new CompoundIndexDefinition(indexOptions); 
mongoTemplate.indexOps(<Classname>.class).ensureIndex(indexDefinition); 

インデックス定義で一意のインデックスを設定できます。 mongoTemplate.indexOps(<Classname>.class).ensureIndex(indexDefinition.unique());

0

春mongodb 2.0.1

TextIndexDefinition textIndex = new TextIndexDefinition.TextIndexDefinitionBuilder().onField(indexName).build(); 

    mongoTemplate.indexOps(DINMonitorLog.class).ensureIndex(textIndex); 
関連する問題