我查詢的查找節點參考neo4j手冊(http://docs.neo4j.org/chunked/snapshot/rest-api-indexes.html < 22.10.10。通過查詢查找節點>,但我有一些麻煩,我創建了兩個節點,一個索引。然後我將兩個節點添加到索引中。當我通過lucene查詢查詢節點時,找不到任何東西。如何通過REST查詢查找節點Go
這是我的測試代碼:
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!")
}
你在使用哪個庫?如果是你自己的,你能分享代碼而不僅僅是測試嗎? – 2013-04-11 05:44:46
我從來沒有用過neo4j(或者聽說過這個),但是對於其他一些「Lucene服務器」(假設這就是neo4j),你需要刷新索引(或者等待X(毫秒)秒)數據將顯示在查詢中。 – 2013-04-11 06:11:30
hi @WesFreeman源代碼鏈接:https://github.com/innovationturbo/graphdb/blob/master/ext.go,你可以查看它。 – david 2013-04-11 10:24:01