【发布时间】:2012-10-25 01:22:00
【问题描述】:
我正在使用 Gremlin 和 Neo4j 来操纵来自 infochimps 的 ENRON dataset。该数据集有两种类型的顶点Message 和Email Addresss 和两种类型的边SENT 和RECEVIED_BY。我想在此数据集上创建一个自定义索引,为type: 'Message' 的每个顶点创建一个Lucene 文档,并将来自关联顶点的信息(例如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 程序更好?
【问题讨论】:
-
你解决了吗?我面临同样的问题......(具体来说,我担心你问题中的项目符号 1 和 2)。