【发布时间】:2021-12-10 04:29:53
【问题描述】:
我正在尝试在 neo4j 中使用跨多个单词的边界进行 CONTAINS。有什么建议吗?
等价于:
MATCH (a)-[:REL]->(b)
WHERE b.whole CONTAINS a.part
RETURN a.part, b.whole
会返回:
“彼得”,“彼得·安德鲁·莫里森”
“安德鲁”,“彼得·安德鲁·莫里森”
“莎拉摩根”、“莎拉摩根威尔克森”
不会返回
“皮特”,“彼得·安德鲁·莫里森”
“皮特·安德鲁”、“彼得·安德鲁·莫里森”
“莎拉”、“莎拉摩根威尔克森”
正则表达式是要走的路吗?如果是这样,你如何在正则表达式中添加 a.part ?我试过了
WHERE b.whole=~'.*'+a.part+'.*'
但这会返回错误。
或者我应该将 b.whole 拼接成一个列表并在列表中做 b.part 吗?
WITH b, a, split(b.whole, ' ') as list
WHERE a.part in list
但这一次只允许一个单词,我需要多个单词匹配......有什么想法吗?
TIA!!!
【问题讨论】:
标签: neo4j