//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
Target Platforms: Windows 11, Windows 10