我们正在使用Spring Data Neo4j使用Neo4j数据库。现在我们有很多cypher查询,我们使用正则表达式,现在我们处于开发模式,所以我们的数据库中只有2000个节点,如果Neo4j数据库有数百万个节点,它会影响性能吗? 有没有办法摆脱它? 或者我们必须制作我们没有正则表达式的这种类型的密码?
答案 0 :(得分:2)
Neo4j不会使用正则表达式的索引,因此在你成长时肯定会影响你的查询性能。
你能举一些正则表达式的例子吗?可能还有另一种方法可以解决它。
根据您的正则表达式,您可以使用旧索引复制功能。或者,您可以使用elasticsearch等外部工具来支持全文搜索
答案 1 :(得分:1)
在下一个版本中,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/