创建索引 - REST API不起作用,但Cypher Query有效吗?

时间:2014-01-03 08:43:00

标签: rest neo4j cypher

按照用户手册中的说明,我正在尝试在标签上创建索引:

POST

http://localhost:7474/db/data/schema/index/person

{
"property_keys" : [ "name" ]
}

我一直收到以下错误:406 Not Acceptable

但是,如果我使用neo4j浏览器中的Cypher Query示例尝试相同的操作,它可以正常工作:

CREATE INDEX ON :Person(name)

Constraints也是如此。

关于什么是问题的任何想法?或者如果我做错了什么?

的问候, -Piyush

2 个答案:

答案 0 :(得分:1)

使用'httpie'(一个更舒适的cURL变体)创建模式索引可以正常工作:

$ http -v -j http://localhost:7474/db/data/schema/index/person property_keys=["name"]
POST /db/data/schema/index/person HTTP/1.1
Accept: application/json
Accept-Encoding: gzip, deflate, compress
Content-Length: 27
Content-Type: application/json; charset=utf-8
Host: localhost:7474
User-Agent: HTTPie/0.7.2

{
    "property_keys": "[name]"
}

HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Content-Length: 58
Content-Type: application/json; charset=UTF-8
Server: Jetty(9.0.5.v20130815)

{
    "label": "person", 
    "property_keys": [
        "[name]"
    ]
}

请仔细检查:

  1. 您使用的是正确版本的Neo4j吗?架构索引需要2.0.0吗?
  2. 您使用AcceptContent-Type的正确Http请求标头吗?使用application/json至关重要。

答案 1 :(得分:0)

以下是使用curl的示例:

curl -i -u neo4j:password -H "accept:application/json" -H "Content-Type:application/json; charset=UTF-8" -X POST -d '{ "property_keys" : [ "id" ] }' http://localhost:7474/db/data/schema/index/entities

自己做错了,所以认为它应该在这里。