我使用的是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方法来指定索引。我究竟做错了什么?我该如何纠正呢?
答案 0 :(得分:5)
WHERE
运算符的 IN
条件不使用Neo4j 2.0.x中的索引。请升级到支持此操作的2.1.3。