【问题标题】:Neo4j quick lookup of string within property of many nodesNeo4j 在许多节点的属性中快速查找字符串
【发布时间】:2015-09-08 01:58:02
【问题描述】:

我正在使用 neo 2.2.2,目前正在使用 Regex 搜索在 name 属性中查找超过 600k 个节点的字符串。

每个节点至少包含以下两个属性。

{
  name: 'some string of text',
  sid: 12345
}

我在name 上创建了一个索引,在sid 上创建了另一个索引。在sid 上的查找速度非常快。搜索 [使用正则表达式] 非常慢。目前我正在搜索一个前后带有* 的字符串。

neo 可以做些什么来快速搜索属性中的字符串?

如果在 neo 中做一些特殊的事情并不理想,理论上我可以建立一些与 Neo4j 分开的补充算法/服务,它在 name 属性中搜索字符串值,然后给我sid,然后用于在 neo 中查找节点。

请帮我用 neo4j 进行快速字符串搜索。 :)

【问题讨论】:

    标签: search neo4j


    【解决方案1】:

    您可以使用旧版全文索引来加快搜索速度。 This blog 告诉你怎么做。

    【讨论】:

      【解决方案2】:

      一般来说,正则表达式非常昂贵。在我看来,您应该为此找到另一种解决方案。

      您能告诉我们更多关于您的用例以及您为什么要使用正则表达式的信息吗?

      您已经建议的一种解决方案。以另一种格式(或数据库)存储 SID 和 Name,这对于 Regex 搜索的性能比 Neo4j 更好。

      或者对名称属性内容进行一些分析,并在此基础上将内容创建为图表。

      例如
      * 节点名称属性中的字母计数
      * 起始字母节点
      * 将名称属性拆分为多个属性
      * 等等...

      【讨论】:

      • 我一定不想使用正则表达式。我只是在使用它,因为我找不到其他方法来搜索属性中的子字符串。
      猜你喜欢
      • 1970-01-01
      • 2017-02-05
      • 1970-01-01
      • 2016-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-25
      • 1970-01-01
      相关资源
      最近更新 更多