Click or drag to resize
OSIsoft, LLC

AFAnalysisSearch Class

This class is an implementation of the abstract AFSearch class the supports searching for AFAnalysis objects.

Inheritance Hierarchy
SystemObject
  OSIsoft.AF.SearchAFSearch
    OSIsoft.AF.SearchAFSearchAFAnalysis
      OSIsoft.AF.SearchAFAnalysisSearch

Namespace:  OSIsoft.AF.Search
Assembly:  OSIsoft.AFSDK (in OSIsoft.AFSDK.dll) Version: 2.10.6.195
Syntax
public sealed class AFAnalysisSearch : AFSearch<AFAnalysis>

The AFAnalysisSearch type exposes the following members.

Constructors
  NameDescription
Public methodAFAnalysisSearch(AFDatabase, String, IListAFSearchToken) Obsolete.
Creates an instance of an AFAnalysisSearch to search for AFAnalysis objects using the specified list of search tokens.
Public methodAFAnalysisSearch(AFDatabase, String, IListAFSearchTokenBase)
Creates an instance of an AFAnalysisSearch to search for AFAnalysis objects using the specified list of search tokens.
Public methodAFAnalysisSearch(AFDatabase, String, String)
Creates an instance of an AFAnalysisSearch to search for AFAnalysis objects using the specified search query string.
Top
Properties
  NameDescription
Public propertyCacheInterval
The search's cached automatic refresh interval.
(Inherited from AFSearch.)
Public propertyCacheTimeout
The timeout to clean up the cached search in the server if it has not been used.
(Inherited from AFSearch.)
Public propertyDatabase
The AFDatabase to be searched by the query.
(Inherited from AFSearch.)
Public propertyIdentity
This read-only property specifies the identity of the objects returned from the search.
(Inherited from AFSearch.)
Public propertyPISystem
The PISystem to be searched by the query.
(Inherited from AFSearch.)
Public propertySearchName
The name of the search object.
(Inherited from AFSearch.)
Public propertyThrowOnError
Specifies it an exception will be thrown for missing objects or invalid data in the query.
(Inherited from AFSearch.)
Public propertyTokenCollection
The tokens that represent this search object.
(Inherited from AFSearch.)
Public propertyTokens Obsolete.
The tokens that represent this search object.
(Inherited from AFSearch.)
Top
Methods
  NameDescription
Public methodCode exampleAggregate
Performs all requested aggregates on the objects that match the search criteria.
(Inherited from AFSearch.)
Public methodCode exampleAggregateAsync
Performs all requested aggregates on the objects that match the search criteria asynchronously.
(Inherited from AFSearch.)
Public methodCode exampleBinnedSummaryTBin
Generates a summary broken down by the specified bins for items matching the search criteria.
(Inherited from AFSearch.)
Public methodCode exampleBinnedSummaryAsyncTBin
Generates a summary broken down by the specified bins for items matching the search criteria asynchronously.
(Inherited from AFSearch.)
Public methodClose
Closes the search that is cached in the server.
(Inherited from AFSearch.)
Public methodEquals
Determines whether the specified object is equal to the current object.
(Inherited from Object.)
Public methodFindAnalyses Obsolete.
This method will return the AFAnalysis objects that match the search tokens.
Public methodCode exampleFindObjectFields(String, Int32, Int32)
This method will return the values as an IList for the specified fields for each of the objects that match the search tokens.
(Inherited from AFSearchT.)
Public methodCode exampleFindObjectFieldsTObject(Int32, Int32)
This method will return the values for the fields defined by the user-defined type for each of the objects that match the search tokens.
(Inherited from AFSearchT.)
Public methodCode exampleFindObjectFieldsTObject(String, FuncIListObject, TObject, Int32, Int32)
This method will return the values as an object for the specified fields for each of the objects that match the search tokens using the supplied factory delegate.
(Inherited from AFSearch.)
Public methodCode exampleFindObjectFieldsTObject(String, FuncIListObject, TObject, Int32, Int32)
This method will return the values as an object for the specified fields for each of the objects that match the search tokens using the supplied factory delegate.
(Inherited from AFSearchT.)
Public methodCode exampleFindObjectIds
This method will return a list of the ID for each object that matches the search tokens.
(Inherited from AFSearchT.)
Public methodCode exampleFindObjects
This method will return the objects that match the search tokens.
(Inherited from AFSearchT.)
Public methodCode exampleFrequencyDistribution
Generates a frequency distribution for the specified items.
(Inherited from AFSearch.)
Public methodCode exampleFrequencyDistributionAsync
Generates a frequency distribution for the specified items asynchronously.
(Inherited from AFSearch.)
Public methodStatic memberGetFilters
Get the full list of valid filters for a search query for all servers.
Public methodStatic memberGetFilters(PISystem)
Get the list of valid filters for a search query for the specified server.
Public methodGetHashCode
Serves as the default hash function.
(Inherited from Object.)
Public methodStatic memberGetObjectFields
Get the list of valid object fields that can used for the FindObjectFields(String, Int32, Int32) search for the specified server.
Public methodGetTotalCount
Returns the total count of the items that could be returned from the search query.
(Inherited from AFSearchT.)
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Public methodCode exampleGroupedSummary
Generates summaries broken down by group for items matching the search criteria.
(Inherited from AFSearch.)
Public methodCode exampleGroupedSummaryAsync
Generates summaries broken down by group for items matching the search criteria asynchronously.
(Inherited from AFSearch.)
Public methodCode exampleHistogramTBin
Generates a histogram using the specified weighting for items matching this search.
(Inherited from AFSearch.)
Public methodCode exampleHistogramAsyncTBin
Generates a histogram using the specified weighting for items matching this search asynchronously.
(Inherited from AFSearch.)
Public methodCode exampleIsMatch
Determines if the specified item matches the search query.
(Inherited from AFSearchT.)
Public methodRefresh
Refreshes the search that is cached in the server.
(Inherited from AFSearch.)
Public methodCode exampleSummary(String, AFSummaryTypes)
Summarizes the result of this search.
(Inherited from AFSearch.)
Public methodSummary(String, AFSummaryTypes, String)
Summarizes the result of this search with the specified weighting.
(Inherited from AFSearch.)
Public methodCode exampleSummaryAsync(String, AFSummaryTypes, CancellationToken)
Summarizes the result of this search asynchronously.
(Inherited from AFSearch.)
Public methodSummaryAsync(String, AFSummaryTypes, String, CancellationToken)
Summarizes the result of this search with the specified weighting asynchronously.
(Inherited from AFSearch.)
Public methodToString
Returns a String that represents the current object.
(Inherited from AFSearch.)
Public methodTryFindSearchToken Obsolete.
Find the AFSearchToken associated with the specified AFSearchFilter.
(Inherited from AFSearch.)
Public methodTryFindSearchTokens Obsolete.
Find the AFSearchToken list associated with the specified AFSearchFilter.
(Inherited from AFSearch.)
Top
Remarks

This class provides support for query based searches for AFAnalysis objects. The QuerySearchAnalysis feature can be checked to determine if this query search is supported.

A query string is parsed into search tokens which are used to specify the query filters for the search.

To optimize getting items from several pages of search results, a search can be cached by setting the CacheTimeout to a non-zero value. If you will only be getting items from the first page, then it is best to leave the cache disabled. The cache is disabled by default. Call the Refresh method to refresh the results of a cached search. Use the Close method to close a cached search when finished using it to free the memory used by the cached results in the server. Since the search implements the IDisposable interface, you can call the cached search in a using statement to automatically call the Close method when it leaves scope.

Note Notes to Callers
When a query is too complex for a server, then you will get a NotSupportedException.

Examples
 1// Get the Database
 2PISystems myPISystems = new PISystems();
 3PISystem myPISystem = myPISystems.DefaultPISystem;
 4if (myPISystem == null)
 5    throw new InvalidOperationException("Default PISystem was not found.");
 6AFDatabase myDB = myPISystem.Databases[dbName];
 7if (myDB == null)
 8    throw new InvalidOperationException("Database was not found.");
 9
10// Create the search to find all analyses that have a target 
11// that matches the supplied element's path.
12AFElement element = myDB.Elements["WestPlant"];
13int count;
14using (var search = new AFAnalysisSearch(myDB, "MyAnalysisSearch", string.Format(@"Target:'{0}'", element.GetPath())))
15{
16    search.CacheTimeout = TimeSpan.FromMinutes(10);
17
18    // When the analyses are returned from a find operation, they are only
19    // partially loaded into memory, typically enough to display their 
20    // inherent properties, such as Name, Description, Template, etc.  
21    // When a piece of information is accessed in the analyses that requires more 
22    // information, an RPC to the server is made to fully load the analysis.  
23    // By having the search do a full load, all information is loaded in bulk and
24    // we can reduce the number of RPCs made to retrieve this information.
25    count = search.GetTotalCount();
26    Console.WriteLine("Found {0} Analyses", count);
27    foreach (var item in search.FindObjects(fullLoad: true))
28    {
29        Console.Write("Analysis Name = {0},", item.Name);
30        Console.Write("Analysis Description = {0},", item.Description);
31        Console.Write("Analysis Target = {0}", item.Target);
32        Console.WriteLine();
33    }
34}
Version Information

AFSDK

Supported in: 2.10.5, 2.10, 2.9.5, 2.9, 2.8.5
See Also
Enabling Operational Intelligence