通过注释使用默认语言在spring数据中为mongodb定义通配符文本索引

通过注释使用默认语言在spring数据中为mongodb定义通配符文本索引,mongodb,wildcard,Mongodb,Wildcard,我目前正在尝试通过注释为MongoDB(v.2.3.7,MongoDB 4.2.8社区)的spring数据中的模型创建通配符文本索引 目前,我使用@compoundex注释创建此索引。通常情况下,索引是在集合中的MongoDB中自动创建的。不幸的是,我不知道如何使用此注释设置默认的_语言,因此索引总是使用默认语言(即英语)创建的 以下是模型的基本(简称)定义: @Document(collection = "events") @CompoundIndexes({ @C

我目前正在尝试通过注释为MongoDB(v.2.3.7,MongoDB 4.2.8社区)的spring数据中的模型创建通配符文本索引

目前,我使用
@compoundex
注释创建此索引。通常情况下,索引是在集合中的MongoDB中自动创建的。不幸的是,我不知道如何使用此注释设置默认的_语言,因此索引总是使用默认语言(即英语)创建的

以下是模型的基本(简称)定义:

@Document(collection = "events")
@CompoundIndexes({
    @CompoundIndex(name = "fulltext", def = "{'$**':'text'},{default_language:'german'}")
})
public class Event {
    public Event() {
    }

    protected String name;
...
}
如您所见,我只是(天真地)尝试添加
default\u language
属性作为注释中
def
属性的一部分,但它似乎被忽略了。根据,在MongoDB中,
def
属性的值基本上被用作创建索引调用的“JSON格式的实际索引定义”,因此我认为它可能是这样工作的。嗯,事实并非如此。似乎定义的第二部分被忽略了

如果我使用以下命令直接在mongo shell中创建索引,所有操作都正常,并且我可以看到使用语言设置创建的索引:

> db.events.createIndex({'$**':'text'},{default_language: "german"})
有没有人知道如何使用注释创建具有特定默认语言的通配符文本索引? 我完全知道,我可能可以通过以下方式以编程方式解决此问题

TextIndexDefinitionBuilder text = new TextIndexDefinitionBuilder().onAllFields().withDefaultLanguage("german").build();
但是使用注释会更加优雅,以保持代码库的苗条