我有一个应用程序(除其他外)将文件系统树存储在 neo4j 图中。也就是说每个目录和文件都是一个节点。其中一些文件是 Office 文档、文本或 pdf 文件,我想提供一些搜索功能。
搜索功能应该扫描节点属性和文件内容并返回最相关的节点。
--------------------------------------------------
更新额外信息:
该图允许过滤掉文件的子集。文件节点还包含需要搜索的自定义元数据。许多应用之一是:
用户搜索“术语”> 使用图形来查找此搜索适用的文件(例如,取决于用户组和权限),然后在两个节点属性中搜索“术语”和文件内容 > 返回最相关的结果。
可能某些文件可能出于某种原因链接到其他文件,并且这些文件也应该被搜索,但优先级较低(理想情况下,“术语”命中应该少于初始文件的命中)
现实生活中的案例复杂程度是这个的十倍,所以我不能替换/删除图形数据库的使用,或者数据库的影响会导致结果相关性。
--------------------------------------------------
我的问题是:
- 实现这一点的最佳方法是什么?
- 我应该提取文件内容并将它们放在每个节点的索引属性中吗?
- 这样做的缺点是什么?
- 有没有更好的方法来解决它?
提前谢谢各位。
更多详细信息:
- PHP 网络应用程序
- 使用 Rexster 加载和访问 neo4j 图
- 查询语言 = gremlin (groovy)