PointおよびLineStringの地理空間クエリー
PointおよびLineStringの地理空間クエリーの実行方法。
PointおよびLineStringの地理空間クエリーを実行します。
地理空間カラムを使用したCQLテーブルの作成
地理空間フィールド型については、テーブルを作成または変更するときに単一引用符でデータ型名を囲みます。例を次に示します。
CREATE TABLE test ( id text PRIMARY KEY, point 'PointType', linestring 'LineStringType');
検索インデックスの作成
基本的な検索インデックスを作成します。地理空間型は作成したインデックスに含められ、SpatialRecursivePrefixTreeFieldTypeとしてインデックスが作成され、PolygonTypeに対して寛大なモードが不要になります。
地理空間データの挿入または更新
データベースでデータを挿入または更新するには、INSERTまたはUPDATEコマンドでgeo型を指定します。例を次に示します。
INSERT INTO test (id, point, linestring) VALUES ('1', 'POINT(5 50)', 'LINESTRING (30 10, 10 30, 40 40)' ); INSERT INTO test (id, point, linestring) VALUES ('2', 'POINT(100 100)', 'LINESTRING (50 20, 20 40, 50 50)' );
地理空間データのクエリー実行
ポイント(4, 49)から10単位半径内のポイントを検索します。
SELECT * FROM test WHERE solr_query= '{ "q":"*:*", "fq":"point:\"IsWithin(BUFFER(POINT(4.0 49.0), 10.0))\"" }';
id | linestring | point | solr_query
----+----------------------------------------------+------------------+------------
1 | LINESTRING (30.0 10.0, 10.0 30.0, 40.0 40.0) | POINT (5.0 50.0) | null
(1 rows)
ポイント(10, 30)を含むラインストリングを検索します。
SELECT * FROM test WHERE solr_query='linestring:"Intersects(POINT(10 30))"';
id | linestring | point | solr_query
----+----------------------------------------------+------------------+------------
1 | LINESTRING (30.0 10.0, 10.0 30.0, 40.0 40.0) | POINT (5.0 50.0) | null
(1 rows)
ラインストリング上のすべてのポイントを検索し、ヒートマップを返します。
SELECT * FROM test WHERE solr_query='{"q":"id:*", "facet": {"heatmap": "point"}}';
facet_heatmaps
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
{
"point":{
"gridLevel":4,
"columns":16,
"rows":16,
"minX":-1000.0,
"maxX":1000.0,
"minY":-1000.0,
"maxY":1000.0,
"counts_ints2D":[
null,
null,
null,
[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0],
null,
[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,7,3,0,0,0,0,0,0],
null,
null,
null,
null,
null,
null,
null,
null
]
}
}
以下のパラメータの完全なリストを参照してください。 https://lucene.apache.org/solr/guide/6_6/spatial-search.html#SpatialSearch-HeatmapFaceting.