Neo4j嵌入式全文自动节点索引

时间:2013-05-17 19:07:32

标签: neo4j

运行Neo4j embedded时,默认配置没有将自动节点索引设置为全文(意味着所有Lucene查询都区分大小写)。如何将自动索引配置为全文?

1 个答案:

答案 0 :(得分:3)

对于初学者,您必须在新数据库上执行此操作。自动索引是延迟创建的,这意味着它在第一次访问之前不会创建。您必须在第一次访问之前执行此配置。如果您在创建属性后尝试更改该属性,则该属性将不起作用。因此,第一步是加载启用了自动索引的数据库(节点或关系)。

val db = new GraphDatabaseFactory().newEmbedddedDatabaseBuilder("path/to/db").
  setConfig(GraphDatabaseSettings.node_keys_indexable, "label,username").
  setConfig(GraphDatabaseSettings.node_auto_indexing, "true").newGraphDatabase()

现在,在您执行任何操作之前,您必须设置配置属性。您可以找到有关可能的属性和值here的信息。要做到这一点,我们只需要两行。

val autoIndex = db.index.forNodes("node_auto_index")
db.index.setConfiguration(autoIndex, "type", "fulltext")

这就是它的全部内容。您现在可以创建顶点和关系,并将创建并填充自动索引。您可以使用以下代码使用任何Lucene query进行查询。

autoIndex.getAutoIndex.query("label:*caseinsensitive*")