在Neo4j Lucene索引的单个属性中存储多个值

时间:2011-11-16 15:10:06

标签: lucene indexing neo4j multivalue

我想在neo4j Lucene索引的单个索引属性中存储多个值,例如:

IndexName: profile

property- Education: "Stanford University, Grad School", "Harvard University, MS"
property- Work: "Nokia Siemens Networks", "Motorola" 

搜索也适用于所有情况,例如andor

我们可以使用Solr将属性设置为多值属性来做这样的事情。我不确定neo4j + Lucene。

1 个答案:

答案 0 :(得分:8)

你可以将String []数组值添加到索引中(就像节点/关系一样),它将分别索引数组中的每个项目,我认为这将解决您的问题。

  Index myIndex = graphDb.index().forNodes( "profile" );
  myIndex.add( myNode, "Education", new String[] {"Stanford University, Grad School", "Harvard University, MS"} );
  myIndex.add( myNode, "Work", new String[] {"Nokia Siemens Networks", "Motorola"} );
  // Query for it (remember the quote escaping)
  myIndex.query( "Education:\"Stanford University, Grad School\" AND Work:Motorola" );

应该这样做。