エラスティック サーチ インデックスを Titan Server で正しく動作させるのに問題があります。私は現在、エラスティック検索を有効にした Titan Server 0.4.0 を使用して、ローカルの Titan/Cassandra をセットアップしています。次のプロパティを持つテスト グラフ 'bg' があります。
- 頂点には、「タイプ」と「値」という 2 つのプロパティがあります。
- エッジには、「タイムスタンプ」、「長さ」などの名前を持つ他の多くのプロパティがあります。
rexster-cassandra-es.xml 構成で titan.sh を実行しています。構成は次のようになります。
storage.backend = "cassandra"
storage.hostname = "127.0.0.1"
storage.index.search.backend = "elasticsearch"
storage.index.search.directory = "db/es"
storage.index.search.client-only= "false"
storage.index.search.local-mode = "true"
この構成は、Rexter の bg 構成と、データをロードする groovy スクリプトで同じです。
Rexster クライアントをロードして と入力するとg = rexster.getGraph("bg")
、 を使用して正確な検索を実行しg.V.has("type","ip_address")
、正しい頂点を取得できます。ただし、クエリを実行すると:
g.V.has("type",CONTAINS,"ip_")
エラーが発生します:
Data type of key is not compatible with condition
これは、タイプ「値」がインデックス化されていないことに関係していると思います。私がやりたいことは、すべての頂点とエッジの属性をインデックス可能にして、必要に応じて文字列マッチング関数を使用できるようにすることです。コマンドを使用してインデックス付きキーを作成しようとしました
g.makeKey("type").dataType(String.class).indexed(Vertex.class).indexed("search",Vertex.class).make()
しかし、正直なところ、これがどのように機能するのかわかりません。これで正しい方向に私を向けるのを手伝ってくれる人はいますか? 私は、エラスティック検索と Titan 型の定義にまったく慣れていません。
ありがとう、
アダム