ArcGIS Pro 3.7 API Reference Guide
ArcGIS.Core.Data.Knowledge Namespace / KnowledgeGraphSearchFilter Class / ReturnSearchContext Property
Example

In This Topic
    ReturnSearchContext Property
    In This Topic
    Gets or sets whether to include search context fields. The default value is false.
    Syntax
    Public Property ReturnSearchContext As Boolean
    public bool ReturnSearchContext {get; set;}
    Remarks
    Search context fields include propertyNames, scores and highlights. If ReturnSearchContext is set true, then the cypher_clause is ignored and exactly the tuple { id(doc), [propertyName1, ..., propertyNameN], [score1,..., scoreN], [highlight1, ..., highlightN]} is returned in the result set for each document. The default value is false.
    Example
    Submit a Text Search
    {
      await QueuedTask.Run(async () =>
      {
        //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 Home, Pro, Enterprise (64 bit)

    ArcGIS Pro version: 3.2 or higher.
    See Also