Как установить default_language для текстового поиска с помощью Spring - PullRequest
0 голосов
/ 29 мая 2018

В моей модели я установил аннотацию @TextIndexed, чтобы добавить поле к полнотекстовому индексу MongoDB:

@TextIndexed
private String descriptionShort;

Пока это работает.

Но как можно установить default_languageв «De» для индекса?

Я заметил, что Spring автоматически устанавливает язык, когда в объекте модели обнаруживается свойство языка.По крайней мере, поведение указывало на этот вывод.Тем не менее, я не нашел никаких документов по этому вопросу?

На данный момент у моей модели нет языкового свойства, поэтому мне интересно, как этого добиться?

1 Ответ

0 голосов
/ 29 мая 2018

В соответствии с модульного теста класс можно аннотировать на язык по умолчанию с помощью аннотации @Document.В справочной документации есть также раздел .В основном используется тот же код, что и в модульном тесте:

@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 установкой , но это на самом деле происходит в пределах«подчиненный документ», как показано с именем поля по умолчанию "language" в любом случае, и это общий шаблон для , включающий поддержку нескольких языков с различными языковыми фразами, хранящимися в документе.

Также обратите внимание, что языком может быть "german" или "de" в качестве кода ISO, или что-либо, что поддерживается на Языках текстового поиска , как указано в документации.Другие параметры доступны только в Enterprise Edition.

...