FillSchemaOptions(Type: SearchEngineTargetType): Boolean;
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.
Предполагается, что репозиторий настроен на работу с поисковым сервисом на базе 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.
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;
См. также: