「nodetype」プロパティを使用してノードを追加し、特定のタイプのノードだけを照会したいと考えています。たとえば、世界中の会場のリストである「会場」ノードタイプがあります。各会場には都市にリンクする :IN_REGION があり、国まで :IN_REGION があります。そう:
venue-[:IN_REGION]->city-[:IN_REGION]->province-[:IN_REGION]->country
私は会場であいまい検索を実装しており、上記のいずれかを検索して、上記のすべてを連結した文字列を返す必要があります。バックエンド サーバーではなく、Neo4j でこれを実行したいと考えています。これで実行するのに理想的なクエリは何ですか? 私は次のものを持っています:
START venue=node(*)
WHERE venue.nodetype! ='venue'
WITH venue
MATCH p = address<-[:HAS_ADDRESS]-venue-[r1:IN_REGION]->city-[r2?:IN_REGION]->prov-[r3?:IN_REGION]->country
with venue.name+','+address.streetAddress+','+city.name+','+prov.name+','+country.name as toSearch
WHERE toSearch=~ ".*QUERY_STRING.*"
return toSearch
LIMIT 30
ここで、QUERY_STRING はあいまい検索文字列です。私は主にノード(*)について疑問に思っており、最後にクエリを持っています-これはすべてのノードをくまなく調べますか?また、いくつかのリレーションシップはオプションで、null を返します - どうすればそれを処理できますか?
どんな助けでも大歓迎です!