ISolrSearchEngineSchema.Fields

Синтаксис Fore

Fields(Type: SearchEngineTargetType): ISolrFields;

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

Fields(Type: Prognoz.Platform.Interop.BISearch.SearchEngineTargetType): Prognoz.Platform.Interop.BISearch.ISolrFields;

Параметры

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

Описание

Свойство Fields возвращает коллекцию полей, по которым хранятся индексированные данные.

Пример Fore

Для выполнения примера предполагается наличие изменений в конфигурационном файле 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.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;

См. также:

ISolrSearchEngineSchema | Системные и пользовательские поля