2016-03-29 2 views
2

フィルタリング中にサイファークエリの最適化について疑問があります。 エンティティとアドレスノードの間には関係がある。ここに2つのクエリがあります -サイファークエリでフィルタリングする方が良いです

match(a:Address)<-[r]-(e:Entity) where a.addressLocation=~".*(?i)ABC XYZ.*" return r 

match(e:Entity)-[r]->(a:Address) where a.addressLocation=~".*(?i)ABC XYZ.*" return r 

上記の2つのクエリのうち、どちらが優れていますか?

答えて

1

Useコマンド

profile match(a:Address)<-[r]-(e:Entity) where a.addressLocation=~".*(?i)ABC XYZ.*" return r 
profile match(e:Entity)-[r]->(a:Address) where a.addressLocation=~".*(?i)ABC XYZ.*" return r 

この2つのクエリでネオのバージョンのいずれかの違いがあるかどうかを確認します。 また、私は私が私で2番目のクエリを使用していますここhttp://neo4j.com/docs/stable/execution-plans.html

+0

ありがとうございます。 – RCS

1

ああええ! ああええ! ああええ!

+0

を見てプロファイリングの詳細については

match(a:Address) where a.addressLocation=~".*(?i)ABC XYZ.*" with a Match (a)<-[r]-(e:Entity) return r 

のようなクエリを使用してみてくださいcreteria a.addressLocation=~".*(?i)ABC XYZ.*" であなたが知っている場合はアドレスの数が少ないということを示唆しています複数のエンティティがaddressLocationを共有していて、Neo4jデータベースに数百万のEntityとAddressノードがあるRest App。時々それはうまく働いて、時々私は休憩AppでReadTimeOut Exceptionをくれました。 – RCS

+0

それは理由です、私は私のクエリを適切にフィルタできれば、私はReadTimeOut例外を取得することを避けることができると思っています。 ReadTimeOutの例外を乗り越える方法は他にありますか教えてください。 – RCS

+0

私は自分の答えを編集しました。役立つかどうかを確認してください – hspandher

関連する問題