ISolrSearchEngineSchema.FillSchemaOptions

Синтаксис Fore

FillSchemaOptions(Type: SearchEngineTargetType): Boolean;

Синтаксис Fore.NET

FillSchemaOptions(Type: Prognoz.Platform.Interop.BISearch.SearchEngineTargetType): Boolean;

Параметры

Type. Назначение экземпляра Solr, для которого необходимо заполнить список полей.

Описание

Метод FillSchemaOptions осуществляет заполнение списка полей в соответствии с настройками, которые заданы в конфигурационном файле для текущего экземпляра Solr.

Комментарии

В виду отсутствия прямого доступа к конфигурационным файлам Apache Solr из Fore для изменения списка полей необходимо отредактировать файлы конфигурации Apache Solr вручную. Более подробно об изменении списка читайте в подразделе «Настройка настольного приложения > Поля».

Метод FillSchemaOptions позволяет произвести синхронизацию списка полей в настройках репозитория в соответствии со списком полей из конфигурационного файла. Также, если параметры необходимых пользовательских полей известны, то в коллекцию их можно добавить с помощью метода ISolrFields.AddField.

В качестве значения параметра Type допустимо использовать только SearchEngineTargetType.SourceData и SearchEngineTargetType.MbObject.

Пример Fore

Предполагается, что репозиторий настроен на работу с поисковым сервисом на базе Apache Solr. Подключите системные сборки: BiSearch, Fore, Metabase.

Sub UserProc;
Var
    MB: IMetabase;
    SharedParams: ISharedParams;
    SearchEngine: ISolrSearchEngineService;
    Schema: ISolrSearchEngineSchema;
Begin
    MB := MetabaseClass.Active;
    SharedParams := MB.SpecialObject(MetabaseSpecialObject.SharedParams).Edit As ISharedParams;
    SearchEngine := SharedParams.SearchEngine As ISolrSearchEngineService;
    Schema := SearchEngine.SearchEngineSchema As ISolrSearchEngineSchema;
    //Синхронизация списков пользовательских полей
    Schema.FillSchemaOptions(SearchEngineTargetType.SourceData);
    Schema.FillSchemaOptions(SearchEngineTargetType.MbObject);
    //Сохранение
    SharedParams.SearchEngine := SearchEngine;
    (SharedParams As IMetabaseObject).Save;
End Sub UserProc;

При выполнении примера в настройках поиска и индексации репозитория будет осуществлена синхронизация списка пользовательских полей в соответствии с конфигурационным файлом Solr.

Пример Fore.NET

Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.

Imports Prognoz.Platform.Interop.BISearch;
Imports Prognoz.Platform.Interop.KeFore;
Imports Prognoz.Platform.Interop.Metabase;

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    SharedParams: ISharedParams;
    SearchEngine: ISolrSearchEngineService;
    Schema: ISolrSearchEngineSchema;
Begin
    MB := Params.Metabase;
    SharedParams := MB.SpecialObject[MetabaseSpecialObject.msoSharedParams].Edit() As ISharedParams;
    SearchEngine := SharedParams.SearchEngine As ISolrSearchEngineService;
    Schema := SearchEngine.SearchEngineSchema As ISolrSearchEngineSchema;
    //Синхронизация списков пользовательских полей
    Schema.FillSchemaOptions(SearchEngineTargetType.settSourceData);
    Schema.FillSchemaOptions(SearchEngineTargetType.settMbObject);
    //Сохранение
    SharedParams.SearchEngine := SearchEngine;
    (SharedParams As IMetabaseObject).Save();
End Sub;

См. также:

ISolrSearchEngineSchema