Neo4j Cypher 中的正则表达式
Regular Expression in Neo4j Cypher
我们使用 Spring Data Neo4j 使用 Neo4j 数据库。现在我们有很多使用正则表达式的密码查询,现在我们处于开发模式所以我们的数据库中只有 2000 个节点,如果 Neo4j 数据库有数百万个节点会影响性能吗????
有什么办法摆脱它吗?
或者我们必须制作没有正则表达式的密码?
Neo4j 不会为正则表达式使用索引,因此随着您的成长,这肯定会影响您的查询性能。
你能举一些正则表达式的例子吗?可能有另一种解决方法。
根据您的正则表达式,您或许能够使用遗留索引复制该功能。或者,您可以使用 elasticsearch 等外部工具来支持全文搜索
在下一个版本中,Neo4j 将支持 LIKE 操作的索引。可能不适用于正则表达式。
您可以使用手动 lucene 全文索引进行此类查询,只需用
注释您的字段
@Index(type=FULLTEXT, indexName="search") 字符串描述;
然后就可以在START
子句中使用查询语法了。
看这里:http://neo4j.com/docs/stable/query-start.html#_get_node_or_relationship_from_index
START n=node:search("description:keyword")
RETURN n
另请参阅:http://jexp.de/blog/2014/03/full-text-indexing-fts-in-neo4j-2-0/
我们使用 Spring Data Neo4j 使用 Neo4j 数据库。现在我们有很多使用正则表达式的密码查询,现在我们处于开发模式所以我们的数据库中只有 2000 个节点,如果 Neo4j 数据库有数百万个节点会影响性能吗???? 有什么办法摆脱它吗? 或者我们必须制作没有正则表达式的密码?
Neo4j 不会为正则表达式使用索引,因此随着您的成长,这肯定会影响您的查询性能。
你能举一些正则表达式的例子吗?可能有另一种解决方法。
根据您的正则表达式,您或许能够使用遗留索引复制该功能。或者,您可以使用 elasticsearch 等外部工具来支持全文搜索
在下一个版本中,Neo4j 将支持 LIKE 操作的索引。可能不适用于正则表达式。
您可以使用手动 lucene 全文索引进行此类查询,只需用
注释您的字段@Index(type=FULLTEXT, indexName="search") 字符串描述;
然后就可以在START
子句中使用查询语法了。
看这里:http://neo4j.com/docs/stable/query-start.html#_get_node_or_relationship_from_index
START n=node:search("description:keyword")
RETURN n
另请参阅:http://jexp.de/blog/2014/03/full-text-indexing-fts-in-neo4j-2-0/