我正在使用Gremlin和Neo4j來處理來自infochimps的ENRON dataset。該數據集有兩種類型的頂點Message
和Email Addresss
以及兩種邊緣SENT
和RECEVIED_BY
。我想在此數據集上創建一個自定義索引,爲type: 'Message'
的每個頂點創建Lucene
文檔,並將關聯頂點的信息(例如v.in()
,v.out()
)合併爲Lucene
文檔中的附加字段。如何爲Neo4j圖形構建一個自定義的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)。 – gipouf