【问题标题】:How do I set the default_language for Text Search with Spring如何使用 Spring 为文本搜索设置 default_language
【发布时间】:2018-05-29 11:01:32
【问题描述】:

在我的模型中,我设置了@TextIndexed 注释以向 MongoDB 的全文索引添加一个字段:

@TextIndexed
private String descriptionShort;

到目前为止有效。

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

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

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

【问题讨论】:

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


    【解决方案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 支持的任何内容。其他选项仅在企业版中可用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 1970-01-01
      • 1970-01-01
      • 2018-02-27
      • 1970-01-01
      • 2018-09-05
      • 2019-07-10
      相关资源
      最近更新 更多