ArcGIS Pro 3.4 API Reference Guide
ArcGIS.Core.Data.Knowledge Namespace / KnowledgeGraphSearchFilter Class / KnowledgeGraphSearchFilter Constructor
Example

In This Topic
    KnowledgeGraphSearchFilter Constructor
    In This Topic
    Represents a filter for performing a full text search against a KnowledgeGraph.
    Syntax
    public KnowledgeGraphSearchFilter()
    Public Function New()
    Example
    Submit a Text Search
    //On the QueuedTask...
    //and assuming you have established a connection to a knowledge graph
    //...
    //Construct a KG search filter. Search text uses Apache Lucene Query Parser
    //syntax - https://lucene.apache.org/core/2_9_4/queryparsersyntax.html
    var kg_sf = new KnowledgeGraphSearchFilter()
    {
      SearchTarget = KnowledgeGraphNamedTypeCategory.Entity,
      SearchText = "Acme Electric Co.",
      ReturnSearchContext = true,
      MaxRowCount = 10 //Default is 100 if not specified
    };
    
    //submit the search - returns a KnowledgeGraphCursor
    var e = 0;
    using (var kg_rc = kg.SubmitSearch(kg_sf))
    {
      //wait for rows to be returned from the server
      //note the "await"...
      while (await kg_rc.WaitForRowsAsync())
      {
        //Rows have been retrieved - process this "batch"...
        while (kg_rc.MoveNext())
        {
          //Get the current KnowledgeGraphRow
          using (var graph_row = kg_rc.Current)
          {
            //We are returning entities from this search
            var entity = graph_row[0] as KnowledgeGraphEntityValue;
            var entity_type = entity.GetTypeName();
            var record = new List<string>();
            //discover keys(aka "fields") dynamically via GetKeys
            foreach (var prop_name in entity.GetKeys())
            {
              var obj_val = entity[prop_name] ?? "null";
              record.Add(obj_val.ToString());
            }
            System.Diagnostics.Debug.WriteLine(
              $"{entity_type}[{e++}] " + string.Join(", ", record));
            //or use "Process a KnowledgeGraphRow Value" snippet
            //ProcessKnowledgeGraphRowValue(entity);
          }
        }
      }//WaitForRowsAsync
    }//SubmitSearch
    Requirements

    Target Platforms: Windows 11, Windows 10

    ArcGIS Pro version: 3.2 or higher.
    See Also