如何在Go中通过REST查询找到节点
我测试通过查询查找节点,参考neo4j手册(,但我有一些问题,我创建了两个节点,一个索引,然后在索引中添加了两个节点。当我通过lucene查询节点时,我找不到任何东西 这是我的测试代码:如何在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 {
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源代码链接中之前,您可以查看它。