問題タブ [pyorient]

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.

0 投票する
1 に答える
297 参照

sql - OrientDB: gremlin を使用したテキスト検索

OrientDB と付属の gremlin コンソールを使用しています。

テキストプロパティでパターンを検索しようとしています。ebodyText プロパティを持つ Email 頂点があります。問題は、SQL のようなコマンドと Gremlin 言語でクエリを実行した結果がまったく異なることです。

次のような SQL のようなクエリを使用する場合:

select count(*) from Email where eBodyText like '%Syria%'

24 を返します。

しかし、次のようなgremlinコンソールでクエリを実行すると:

g.V.has('eBodyText').filter{it.eBodyText.matches('.*Syria.*')}.count()

何も返しません。

異なるキーワード「メモ」を使用した同じクエリは、SQL では 161 を返しますが、gremlin では 20 を返します。

なぜこれはこのように振る舞うのですか?gremlin コマンドの構文に問題はありますか? グレムリンでテキストを検索するより良い方法はありますか?

Python ドライバー 'pyorient' を使用するアップロード スクリプトのプロパティの設定に問題がある可能性があります。 データセットのアップロードに使用される Python スクリプト

ご協力いただきありがとうございます。

ここに画像の説明を入力 ここに画像の説明を入力

0 投票する
1 に答える
367 参照

python - pyorientを使用してorientdbにバイナリデータを保存および取得する方法は?

私はpyorientのgithub Readmeにある例に従おうとしていました。を使用してバイナリフィールドを挿入しclient.record_create、同じものをロードしようとしましclient.record_loadた。

ご覧のとおり、取得されたバイナリ フィールドの値は None です。Pyorient は raw バイトの挿入をサポートしていますか? そうでない場合、回避策はありますか?

0 投票する
1 に答える
163 参照

orientdb - 10 万の頂点と 50 万のエッジを持つ大きなグラフを pyorient で Orientdb にインポートするプロセスを最適化するにはどうすればよいですか?

pyorient によって、10 万の頂点と 50 万のエッジを持つグラフを Orientdb にインポートする必要があります。

db.command を 1 つずつ

まず、db.command("create vertex V set a=1") を使用して、すべての頂点とエッジを 1 つずつ挿入します。

でも2時間くらいかかります。

ですから、このプロセスを最適化する方法を見つけたいと思っています。

大量挿入?

次に、 Orientdb がMassive Insertをサポートしていることがわかりましたが、残念ながら pyorient の作成者は大規模な挿入の問題で: トランザクションはありませんか? と述べた

bynary プロトコル (そしてもちろん pyorient の場合) では、大規模な挿入の意図はありません。

SQL バッチ

Pyorient はsql バッチをサポートしています。これはチャンスかも!

すべての挿入コマンドをまとめて、db.batch() で実行するだけです。

たとえば、5000個の頂点と20000個のエッジを持つグラフを取ります

  • SQL バッチ

    /li>
  • オリジナル

    /li>

..SQL バッチのほうがはるかに時間がかかるようです。

ということで、何かいい方法がないか知りたいです。

ありがとう。

0 投票する
2 に答える
530 参照

python-3.x - PyOrientを使用してOrientDBにクラスが存在するかどうかを調べる方法は?

クラスが存在するかどうかを調べるにはどうすればよいですか。これにより、「現在のデータベースにクラス x が既に存在します」というエラー メッセージが表示されなくなりますか?

Java と SQL で回答を提供する次のQuestionを見ました。Pythonに相当するものを探しています。

0 投票する
2 に答える
518 参照

python-3.x - スキーマのない頂点クラスのすべてのプロパティを見つける

クラス Node が V を拡張しています。提供された一連のドキュメント タイプ情報を使用してインスタンスを Node に追加します。OrientDB データベースにクエリを実行し、ノードからいくつかの情報を返したいと考えています。これをフォーマットされた方法で表示するには、考えられるすべてのフィールド名のリストが必要です (私のアプリケーションでは、現在 115 のフィールド名があり、そのうちの 1 つだけがインデックスとして使用されるプロパティです)。

これをpyorientで行うには、これまでに見つけた唯一の解決策は次のとおりです(クライアントはデータベースハンドルの名前です):

試行錯誤を重ねて大体のことは分かってきました。あまり効率的でもエレガントでもありません。確かに、クラスまたはその他の文書型オブジェクトのすべての可能なフィールドのリストをデータベースに返させる方法が必要です。pyorient または SQL コマンドを使用してこれを行う簡単な方法はありますか?

0 投票する
1 に答える
1708 参照

python - Python から OrientDB にアクセスする

100万件を超えるレコードのMySQLデータベースをグラフデータベースに変換したいのですが、それはネットワーク型のデータが強くリンクされているためです。無料版の Neo4J には、衝突する可能性があると思われるいくつかの制限があったため、OrientDB (Community 2.2.0) (Ubuntu Server 16.04 上) をインストールして動作させました。今は Python (3.5.1+) からアクセスする必要があるので、pyorient (1.5.2) を試しています。(最終的には Gremlin を使用したいので、TinkerPop を試しましたが、gremlin コンソールが OrientDB と通信できませんでした。)

次の単純な Python コードは、OrientDB のテスト グラフの 1 つに接続します。

奇妙なエラーが発生します:

それが何であるか、またはどのように修正できるかを誰かが知っていますか? 代わりに本当に TinkerPop を使用する必要がありますか? もしそうなら、私はそれとの闘いについて別の質問を投稿します.

0 投票する
1 に答える
386 参照

python - pyorient が orientdb docker に接続できない

私はpyorient 1.5.4とorientdb 2.2.5のドッカーを使用しています

ブラウザーを使用してデータベースに接続すると、サーバーは明らかに実行されています。Pyorient で接続すると、エラーが発生します。

データベースへの接続に使用するコードは次のとおりです。

次のエラーが表示されます。

次のコマンドで docker コンテナーを作成しました。

ブラウザ経由の接続は正常に機能するため、サーバーは実行されています。

必要なポートが開いているように見えるのに、pyorient がデータベースが閉じていると考えるのはなぜですか?

0 投票する
2 に答える
687 参照

python - PyOrient を使用して OrientDB で関数 (ストアド プロシージャ) を作成する方法は?

PyOrient を使用して OrientDB グラフ データベースを作成しようとしていますが、関数を機能させるのに十分なドキュメントが見つかりません。record_createを使用してクラスターに関数を作成できましたがofunction、クラッシュはしませんが、機能していないようです。これが私のコードです:

すべてのselect addURLビットを実行すると問題なく実行されますが、select * from URL単にタイムアウトになります。おそらく (Studio でデータベースを調べて発見したように) まだURL頂点がないためです。空のリストを返したり、有用なエラーメッセージを表示したりするのではなく、なぜタイムアウトする必要があるのか​​ はわかりません。

PyOrient を使用して関数を作成する簡単な方法はありますか?

私は Studio で関数を書きたいだけではありません。なぜなら、私はプロトタイピングを行っており、壊れた実験グラフをドロップするたびに失われるのではなく、Python コードから関数を書きたいからです!

私は主にOrientDB wiki ページを使用して OrientDB の機能について調べ、PyOrient github ページをほぼ唯一のドキュメント ソースとして使用しています。


編集:SQLで機能する関数を作成できました(以下の自分の回答を参照)が、頂点を作成する機能するJavascript関数をまだ作成できません。私の現在の最善の試みは次のとおりです。

これは、PyOrient から呼び出されたときにクラッシュすることなく実行されますが、実際には頂点を作成しません。しかし、スタジオから呼び出すと動作します!?! 何が起こっているのかわかりません。

0 投票する
1 に答える
142 参照

docker - orientdb docker は、タイプ「メモリ」のデータベースに接続または削除できません

「unit_tests」という名前の「 memory 」タイプの orientdb データベースを削除しようとしましたが、次のエラーが発生しました。

次のコマンドで作成された docker コンテナーを実行します。

ブラウザ インターフェイス、console.sh、または pyorient を介してデータベースを削除しようとすると、エラーが発生します。

データベースに接続すると、実際にエラーが発生します。

単体テストの目的で、orientdb の dockerでタイプ「 memory 」のデータベースを使用することは可能ですか?

私は何かが欠けているに違いない。