私はそれぞれ独自のプロパティセットを持つ複数のタイプのノード(ラベル)を持つneo4jインスタンスを持っています。 ( "名前"、 "住所"、 "父親の名前")
"場所"プロパティ( "名前"、 "国"、 "市")を持つラベル "人物"その上
ラベルのプロパティを持つ「イベント」(「名前」、「市」、「カントリー」)
と...Neo4J:すべてのノードとすべてのプロパティを検索するCypher
今、一つの方法は、私が知っているとき、「XYZ」のようなクエリを検索することです仕様:
セイ:マッチ(N:人)n.Name = "XYZ" retuen N
私の質問は、ブラインド検索を行うことができる単一の「効率的な」サイファークエリですか?基本的には、すべてのラベルとすべてのプロパティを検索し、一致するノードを私に与えることができるはずです。だから私のDB内の人物、場所、イベント、および他のラベルのすべてのプロパティと 'xyz'を一致させる単一のクエリ。
非常に長いwhere節を使用している可能性があることを理解しています。私はすべてのラベルとそれぞれのプロパティをハードコードしていますが、私はそれを探していません。これを行うには、先の明日のneo4j Cypherはありますか?
おかげ Abhi
こんにちはステファン、ありがとう。クエリは機能しますが、あなたの言われたように非常に遅いです。現在、私のグラフはわずか数百万のノードであり、クエリには時間がかかります。私はこれがスケーラブルではないことを理解しています。 Neo4jとSolr/Luceneを統合することは選択肢かもしれないと思いますか?そのようなシナリオを処理するためにより最適化されていると信じているので、すべてのユニバーサル検索はLuceneに向けられますか? – user1826116
私たちは同じ問題を抱えており、Apache Solrを使って克服することができました。パフォーマンスはかなり良いですが、私たちが直面した唯一の欠点であるdbへの変更を行うたびに、neo4jと同期する必要があります。 –