首页 > 解决方案 > 如何使用 Neo4j 为字符串生成唯一的哈希码?

问题描述

我想仅使用 Cypher 为字符串生成哈希码。我怎样才能做到这一点?

标签: neo4jhashcode

解决方案


是的,绝对使用其中一种APOC 哈希函数,但您可以创建自己的哈希函数。

例如,这是一个 hacky djb2字符串哈希实现Cypher

WITH " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~" as chars
RETURN reduce(acc=5381, c  in split("Gimme a String Hash Please!","") | (acc*33 + size(split(chars,c)[0]))%toInteger(2^32))

337735339为这个字符串返回。


推荐阅读