0

情報チンプからENRON データセットを操作するために、Gremlin と Neo4j を使用しています。このデータセットには、2 種類の頂点MessageEmail Addresssおよび 2 種類のエッジ と がSENTありRECEVIED_BYます。このデータセットにカスタム インデックスを作成して、Luceneの各頂点のドキュメントを作成し、関連付けられた頂点 ( 、など) からの情報をドキュメントの追加フィールドとしてtype: 'Message'組み込みます。v.in()v.out()Lucene

私は次の行に沿ってコードを考えています

g = new Neo4jGraph('enron');

PerFieldAnalyzerWrapper analyzer =
    new PerFieldAnalyzerWrapper(new StandardAnalyzer());
analyzer.addAnalyzer("sender", new KeywordAnalyzer());
analyzer.addAnalyzer("recipient", new KeywordAnalyzer());

IndexWriter idx = new IndexWriter (dir,analyzer,IndexWriter.MaxFieldLength.UNLIMITED);

g.V.filter{it.type == 'Message'}.each { v ->
    Document doc = new Document();
    doc.add(new Field("subject", v.subject));
    doc.add(new Field("body", v.body));
    doc.add(new Field("sender", v.in().address);
    v.out().each { recipient -> 
        doc.add(new Field("recipient", recipient.address));
    }
    idx.addDocument(doc);
}
idx.close();

私の質問は次のとおりです。

  1. インデックス作成のために頂点を列挙するより良い方法はありますか?
  2. これに自動インデックスを使用できますか? 使用できる場合、インデックスを作成する対象を指定するにはどうすればよいですか?
  3. 独自の を指定できますかAnalyzer、それともデフォルトのままですか? デフォルトは何ですか?
  4. 独自のインデックスを作成する必要がある場合、gremlin を使用する必要がありますか?それとも Java プログラムを使用した方がよいでしょうか?
4

2 に答える 2

0

私は Gremlin をよく知らないので、ここでは Neo4j への直接アクセスについて話します。

では、グラフ自体の「外側」に Lucene インデックスを作成したいと思いますか? それ以外の場合は、組み込みの graphDb.index().forNodes( "myIndex", configForMyIndex ) を使用して、neo4j に関連付けられた Lucene インデックスを取得 (オンデマンドで作成) できます。index.add( node, key, value ) を呼び出すことで、各ドキュメントに複数のフィールドを追加できます。各ノードは、その Lucene インデックス内の 1 つのドキュメントで表されます。

1) グレミルンで... わからない

2) http://docs.neo4j.org/chunked/milestone/auto-indexing.htmlを参照してください。

3) http://docs.neo4j.org/chunked/milestone/indexing-create-advanced.htmlを参照してください。

4) データベースの外部で完全に作成する必要がありますか? もしそうなら、なぜですか?

于 2012-10-25T09:58:24.230 に答える
0

Java プロセスを使用してインポートを完了したところです。私の意見では、Gremlin を使用した方が包括的です。

とにかく、プロセスが失敗するのは、StandardAnalyzer の新しいオブジェクトを作成できないためです。そのクラスのすべてのコンストラクターはパラメーターを必要とするため、ラッパー クラスを作成するか、コンストラクターで Lucene のような正しいバージョンのパラメーターを使用して作成する必要があります。

Neo4J は、今日まで、lucene バージョン 36 までしか受け入れません。

于 2014-10-29T11:41:40.153 に答える