如何使用Spring为Text Search设置default_language

时间:2018-05-29 11:01:33

标签: spring mongodb spring-data full-text-search spring-data-mongodb

在我的模型中,我设置了app.get/post/put...注释,将字段添加到MongoDB的全文索引中:

@TextIndexed

到目前为止这是有效的。

但是如何为索引设置default_language为“De”?

我注意到,当在模型实体上找到语言属性时,Spring会自动设置该语言。 至少这种行为指向了这个结论。 但是,我没有找到任何关于此的文档?

我的模型此时没有语言属性,所以我想知道如何实现这个目标?

1 个答案:

答案 0 :(得分:1)

根据unit test's,可以通过@Document注释将类注释为默认语言。 reference documentation中还有一节。基本上使用与单元测试中相同的代码:

@Document(language = "german")
static class TextIndexedDocumentRoot {

        @TextIndexed String textIndexedPropertyWithDefaultWeight;
        @TextIndexed(weight = 5) String textIndexedPropertyWithWeight;

        TextIndexedDocumentWihtLanguageOverride nestedDocument;
    }

    static class TextIndexedDocumentWihtLanguageOverride {

        @Language String lang;

        @TextIndexed String textIndexedPropertyInNestedDocument;

        String nonTextIndexedProperty;
    }
}

请注意,@Language注释用作language_override setting,但这实际上会发生在“子文档”中,如默认字段名称"language"所示,它是enabling multi language support的一种常见模式,文档中存储了不同的语言短语。

另请注意,语言可以是"german""de"作为ISO代码,也可以是文档中列出的Text Search Languages支持的任何内容。其他选项仅在Enterprise Edition中提供。