ISolrOperations.RemoveDocsByFieldName

Синтаксис Fore

RemoveDocsByFieldName(Core: ISolrSearchEngineCore; FieldName: String; Values: Array): Boolean;

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

RemoveDocsByFieldName(Core: Prognoz.Platform.Interop.BISearch.ISolrSearchEngineCore; FieldName: String; Values: Array): Boolean;

Параметры

Core. Экземпляр Solr, с которым осуществляется работа.

FieldType. Наименование поля, по которому необходимо удалить документы.

Values. Массив индексированных значений.

Описание

Метод RemoveDocsByFieldName удаляет документы Apach Solr, связанные с указанным полем и в которых хранятся указанные индексированные значения.

Комментарии

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

Метод возвращает значение True, если удаление прошло удачно и False, если удаление по каким-либо причинам невозможно.

Список экземпляров Solr можно получить в свойстве ISolrSearchEngineService.Cores.

Пример Fore

Sub UserProc;
Var
    MB: IMetabase;
    SharedParams: ISharedParams;
    SearchEngine: ISolrSearchEngineService;
    Core: ISolrSearchEngineCore;
    Operations: ISolrOperations;
    Arr: Array;
Begin
    MB := MetabaseClass.Active;
    SharedParams := MB.SpecialObject(MetabaseSpecialObject.SharedParams).Bind As ISharedParams;
    SearchEngine := SharedParams.SearchEngine As ISolrSearchEngineService;
    Core := SearchEngine.Cores.Item(0);
    Arr := New Variant[1];
    Arr[0] := "Куб";
    Operations := New SolrOperations.Create;
    Operations.RemoveDocsByFieldName(Core, "name", Arr);  
End Sub UserProc;

При выполнении примера будут удалены документы Solr, которые связаны с полем «name» и содержат индексированное значение - «Куб».

Пример 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;
    Core: ISolrSearchEngineCore;
    Operations: ISolrOperations = New SolrOperationsClass();
    Arr: Array = New Object[1];
Begin
    MB := Params.Metabase;
    SharedParams := MB.SpecialObject[MetabaseSpecialObject.msoSharedParams].Bind() As ISharedParams;
    SearchEngine := SharedParams.SearchEngine As ISolrSearchEngineService;
    Core := SearchEngine.Cores.Item[0];
    Arr[0] := "Куб";
    Operations.RemoveDocsByFieldName(Core, "name", Arr);
End Sub;

См. также:

ISolrOperations