私は、グラフのノードから2km以内にあるノードを見つけるためにクエリをまとめようとしています。 「手の2キロ以内に今OrientDBのサブセレクト付きのルート付き空間クエリ
CREATE INDEX GeoGlyph.index.Location
ON GeoGlyph(Latitude,Longitude) SPATIAL ENGINE LUCENE
は、私が欲しいのノードを見つけるために:私は、空間インデックスを使用して作成してい
Name,Latitude,Longitude
Hummingbird,-14.692131,-75.148892
Monkey,-14.706940,-75.138532
Condor,-14.697444,-75.126208
Spider,-14.694145,-75.122381
Spiral,-14.688277,-75.122746
Hands,-14.694459,-75.113881
Tree,-14.693898,-75.114520
Astronaut,-14.745222,-75.079755
Dog,-14.706401,-75.130788
Wing,-14.680309,-75.100385
Parrot,-14.689463,-75.107498
:私はナスカの地上絵からいくつかの地上絵をマークしたデータセットを持っていると言います「グリフ、私は手動で緯度/経度の座標に置くことによって、このクエリで入力できます。
:SELECT Name, Latitude, Longitude, $distance AS Distance
FROM GeoGlyph
WHERE [Latitude,Longitude,$spatial]
NEAR [-14.694459,-75.113884,{"maxDistance":2}]
ORDER BY Distance
私は結果を得ます
+----+------+----------+----------+--------------------+
|# |Name |Latitude |Longitude |Distance |
+----+------+----------+----------+--------------------+
|0 |Hands |-14.694459|-75.113884|5.230883384236603E-6|
|1 |Tree |-14.693897|-75.11446 |0.08836486627516459 |
|2 |Spider|-14.694363|-75.12358 |1.0442063409276094 |
|3 |Spiral|-14.688309|-75.12276 |1.1754176535538237 |
|4 |Condor|-14.698346|-75.128334|1.6149944044266815 |
+----+------+----------+----------+--------------------+
これまでのところ、とても良いです。
座標を入力するのはちょっと難しいので、2km以内のグリフを探して、名前フィールド「手」を使ってください。
これは私が現在立ち往生している場所です。私は私が欲しいものを得るためにLET blockを使用することができるはずだと思う...しかし、私はこれまで試したが動作していない:
SELECT *,$distance AS Distance
FROM GeoGlyph
LET $temp = (SELECT * FROM GeoGlyph WHERE Name = "Hands")
WHERE [Latitude,Longitude,$spatial]
NEAR [$temp.Latitude, $temp.Longitude,{"maxDistance":2}]
ORDER BY Distance
任意の提案ですか?
first()関数の使い方についてもう少し説明できますか?私はあなたの質問によく似た何かに苦労していました。あなたのアプローチが解決するかもしれません。 [http://stackoverflow.com/q/43861961/5013735] (http://stackoverflow.com/q/43861961/5013735)それを試す時間! – Jobel
@jobelこんにちは、ここで私の理解は、LET $ temp =(SELECT ...)のトリックは実際に$ tempが結果のリストを格納していることです。私の例では、名前フィールドが一意であるので、$ tempはその中に1つのエントリしか持たないことを知っているので、first()を使ってそのリストから最初のエントリを取り出し、その要素を参照することができます。 – TxAG98