Search 哪个节点索引方法更好

Search 哪个节点索引方法更好,search,indexing,neo4j,Search,Indexing,Neo4j,根据neo4j文档,索引可以通过2种方式完成” Neo4j中的索引可以通过两种不同的方式完成: 1.数据库本身是一个自然索引,由节点之间不同类型的关系组成。例如树 结构可以分层在数据之上,并用于索引查找 由遍历器执行。 2.可以使用单独的索引引擎,默认为ApacheLucene 后端包括Neo4j 但是,在什么情况下哪个更好,在哪些情况下哪个更好,这是无法比较的 哪一个更好?为什么?这是数据仓库/集市还是报告数据库?如果您的交易和搜索都与数据库相对应,那么可能会给出有趣的优缺点 Lucene的存

根据neo4j文档,索引可以通过2种方式完成”

Neo4j中的索引可以通过两种不同的方式完成: 1.数据库本身是一个自然索引,由节点之间不同类型的关系组成。例如树 结构可以分层在数据之上,并用于索引查找 由遍历器执行。 2.可以使用单独的索引引擎,默认为ApacheLucene 后端包括Neo4j

但是,在什么情况下哪个更好,在哪些情况下哪个更好,这是无法比较的


哪一个更好?为什么?

这是数据仓库/集市还是报告数据库?如果您的交易和搜索都与数据库相对应,那么可能会给出有趣的优缺点

Lucene的存在有一个原因,那就是搜索,而且它做得非常好。如果你有一个拥有多个服务的大型系统,为了实现最终的可扩展性,总是要将这些服务分开,让它们承担各自的责任。这将使你在必要时可以灵活地使用Lucene索引来与其他服务进行比较……如果你曾经得到过这些服务的话去掉neo4j,那么您仍然有索引/搜索工件,而不是与neo4j耦合


我将从整个系统架构而不仅仅是具体功能来看待它。

据我所知,文档中的“自然索引”“意味着所有关系类型都存储在不同的位置-因此,当您在查询中使用某个类型为KNOWS的关系时,db引擎只查看KNOWS位置并提取其中的所有rel(默认情况下是自然索引本身)。第二个是一个典型的用户定义索引(我将这些用于关系参数,而不是类型)。哪一个更好?好的,第一个比较快,但是之后你必须比较所有选择的关系,直到你的最后一个,这总是比较慢。