使用Py2neo在Neo4j中使用不区分大小写的索引

时间:2014-07-15 19:16:14

标签: indexing neo4j case-insensitive py2neo

我想使用Py2neo在Neo4j中创建一个不区分大小写的索引。 仔细阅读文档和谷歌搜索,但没有找到任何东西。 Java中似乎有这个选项,但在Py2neo中没有。

请帮忙!

2 个答案:

答案 0 :(得分:0)

使用legacy indexes时,您可以在初始创建索引时提供配置。您必须将to_lower_case=truetype=fulltext结合使用。

另一方面,模式索引尚不支持不区分大小写。作为解决方法,引入相应属性的副本,例如名字 - > nameLower,由该字符串的小写变体填充。您可以在现有数据集上执行以下操作:

CREATE INDEX ON :Person(nameLower);
// --- use seperate transaction 
MATCH (p:Person) set p.nameLower = lower(p.name); // maybe apply LIMITs for large amount of nodes

您的查询字符串当然需要使用小写:

MATCH (p:Person {nameLower:'john'}) RETURN p

答案 1 :(得分:0)

您可以将配置选项传递到GraphDatabaseService.get_or_create_index函数,如下所示:

http://book.py2neo.org/en/latest/graphs_nodes_relationships/#py2neo.neo4j.GraphDatabaseService.get_or_create_index

这些参数直接传递给REST调用,如下所述:

http://docs.neo4j.org/chunked/milestone/rest-api-indexes.html#rest-api-create-node-index-with-configuration

希望这有帮助。