2016-06-28 13 views
0

这里是我的文档类:春数据MongoDB的重载的复合索引的文本索引语言内场

@Document(language = "russian") 

@CompoundIndexes({   
@CompoundIndex(def = "{'tempId' : 1, 'persons.title' : 'text', 'otherPersons.title' : 'text'}", background = true)}) 

public class CompanyHistory implements Persistable<String> { 

@Id 
private String id; 

private String tempId; 
private List<Person> persons; 
private List<OtherPerson> otherPersons; 
... 
} 

PersonOtherPerson包含另一个两串,getteres,setter方法。

问题:在构建复合索引时如何覆盖内部字段的文本索引语言(默认为英语)?它看起来像设置language只适用于@TextIndexed注释。

回答

0

有类似的问题(文本索引的子实体),并试图找到一种方法来设置language_overridedefault_language通过@CompoundIndex,但没有为我工作。

TextIndexDefinition textIndex = new TextIndexDefinition.TextIndexDefinitionBuilder() 
     .withDefaultLanguage("none").withLanguageOverride("dummy") 
     .named("text_user_search") 
     .onField("user.name") 
     .onField("user.mail") 
     .build(); 
mongoTemplate.indexOps(User.class).ensureIndex(textIndex); 

最后我用以下解决方案结束