如何在Go中通过REST查询找到节点

如何在Go中通过REST查询找到节点,rest,go,neo4j,Rest,Go,Neo4j,我测试通过查询查找节点,参考neo4j手册(,但我有一些问题,我创建了两个节点,一个索引,然后在索引中添加了两个节点。当我通过lucene查询节点时,我找不到任何东西 这是我的测试代码: func TestFindNodeByQuery(t *testing.T) { log.Println("Start testing FindNodeByQuery") session, err := Dial(settingFile) if err != nil {

我测试通过查询查找节点,参考neo4j手册(,但我有一些问题,我创建了两个节点,一个索引,然后在索引中添加了两个节点。当我通过lucene查询节点时,我找不到任何东西

这是我的测试代码:

func TestFindNodeByQuery(t *testing.T) {
    log.Println("Start testing FindNodeByQuery")
    session, err := Dial(settingFile)
    if err != nil {
        t.Error(err)
    }
    log.Println("Create Index,type lucene")
    indexName := "testIndex"
    indexType := "fulltext"
    indexProvider := "lucene"
    err = session.CreateNodeIndexWithConf(indexName, indexType, indexProvider)
    if err != nil {
        t.Error(err)
    }
    log.Println("create two nodes")
    data := map[string]string{
        "name":  "test01",
        "key01": "value01",
    }
    node1, err := session.CreateNode(data)
    if err != nil {
        t.Error(err)
    }
    data["name"] = "test02"
    node2, err := session.CreateNode(data)
    if err != nil {
        t.Error(err)
    }
    indexKey := "some key"
    indexValue := "some value"
    _, err = session.AddNodeToIndex(indexKey, indexValue, indexName, node1.ID)
    if err != nil {
        t.Error(err)
    }
    _, err = session.AddNodeToIndex(indexKey, indexValue, indexName, node2.ID)
    if err != nil {
        t.Error(err)
    }
    luceneQuery := "indexKey:some*"
    results, err := session.FindNodeByQuery(indexName, luceneQuery)
    // results, err := session.FindNodeByMatch(indexName, indexKey, indexValue)
    log.Println(len(results))
    for _, result := range results {
        log.Println(result)
    }
    log.Println("Clean data...")
    err = session.DeleteNode(node1.ID)
    if err != nil {
        t.Error(err)
    }
    err = session.DeleteNode(node2.ID)
    if err != nil {
        t.Error(err)
    }
    err = session.DeleteNodeIndex(indexName)
    if err != nil {
        t.Error(err)
    }
    log.Println("data cleaned")
    log.Println("FindNodeByQuery test finished!")

}

尝试使用不带空格的索引键。这会使您的生活更轻松

然后,您实际上必须在lucene查询中使用存储数据的正确索引键

luceneQuery:=“some\u key:some*”

如果你用

indexKey:=“一些密钥”


以前。不像你那样:
luceneQuery:=“indexKey:some*”

你在使用哪个库?如果它是你自己的,你能分享代码而不仅仅是测试吗?我从来没有使用过neo4j(或者听说过它),但是对于其他一些“Lucene服务器”(假设neo4j就是这样),你需要刷新索引(或者等待X(mili)在数据显示在querys.hi@WesFreeman源代码链接中之前,您可以查看它。