情報チンプからENRON データセットを操作するために、Gremlin と Neo4j を使用しています。このデータセットには、2 種類の頂点Message
とEmail 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();
私の質問は次のとおりです。
- インデックス作成のために頂点を列挙するより良い方法はありますか?
- これに自動インデックスを使用できますか? 使用できる場合、インデックスを作成する対象を指定するにはどうすればよいですか?
- 独自の を指定できますか
Analyzer
、それともデフォルトのままですか? デフォルトは何ですか? - 独自のインデックスを作成する必要がある場合、gremlin を使用する必要がありますか?それとも Java プログラムを使用した方がよいでしょうか?