gpt4 book ai didi

indexing - 字符串中单词的架构索引

转载 作者:行者123 更新时间:2023-12-01 14:44:25 25 4
gpt4 key购买 nike

我有大量节点,它们的属性 text 包含字符串。

我想找到文本包含给定字符串(完全匹配)的所有节点。这可以使用 CONTAINS 运算符来完成。

MATCH (n)
WHERE n.text CONTAINS 'keyword'
RETURN n

编辑:我正在查找 n.text 包含子字符串“keyword”的所有节点 n。例如。 n.text = '这是一个关键字'

为了加快速度,我想为每个单词创建一个索引。使用新的 Schema Indexes 这可能吗? ?

(或者,这可以使用 legacy index 并将每个节点添加到此索引来完成,但我更喜欢使用架构索引)

最佳答案

绝对是的。鉴于您正在寻找完全匹配的内容,您可以使用架构索引。从您的问题来看,您可能知道这一点,但要创建索引,您需要为节点分配一个标签,然后在该标签上创建索引。

CREATE INDEX ON :MyLabel(text)

然后在查询时,密码执行索引将自动在以下查询中使用该索引

MATCH (n:MyLabel { text : 'keyword' })
RETURN n

这将使用架构索引来查找带有标签 MyLabel 和属性 text 且值为 keyword 的节点。请注意,这与属性的完整值完全匹配。

要强制 Neo4j 使用特定索引,您可以使用 index hints

MATCH (n:MyLabel)
USING INDEX n:MyLabel(text)
WHERE n.text = 'keyword'
RETURN n

编辑

在重新阅读您的问题时,我认为您实际上并不是在寻找完全精确的匹配,而是实际上想要在keyword参数中进行精确匹配>文本字段。如果是这样,那么...不,您还不能使用模式索引。引用Use index with STARTS WITH在 Neo4j 手册中:

The similar operators ENDS WITH and CONTAINS cannot currently be solved using indexes.

关于indexing - 字符串中单词的架构索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33805051/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com