public KnowledgeGraphCursor SubmitQuery( KnowledgeGraphQueryFilter queryFilter )
Public Function SubmitQuery( _ ByVal queryFilter As KnowledgeGraphQueryFilter _ ) As KnowledgeGraphCursor
Parameters
- queryFilter
- The query filter to submit
public KnowledgeGraphCursor SubmitQuery( KnowledgeGraphQueryFilter queryFilter )
Public Function SubmitQuery( _ ByVal queryFilter As KnowledgeGraphQueryFilter _ ) As KnowledgeGraphCursor
Exception | Description |
---|---|
ArcGIS.Core.CalledOnWrongThreadException | This method or property must be called within the lambda passed to QueuedTask.Run. |
//On the QueuedTask... //and assuming you have established a connection to a knowledge graph //... //Construct an openCypher query - return the first 10 entities (whatever //they are...) var query = "MATCH (n) RETURN n LIMIT 10";//default limit is 100 if not specified //other examples... //query = "MATCH (a:Person) RETURN [a.name, a.age] ORDER BY a.age DESC LIMIT 50"; //query = "MATCH (b:Person) RETURN { Xperson: { Xname: b.name, Xage: b.age } } ORDER BY b.name DESC"; //query = "MATCH p = (c:Person)-[:HasCar]-() RETURN p ORDER BY c.name DESC"; //Create a query filter //Note: OutputSpatialReference is currently ignored var kg_qf = new KnowledgeGraphQueryFilter() { QueryText = query }; //Optionally - u can choose to include provenance in the results //(_if_ the KG has provenance - otherwise the query will fail) if (includeProvenanceIfPresent) { //see "Get Whether KG Supports Provenance" snippet if (KnowledgeGraphSupportsProvenance(kg)) { //Only include if the KG has provenance kg_qf.ProvenanceBehavior = KnowledgeGraphProvenanceBehavior.Include;//default is exclude } } //submit the query - returns a KnowledgeGraphCursor using (var kg_rc = kg.SubmitQuery(kg_qf)) { //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) { //Graph row is an array, process all returned values... var val_count = (int)graph_row.GetCount(); for (int i = 0; i < val_count; i++) { var retval = graph_row[i]; //Process row value (note: recursive) //See "Process a KnowledgeGraphRow Value" snippet ProcessKnowledgeGraphRowValue(retval); } } } }//WaitForRowsAsync }//SubmitQuery
//On the QueuedTask... //and assuming you have established a connection to a knowledge graph //... //submit query or search to return a KnowledgeGraphCursor //using (var kg_rc = kg.SubmitQuery(kg_qf)) { //using (var kg_rc = kg.SubmitSearch(kg_sf)) { //... //wait for rows to be returned from the server //"auto-cancel" after 20 seconds var cancel = new CancellationTokenSource(new TimeSpan(0, 0, 20)); //catch TaskCanceledException try { while (await kg_rc.WaitForRowsAsync(cancel.Token)) { //check for row events while (kg_rc.MoveNext()) { using (var graph_row = kg_rc.Current) { //Graph row is an array, process all returned values... var val_count = (int)graph_row.GetCount(); for (int i = 0; i < val_count; i++) { var retval = graph_row[i]; //Process row value (note: recursive) //See "Process a KnowledgeGraphRow Value" snippet ProcessKnowledgeGraphRowValue(retval); } } } } } //Timeout expired catch (TaskCanceledException tce) { //Handle cancellation as needed } cancel.Dispose();
Target Platforms: Windows 11, Windows 10