From 973547a18ab76e0954f9656bd511000e7ac1ad5c Mon Sep 17 00:00:00 2001 From: Wilfried Goesgens Date: Tue, 7 Mar 2017 10:45:01 +0100 Subject: [PATCH] new examples --- .../geoIndexFilterOptimization.generated | 53 ++++++++++++ .../geoIndexSortOptimization.generated | 86 +++++++++++++++++++ 2 files changed, 139 insertions(+) create mode 100644 Documentation/Examples/geoIndexFilterOptimization.generated create mode 100644 Documentation/Examples/geoIndexSortOptimization.generated diff --git a/Documentation/Examples/geoIndexFilterOptimization.generated b/Documentation/Examples/geoIndexFilterOptimization.generated new file mode 100644 index 0000000000..2a50fb8bc8 --- /dev/null +++ b/Documentation/Examples/geoIndexFilterOptimization.generated @@ -0,0 +1,53 @@ +arangosh> db.geoFilter.ensureIndex({ type: "geo", fields: [ "latitude", "longitude" ] }); +{ + "id" : "geoFilter/25953", + "type" : "geo2", + "fields" : [ + "latitude", + "longitude" + ], + "constraint" : false, + "unique" : false, + "ignoreNull" : true, + "sparse" : true, + "isNewlyCreated" : true, + "code" : 201 +} +arangosh> for (i = -90; i <= 90; i += 10) { +........> for (j = -180; j <= 180; j += 10) { +........> db.geoFilter.save({ name : "Name/" + i + "/" + j, latitude : i, longitude : j }); +........> } +........> } +arangosh> var query = "FOR doc in geoFilter FILTER distance(doc.latitude, doc.longitude, 0, 0) < 2000 RETURN doc" +arangosh> db._explain(query, {}, {colors: false}); +Query string: + FOR doc in geoFilter FILTER distance(doc.latitude, doc.longitude, 0, 0) < 2000 RETURN doc + +Execution plan: + Id NodeType Est. Comment + 1 SingletonNode 1 * ROOT + 6 IndexNode 703 - FOR doc IN geoFilter /* geo2 index scan */ + 5 ReturnNode 703 - RETURN doc + +Indexes used: + By Type Collection Unique Sparse Selectivity Fields Ranges + 6 geo2 geoFilter false true n/a [ `latitude`, `longitude` ] WITHIN(doc, 0, 0, 2000, false) + +Optimization rules applied: + Id RuleName + 1 geo-index-optimizer + 2 remove-unnecessary-calculations-2 + + +arangosh> db._query(query); +[ + { + "_key" : "27010", + "_id" : "geoFilter/27010", + "_rev" : "_UoelIj6--C", + "name" : "Name/0/0", + "latitude" : 0, + "longitude" : 0 + } +] +[object ArangoQueryCursor, count: 1, hasMore: false] diff --git a/Documentation/Examples/geoIndexSortOptimization.generated b/Documentation/Examples/geoIndexSortOptimization.generated new file mode 100644 index 0000000000..45e1d275c1 --- /dev/null +++ b/Documentation/Examples/geoIndexSortOptimization.generated @@ -0,0 +1,86 @@ +arangosh> db.geoSort.ensureIndex({ type: "geo", fields: [ "latitude", "longitude" ] }); +{ + "id" : "geoSort/30200", + "type" : "geo2", + "fields" : [ + "latitude", + "longitude" + ], + "constraint" : false, + "unique" : false, + "ignoreNull" : true, + "sparse" : true, + "isNewlyCreated" : true, + "code" : 201 +} +arangosh> for (i = -90; i <= 90; i += 10) { +........> for (j = -180; j <= 180; j += 10) { +........> db.geoSort.save({ name : "Name/" + i + "/" + j, latitude : i, longitude : j }); +........> } +........> } +arangosh> var query = "FOR doc in geoSort SORT distance(doc.latitude, doc.longitude, 0, 0) LIMIT 5 RETURN doc" +arangosh> db._explain(query, {}, {colors: false}); +Query string: + FOR doc in geoSort SORT distance(doc.latitude, doc.longitude, 0, 0) LIMIT 5 RETURN doc + +Execution plan: + Id NodeType Est. Comment + 1 SingletonNode 1 * ROOT + 7 IndexNode 703 - FOR doc IN geoSort /* geo2 index scan */ + 5 LimitNode 5 - LIMIT 0, 5 + 6 ReturnNode 5 - RETURN doc + +Indexes used: + By Type Collection Unique Sparse Selectivity Fields Ranges + 7 geo2 geoSort false true n/a [ `latitude`, `longitude` ] NEAR(doc, 0, 0) + +Optimization rules applied: + Id RuleName + 1 geo-index-optimizer + 2 remove-unnecessary-calculations-2 + + +arangosh> db._query(query); +[ + { + "_key" : "31257", + "_id" : "geoSort/31257", + "_rev" : "_UoelJV6--_", + "name" : "Name/0/0", + "latitude" : 0, + "longitude" : 0 + }, + { + "_key" : "31146", + "_id" : "geoSort/31146", + "_rev" : "_UoelJVm--A", + "name" : "Name/-10/0", + "latitude" : -10, + "longitude" : 0 + }, + { + "_key" : "31254", + "_id" : "geoSort/31254", + "_rev" : "_UoelJV6---", + "name" : "Name/0/-10", + "latitude" : 0, + "longitude" : -10 + }, + { + "_key" : "31260", + "_id" : "geoSort/31260", + "_rev" : "_UoelJV6--A", + "name" : "Name/0/10", + "latitude" : 0, + "longitude" : 10 + }, + { + "_key" : "31368", + "_id" : "geoSort/31368", + "_rev" : "_UoelJWO---", + "name" : "Name/10/0", + "latitude" : 10, + "longitude" : 0 + } +] +[object ArangoQueryCursor, count: 5, hasMore: false]