在cypher查询中强制索引时出错

时间:2014-08-12 13:29:43

标签: neo4j cypher

我使用的是Neo4j的2.0.1版。

我有一个名为 prod 的标签和一个名为 id 的属性。

我怀疑如下:

以下查询返回结果非常快:

profile match (p:PROD) where p.id="111" return p;

SchemaIndex(identifier="n", _db_hits=0, _rows=2, label="Prod", query="Literal(111)", property="id")

但是当我使用 IN 列表并强制索引使用时:

profile match (p:PROD) USING INDEX p:PROD(id) where p.id IN ["111","222"] return p;

它显示以下错误:

IndexHintException: Cannot use index hint in this context. The label and property comparison must be specified on a non-optional node
Label: `prod`
Property name: `id`

为什么我不能使用USE INDEX方法来指定索引。我究竟做错了什么?我该如何纠正呢?

1 个答案:

答案 0 :(得分:5)

使用WHERE运算符的

IN条件不使用Neo4j 2.0.x中的索引。请升级到支持此操作的2.1.3。