0

我有一个应用程序(除其他外)将文件系统树存储在 neo4j 图中。也就是说每个目录和文件都是一个节点。其中一些文件是 Office 文档、文本或 pdf 文件,我想提供一些搜索功能。

搜索功能应该扫描节点属性和文件内容并返回最相关的节点。

--------------------------------------------------

更新额外信息:

该图允许过滤掉文件的子集。文件节点还包含需要搜索的自定义元数据。许多应用之一是:

用户搜索“术语”> 使用图形来查找此搜索适用的文件(例如,取决于用户组和权限),然后在两个节点属性中搜索“术语”和文件内容 > 返回最相关的结果。

可能某些文件可能出于某种原因链接到其他文件,并且这些文件也应该被搜索,但优先级较低(理想情况下,“术语”命中应该少于初始文件的命中)

现实生活中的案例复杂程度是这个的十倍,所以我不能替换/删除图形数据库的使用,或者数据库的影响会导致结果相关性。

--------------------------------------------------

我的问题是:

  1. 实现这一点的最佳方法是什么?
  2. 我应该提取文件内容并将它们放在每个节点的索引属性中吗?
  3. 这样做的缺点是什么?
  4. 有没有更好的方法来解决它?

提前谢谢各位。

更多详细信息:

  • PHP 网络应用程序
  • 使用 Rexster 加载和访问 neo4j 图
  • 查询语言 = gremlin (groovy)
4

1 回答 1

2

如果您想要进行文件内容扫描,您最好为文件内容选择另一个数据存储。Neo4j 非常适合搜索文件名和目录结构之类的内容,但我相信您正在谈论进行字节数组扫描,并且有更好的系统可以用于它。

于 2013-06-09T20:37:03.573 回答