RemoveDocsByFieldName(Core: ISolrSearchEngineCore; FieldName: String; Values: Array): Boolean;
RemoveDocsByFieldName(Core: Prognoz.Platform.Interop.BISearch.ISolrSearchEngineCore; FieldName: String; Values: Array): Boolean;
Core. Экземпляр Solr, с которым осуществляется работа.
FieldType. Наименование поля, по которому необходимо удалить документы.
Values. Массив индексированных значений.
Метод RemoveDocsByFieldName удаляет документы Apach Solr, связанные с указанным полем и в которых хранятся указанные индексированные значения.
Наименование поля, по которому необходимо удалить документы, является регистрозависимым.
Метод возвращает значение True, если удаление прошло удачно и False, если удаление по каким-либо причинам невозможно.
Список экземпляров Solr можно получить в свойстве ISolrSearchEngineService.Cores.
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.
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;
См. также: