Legacy Indexes

在Neo4j 2.0版本之前,Legacy index被称作indexes。这个索引是通过外部图存储在外的Lucene实现,允许“节点”和“联系”以key:value键值对的方法被检索。从Neo4j 提供的REST接口来看,被称作“index”的变量通常是指Legacy indexes。

Legacy index能够提供全文本检索的能力。这个功能并没有在schema index中被提供,这也是Neo4j 2.0* 版本保留legacy indexes的原因之一

注意:使用legacy index查询往往需要一个开始“节点”;并且它并没有能力提高查询的速度。

Schema Indexes

Neo4j 2.0版本在“节点标签”章节介绍schema。shcema indexes以及约束的最基本应用在于带属性的“标签”在路径匹配。与legacy index不同之处在于,schema index能够提高查询速度。

注意:仅仅schema index有“标签”这个概念;legacy index完全没有“标签”的概念。

schema index仅仅对节点是有效而legacy index允许“节点”和“关系”都被索引。“关系”索引的使用场景是很少的,并且通常都可以通过引入额外的节点解决问题。

选择哪一个

如果你正在使用Neo4j 2.0或者更高版本并且不需要支持2.0版本之前legacy index的代码,那么请只使用schema index同时避免legacy index。

相反,如果你被卡住的Neo4j的早期版本,并且无法升级,无论如何你都只有一种索引可以选择(legacy index)

如果你需要全文检索的索引,不管是什么版本,有都将使用legacy index。

更复杂的场景在于从一中索引调用到另外一中索引。这种情况下,请确保你已经对两个索引的不同有足够的认识并且尝试过,在可能的情况下,只使用schema index或者legacy index而不是两者都使用。混合使用两者经常导致更多的困惑。

本篇文章翻译自:http://nigelsmall.com/neo4j/index-confusion

教程结束,感谢阅读。

欢迎转载,但请注明本文链接,谢谢。

2016-03-30  20:09:22

Neo4j 两种索引Legacy Index与Schema Index区别的更多相关文章

  1. 转 WebService两种发布协议--SOAP和REST的区别

    转发文章 https://blog.csdn.net/zl834205311/article/details/62231545?ABstrategy=codes_snippets_optimize_v ...

  2. C++ 支持两种索引的排行榜模板

    version 1: #ifndef RANK_TMPL_H_ #define RANK_TMPL_H_ #include <stdio.h> #include <stdint.h& ...

  3. 史上最全的CSS hack方式一览 jQuery 图片轮播的代码分离 JQuery中的动画 C#中Trim()、TrimStart()、TrimEnd()的用法 marquee 标签的使用详情 js鼠标事件 js添加遮罩层 页面上通过地址栏传值时出现乱码的两种解决方法 ref和out的区别在c#中 总结

    史上最全的CSS hack方式一览 2013年09月28日 15:57:08 阅读数:175473 做前端多年,虽然不是经常需要hack,但是我们经常会遇到各浏览器表现不一致的情况.基于此,某些情况我 ...

  4. js两种定义函数、继承方式及区别

    一:js两种定义函数的方式及区别 1:函数声明: function sayA() { alert("i am A"); } 2:函数表达式: var sayB = function ...

  5. eclipse中的两种Jre 及 Jre与Jdk的区别

    分类: ——————————区分eclipse中的两种Jre———————- (Eclipse也是一个普通的Java程序,因此必须有一个JRE做为运行环境.如果你的机器上没有安装任何JRE(或者JDK ...

  6. js中两种定时器,setTimeout和setInterval的区别

    setTimeout只在指定时间后执行一次,代码如下:   <script>   //定时器 异步运行   function hello(){   alert("hello&qu ...

  7. 并发编程 - 线程 - 1.开启线程的两种方式/2.进程与线程的区别/3.Thread对象的其他属性或方法/4.守护线程

    1.开启线程的两种方式: 进程,线程: 进程只是用来把资源集中到一起(进程只是一个资源单位,或者说资源集合)而线程才是cpu上的执行单位) 1.同一个进程内的多个线程共享该进程内的地址资源 2.创建线 ...

  8. VUE的两种跳转push和replace对比区别

    router.push(location) 在vue.js中想要跳转到不同的 URL,需要使用 router.push 方法. 这个方法会向 history 栈添加一个新的记录,当用户点击浏览器后退按 ...

  9. python 之 并发编程(线程理论,开启线程的两种方式,进程与线程的区别,线程对象的其他方法)

    9.9 线程理论 1.什么是线程 线程指的是一条流水线的工作过程 进程根本就不是一个执行单位,进程其实是一个资源单位,一个进程内自带一个线程,线程才是执行单位 2.进程VS线程 同一进程内的线程们共享 ...

随机推荐

  1. 编写一个JSP程序实现用户登录

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  2. xml scheme 示例解析

    第一个示例解析 第二个示例解析

  3. aws在线技术峰会笔记-基于AWS的Devops最佳实践

    AWS CodeCommit AWS CodePipeline 可以和github集成 可以支持蓝绿部署 微服务架构, API Gateway进行转发

  4. 《BI那点儿事》数据流转换——逆透视转换

    逆透视转换将来自单个记录中多个列的值扩展为单个列中具有同样值的多个记录,使得非规范的数据集成为较规范的版本.例如,每个客户在列出客户名的数据集中各占一行,在该行的各列中显示购买的产品和数量.逆透视转换 ...

  5. HQL基础Query简单查询结果for输出和Iterator输出

    HQL第一次课: hibernate Query Language:hibernate 查询语言 语法: query: String hql="from dept"; Query ...

  6. js中attr 与find 获取属性值,

    一.attr的用法 1. attr(属性名)        //获取属性的值(取得第一个匹配元素的属性值.通过这个方法可以方便地从第一个匹配元素中获取一个属性的值.如果元素没有相应属性,则返回 und ...

  7. 程序设计入门——C语言 第4周编程练习 2 念整数(5分)

    题目内容: 你的程序要读入一个整数,范围是[-100000,100000].然后,用汉语拼音将这个整数的每一位输出出来. 如输入1234,则输出: yi er san si 注意,每个字的拼音之间有一 ...

  8. ReentRantLock使用

    synchronized原语和ReentrantLock在一般情况下没有什么区别,但是在非常复杂的同步应用中,请考虑使用ReentrantLock,特别是遇到下面2种需求的时候. 1.某个线程在等待一 ...

  9. CSS设置透明的两种方式

    1..demo{ background-color:transparent; } 2..demo{ background-color:rgba(0,0,0,0.5); //最后一个参数是用来设置透明度 ...

  10. WIN7 java7 环境变量配置

    1 首先要搞清楚,java可能安装了两个部分,一个叫JDK,一个叫jre.其中jre若已经安装了,那么在安装JDK的时候,就不要放在默认的C:\Program File\java\XXX目录.最好另起 ...