Fields(Type: SearchEngineTargetType): ISolrFields;
Fields(Type: Prognoz.Platform.Interop.BISearch.SearchEngineTargetType): Prognoz.Platform.Interop.BISearch.ISolrFields;
Type. Назначение экземпляра Solr, для которого необходимо получить список полей.
Свойство Fields возвращает коллекцию полей, по которым хранятся индексированные данные.
Для выполнения примера предполагается наличие изменений в конфигурационном файле Solr: в файл добавлено пользовательское поле «COMMENTS», поле предназначено для поиска и допускает хранение множественных значений. Подключите системные сборки: BiSearch, Dal, Fore, Metabase.
Sub UserProc;
Var
MB: IMetabase;
SharedParams: ISharedParams;
SearchEngine: ISolrSearchEngineService;
Schema: ISolrSearchEngineSchema;
Fields: ISolrFields;
Field: ISolrField;
Begin
MB := MetabaseClass.Active;
SharedParams := MB.SpecialObject(MetabaseSpecialObject.SharedParams).Edit As ISharedParams;
SearchEngine := SharedParams.SearchEngine As ISolrSearchEngineService;
Schema := SearchEngine.SearchEngineSchema As ISolrSearchEngineSchema;
//Синхронизация списков пользовательских полей
Fields := Schema.Fields(SearchEngineTargetType.SourceData);
Field := Fields.AddField("COMMENTS", SolrFieldType.Search);
Field.DataType := DbDataType.String;
Field.MultiValue := True;
Field.IncludeInSearchResult := False;
(Field As ISolrSearchField).BoostFactor := 9;
//Сохранение
SharedParams.SearchEngine := SearchEngine;
(SharedParams As IMetabaseObject).Save;
End Sub UserProc;
При выполнении примера в настройках поиска и индексации репозитория будет изменен список пользовательских полей, по которым хранятся индексированные данные: в список будет добавлено то пользовательское поле, которое присутствует в конфигурационном файле Solr.
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.
Imports Prognoz.Platform.Interop.BISearch;
Imports Prognoz.Platform.Interop.Dal;
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;
Fields: ISolrFields;
Field: ISolrField;
Begin
MB := Params.Metabase;
SharedParams := MB.SpecialObject[MetabaseSpecialObject.msoSharedParams].Edit() As ISharedParams;
SearchEngine := SharedParams.SearchEngine As ISolrSearchEngineService;
Schema := SearchEngine.SearchEngineSchema As ISolrSearchEngineSchema;
//Синхронизация списков пользовательских полей
Fields := Schema.Fields[SearchEngineTargetType.settSourceData];
Field := Fields.AddField("COMMENTS", SolrFieldType.sftSearch);
Field.DataType := DbDataType.ddtString;
Field.MultiValue := True;
Field.IncludeInSearchResult := False;
(Field As ISolrSearchField).BoostFactor := 9;
//Сохранение
SharedParams.SearchEngine := SearchEngine;
(SharedParams As IMetabaseObject).Save();
End Sub;
См. также: