問題タブ [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.
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 スクリプト
ご協力いただきありがとうございます。
python - pyorientを使用してorientdbにバイナリデータを保存および取得する方法は?
私はpyorientのgithub Readmeにある例に従おうとしていました。を使用してバイナリフィールドを挿入しclient.record_create
、同じものをロードしようとしましclient.record_load
た。
ご覧のとおり、取得されたバイナリ フィールドの値は None です。Pyorient は raw バイトの挿入をサポートしていますか? そうでない場合、回避策はありますか?
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 バッチのほうがはるかに時間がかかるようです。
ということで、何かいい方法がないか知りたいです。
ありがとう。
python-3.x - PyOrientを使用してOrientDBにクラスが存在するかどうかを調べる方法は?
クラスが存在するかどうかを調べるにはどうすればよいですか。これにより、「現在のデータベースにクラス x が既に存在します」というエラー メッセージが表示されなくなりますか?
Java と SQL で回答を提供する次のQuestionを見ました。Pythonに相当するものを探しています。
python-3.x - スキーマのない頂点クラスのすべてのプロパティを見つける
クラス Node が V を拡張しています。提供された一連のドキュメント タイプ情報を使用してインスタンスを Node に追加します。OrientDB データベースにクエリを実行し、ノードからいくつかの情報を返したいと考えています。これをフォーマットされた方法で表示するには、考えられるすべてのフィールド名のリストが必要です (私のアプリケーションでは、現在 115 のフィールド名があり、そのうちの 1 つだけがインデックスとして使用されるプロパティです)。
これをpyorientで行うには、これまでに見つけた唯一の解決策は次のとおりです(クライアントはデータベースハンドルの名前です):
試行錯誤を重ねて大体のことは分かってきました。あまり効率的でもエレガントでもありません。確かに、クラスまたはその他の文書型オブジェクトのすべての可能なフィールドのリストをデータベースに返させる方法が必要です。pyorient または SQL コマンドを使用してこれを行う簡単な方法はありますか?
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 を使用する必要がありますか? もしそうなら、私はそれとの闘いについて別の質問を投稿します.
python - pyorient が orientdb docker に接続できない
私はpyorient 1.5.4とorientdb 2.2.5のドッカーを使用しています
ブラウザーを使用してデータベースに接続すると、サーバーは明らかに実行されています。Pyorient で接続すると、エラーが発生します。
データベースへの接続に使用するコードは次のとおりです。
次のエラーが表示されます。
次のコマンドで docker コンテナーを作成しました。
ブラウザ経由の接続は正常に機能するため、サーバーは実行されています。
必要なポートが開いているように見えるのに、pyorient がデータベースが閉じていると考えるのはなぜですか?
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 から呼び出されたときにクラッシュすることなく実行されますが、実際には頂点を作成しません。しかし、スタジオから呼び出すと動作します!?! 何が起こっているのかわかりません。
docker - orientdb docker は、タイプ「メモリ」のデータベースに接続または削除できません
「unit_tests」という名前の「 memory 」タイプの orientdb データベースを削除しようとしましたが、次のエラーが発生しました。
次のコマンドで作成された docker コンテナーを実行します。
ブラウザ インターフェイス、console.sh、または pyorient を介してデータベースを削除しようとすると、エラーが発生します。
データベースに接続すると、実際にエラーが発生します。
単体テストの目的で、orientdb の dockerでタイプ「 memory 」のデータベースを使用することは可能ですか?
私は何かが欠けているに違いない。