【问题标题】:Implement site wide search with neo4j db using node-neo4j使用 node-neo4j 使用 neo4j db 实现站点范围的搜索
【发布时间】:2012-08-28 09:02:24
【问题描述】:

我正在使用node-neo4j 与我的neo4j 通信。关注github.com/aseemk/node-neo4j-template 对开始很有帮助。仍在学习完成工作的方法,我正在寻求解决一些问题,感谢您给我的任何提示。

实现站点范围的搜索。

我们让用户使用他们的电子邮件 ID 进行索引,并希望通过标签或关键字来索引故事/帖子。我们如何搜索所有节点,我们是否维护各种类型的所有节点的索引,什么是好的方法?我应该和谷歌一起去启用这个功能吗?如何用多个标签/关键字索引同一个节点?

为节点指定自定义 ID

我们对节点的整数索引很好,但是由于这些 id 可以重复使用,我们想识别具有唯一 id 的节点,有没有办法让 neo4j 使用 uuid,添加一个 uid 属性可以但想要以避免必须维护两个 id。

遍历节点

我们如何使用 node-neo4j 遍历节点,Cipher-lang 看起来像答案,我还没有习惯。 node-neo4j 是否可以开箱即用地做到这一点?

交易

我可能听起来很傻,但是我可以使用 node-neo4j 进行事务操作吗?

问题太多了,我觉得一旦我习惯了查询数据库,我的大部分疑问都会得到解决,但是您的任何输入都会给我一个先机。

【问题讨论】:

标签: node.js neo4j


【解决方案1】:

您可能应该将其分解为单独的问题。我可以回答其中的几个,但不是全部。

是的,node-neo4j 可以开箱即用地处理 Cypher,使用 query 方法:https://github.com/thingdom/node-neo4j/blob/develop/lib/GraphDatabase._coffee#L179。帮助使用 Cypher——你应该观看这个介绍视频:http://vimeopro.com/neo4j/webinars/video/48603403

对于您的 uuid,您可能应该向节点添加一个单独的属性,并在其上添加一个索引——只需忽略常规 id,除非在更方便的临时查询期间。据我所知,没有办法覆盖递增的 ID——不过那肯定会很好。

希望对您有所帮助。

【讨论】:

  • 这是一个很好的答案。对于另外两个问题,您可以对任何事情使用一个或任意数量的索引(索引只是一个哈希表,您可以索引任何索引中的任何节点),不幸的是 Neo4j 不支持通过 REST API 进行事务,但是 1.8 将在 Cypher 中引入可变操作,这将作为事务工作。
  • 感谢 Wes,密码视频链接非常有用,Aseem 在他的模板应用程序中包含了一些密码查询。反正我一定要学!我现在将继续使用 REST api,我希望没有事务支持不会受到伤害。我仍然不清楚关于搜索实现的其他问题,比如我有短篇小说数据库,如何搜索包含某些特定单词的故事?
  • 在另一个以mysql作为存储数据库的应用程序中,我们配置了sphinx提供搜索,我的印象是lucene可以帮助我实现同样的目标。
猜你喜欢
  • 2015-08-20
  • 1970-01-01
  • 2022-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多