問題タブ [gremlin]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
lucene - Gremlin の数値比較演算子とワイルドカード
数値比較演算子(>=、<=、<、>、...)を使用してNeo4jで手動インデックスを検索する方法はありますか? Gremlin インデックスの例を見ると、それらはすべて、特定のプロパティ値で検索を提示する傾向があります。
最初の double と 2 番目の int で、「プロパティ」と呼ばれるプロパティに数値を持つ 2 つのタイプの関係が約 10M あるとします。
ここで、double 型のログベースの pvalue である正確なプロパティ値を知っていれば、ノードを簡単に見つけることができます。
代わりに、「プロパティ」の範囲検索を行いたいので、たとえば、「プロパティ」 >= 0 && 「プロパティ」 <= 1.6 のすべてのエッジを見つけます。これはGremlinでできることですか?Gremlin ユーザーのディスカッション グループを見ると、フルテキストの Lucene インデックスからのワイルドカード検索でさえちょっとしたハックであり、Neo4j APIは役に立たないことがわかります。
編集: Stackoverflow でこのような別の質問を見つけました (「Lucene クエリ構文を使用した Neo4j の範囲クエリ」というタイトル。新規ユーザーは最大 2 つのハイパーリンクしか投稿できません)。これは、Neo4j ドキュメントにつながります。数値に ValueContext を使用してインデックスを再作成しました。neo4jディスカッショングループ(タイトル:numericRangeクエリと関係クエリを組み合わせる)で見つかった例に従うことで、次のようなクエリを実行できます
範囲検索を使用します。Gremlin の構文は何ですか? それは次のようなものでなければなりません
これは構文的に正しいですが、その範囲内にプロパティを持つエッジがある場合でも、 count は 0 の結果をもたらします。
neo4j - このクエリはneo4j/gremlinで可能ですか?
次のようなグラフがある場合:
次のことを行う単一のクエリを実行する方法はありますか?
- N3で開始した場合、N2を返します
- そして、N4で開始された同じクエリはN2を返します
- そして、N5で開始された同じクエリはN2を返します
(できればグレムリンで)
編集:明確化:1次の関係が「member_of」である限り、2次の接続まで通過できます。
graph - Gremlin から neo4j GraphAlgoFactory aStar アルゴリズムを呼び出すにはどうすればよいですか?
私は平凡なコーディング スキルを持つデータ サイエンティストなので、これまで neo4j を使用して Java を避け、Cypher と Gremlin を使用してきました。
各エッジに重みプロパティを付けて、多数のグラフ データを neo4j に押し込みました。可能であれば、gremlin コンソール内からこのグラフで aStar または dijkstra を実行したいと思います。JUNG には加重最短経路アルゴリズムがないように思われるので、私は GraphAlgoFactory に目を向けましたが、オンラインでの議論はすべてストレート Java で行われているようです。
私の目標は、重みがエッジの重みプロパティによって決定される、選択した 2 つの頂点間の最短の重み付きパスを取得することです。
ありがとう!
indexing - 200K ノードと 450K リレーションでの neo4j カウント ノードのパフォーマンス
私たちは、 neo4jとphpに基づいて、約20 万ノードのアプリケーションを開発しています。各ノードには、 アプリケーションの特定のエンティティのようなプロパティtype='user'
またはその エンティティを示すプロパティがあります。type='company'
グラフ内の特定のタイプのすべてのノードの数を取得する必要があります。
そのプロパティのノードを保持する のusers
ようなすべてのエンティティのインデックスを作成しました。companies
したがって、users
インデックス内には130Kノードが存在し、残りはcompanies
.
Cypher では、このようにクエリを実行します。
そして結果は
サーバーは少し調整してデフォルトとして構成されていますが、4 秒は私たちのニーズには長すぎます。データベースは 1 か月で 20,000 になると考えてください。
おそらくGremlinまたは他のサーバープラグインを使用して、これを行う他の方法はありますか? これらの結果をキャッシュしますが、これを微調整できるかどうか知りたいです。
どうもありがとうございました。私の下手な英語で申し訳ありません。
php - PHPスクリプトはコマンドラインで実行されません
コード:
次のようにコマンドラインでこれを実行すると、次のようになります。
正常に動作します。しかし、私がこのように実行すると:
何もしません。理由がわかりません。
編集:すべてを送信できないため、ほとんどすべてのコードを削除する必要がありました。
graph - Gremlin クエリ: これをループで記述する別の方法
アイテムを含む配列を保存してから、それぞれをループして out を実行し、it.name; にアタッチします。反復 (カウント) して、配列の長さを超えないようにします。
neo4j - Neo4jとGremlinを使用してACLのセキュリティを決定する
私はNeo4jを調査して、アクセス制御リストを実装するためのパフォーマンスを比較しています。これはぴったりのようです。
これは、この正確なユースケースを説明する数年前の記事です。 http://blog.neo4j.org/2010/02/access-control-lists-graph-database-way.html。
ただし、has_access
メソッドはルビーで書かれています。大きなグラフでは、gremlinを使用してサーバーでクエリを処理する方が効率的だと思います。ユーザーがGremlinを使用してノードにアクセスできるかどうかをどのように判断しますか?
ありがとう!
graph - グレムリンはすべての頂点を削除します
idで頂点を削除する方法は知っていますが、複数の頂点を削除する必要があります(データベースをクリーンアップします)。
1vの削除は次のようになります。
graph-databases - 頂点および頂点自体へのすべてのエッジを削除する
特定の頂点について、その頂点に出入りするすべてのエッジを削除してから、頂点自体を削除するグレムリン式を作成しようとしています。
グラフデータベースとしてOrientDB1.3-SNAPSHOTを使用しています。
これはこれまでの私の表現です:
上記でエッジを削除してから2に戻ると、ノードが出力されるはず#8:1
です。ただし、何らかの理由で、次のエラーが発生します。
なぜこうなった?
最後に、頂点を削除するにはどうすればよいですか?ドキュメントremoveVertex()
は、引数(頂点)が必要であることを示しました。back(2)
頂点をからに渡すにはどうすればよいremoveVertex()
ですか?
neo4j - Solr のような Neo4j ファセット フィールド
PHP で構築されたコミュニティ e コマースで Neo4j を使用し、REST インターフェイスを使用しています。
Amazon のような検索結果に関連するすべてのカテゴリを取得する必要があります。この機能は、Solr (Lucene の別の実装) などの他のエンジンでファセット検索として利用できます。
Neo4jでファセット検索を行うにはどうすればよいですか? または、この機能を再現する最善の方法 (パフォーマンス グレード) は何ですか?
この機能に関連するすべての必須モジュールは、neo4j のコア パッケージから除外されます。誰かがグラフ内のすべてのノードを横断せずにこのようなことを試み、いくつかのプロパティを取得し、この値の groupCount を作成しようとしているかどうかを知りたいです。200,000 個のノードがある場合、横断はカテゴリを取得するだけで 10 秒かかりました。
これが私のグレムリンのアプローチです。
結果は 90 行になり、54 秒かかりました。
もちろん、これは「非入力検索」のためなので、この結果をキャッシュに入れることはできません。ユーザーが「Iphone」のようなクエリを作成すると、クエリは次のようになります