Fields(Type: SearchEngineTargetType): ISolrFields;
Fields(Type: Prognoz.Platform.Interop.BISearch.SearchEngineTargetType): Prognoz.Platform.Interop.BISearch.ISolrFields;
Type. Purpose of the Solr instance for which it is necessary to get field list.
The Fields property returns collection of fields for which indexed data is stocked.
Executing the example requires changes in the Solr configuration file: the COMMENTS custom field is added to the file, the field is used to search and allows to stock multiple values. Connect the BiSearch, Dal, Fore, Metabase system assemblies.
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;
//Synchronization of custom fields lists
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;
//Save
SharedParams.SearchEngine := SearchEngine;
(SharedParams As IMetabaseObject).Save;
End Sub UserProc;
On executing the example in repository search and indexing settings the list of custom fields for which indexed data is stocked will be changed: the custom field which is present in the Solr configuration file will be added to the list.
The requirements and result of the Fore.NET example execution match with those in the Fore example.
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;
//Synchronization of custom fields lists
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;
//Save
SharedParams.SearchEngine := SearchEngine;
(SharedParams As IMetabaseObject).Save();
End Sub;
See also: