ItemsOnPage: Integer;
Свойство ItemsOnPage определяет количество результатов, доступных на одной странице.
После поиска Solr разбивает все результаты на отдельные страницы. Количество результатов на одной странице задается в свойстве ItemsOnPage. Номер страницы, которая будет загружена, указывается в свойстве ISolrSearchContext.Page.
Предполагается, что репозиторий настроен на работу с поисковым сервисом на базе Apache Solr. В базе поискового сервиса имеются индексированные метаданные различных документов репозитория. Подключите системные сборки: BISearch, Fore, Metabase.
Sub UserProc;
Var
MB: IMetabase;
SharedParams: ISharedParams;
SearchEngine: ISolrSearchEngineService;
Schema: ISolrSearchEngineSchema;
SearchExecutor: ISearchExecutor;
SearchContext: ISolrSourceDataSearchContext;
Results: ISolrSearchResults;
Result: ISearchResult;
i: Integer;
Begin
MB := MetabaseClass.Active;
//Параметры поиска и индексации, заданные для репозитория
SharedParams := MB.SpecialObject(MetabaseSpecialObject.SharedParams).Bind As ISharedParams;
SearchEngine := SharedParams.SearchEngine As ISolrSearchEngineService;
Schema := SearchEngine.SearchEngineSchema As ISolrSearchEngineSchema;
//Параметры поиска
SearchExecutor := Schema.SearchExecutor(SearchEngineTargetType.SourceData);
SearchContext := SearchExecutor.CreateContext As ISolrSourceDataSearchContext;
//Количество результатов на одной странице
SearchContext.ItemsOnPage := 10;
//Номер загружаемой страницы
SearchContext.Page := 0;
SearchContext.Locale := LocaleCodeID.Russian;
SearchContext.Text := "Россия";
SearchContext.SearchType := SolrSearchType.SearchOnly;
//Поиск
Results := SearchExecutor.Search(SearchContext) As ISolrSearchResults;
//Просмотр результатов поиска
For i := 0 To Results.Count - 1 Do
Result := Results.Item(i);
Debug.WriteLine("Наименование: """ + Result.Name + """. Описание: """ + Result.Description + '"');
If Result.HighlightedName <> "" Then
Debug.Indent;
Debug.WriteLine("Значения с подсветкой искомого значения:");
Debug.WriteLine("Наименование: """ + Result.HighlightedName + """. Описание: """ + Result.HighlightedDescription + '"');
Debug.Unindent;
End If;
End For;
End Sub UserProc;
При выполнении примера будет осуществлен поиск указанного значения по индексированной информации об элементах измерений. Для выполнения поиска будут определены различные параметры (тип поиска, язык, количество результатов на одной странице). Из всех найденных значений будет загружена только первая страница, содержащая десять результатов поиска. Полученные результаты будут выведены в консоль среды разработки.
См. также: