我正在按照迈克尔http://jexp.de/blog/2014/03/full-text-indexing-fts-in-neo4j-2-0/的本教程来设置我的全文索引。但是我遇到了几个问题。
我的PC(Windows)上运行了一个节点服务器。无论如何,我在localhost上运行了一些使用jQuery的东西。所以我使用jQuery在chrome控制台中进行ajax post调用。
步骤1:
$.ajax({
url: 'http://localhost:7474/db/data/index/node/',
type: 'post',
data: JSON.stringify({'name': 'NewIndex', 'config':{'type':'fulltext', 'provider':'lucene', 'to_lower_case': 'true'}}),
headers: {
"Content-Type": 'application/json',
"Accept": 'application/json; charset=UTF-8'
},
dataType: 'json',
success: function (data) {
console.log(data);
}
});
这很有效!所以它创建了一个索引。接下来如教程所示,我设置了这些设置并重新启动了服务器:
第2步:
node_auto_indexing=true
node_keys_indexable=description
接下来,我使用以下内容重置属性
第3步:
MATCH (n:anodelabel)
WHERE has(n.description)
SET n.description=n.description
接下来,我尝试在浏览器localhost:7474中查询它。
第4步:
START anodelabel=node:NewIndex("description:word*")
MATCH (o:anodelabel)<-[r:AUTHOR]-(user)
RETURN o LIMIT 10
但这是一个空集。所以我尝试发布一个新项CREATE (n:anodelabel {description: "needs to work"})
并再次使用密码调用。再一次空集。
答案 0 :(得分:0)
在步骤4中,索引返回值是节点,而不是节点标签。试试这个:
START n=node:NewIndex("description:word*")
MATCH (n)<-[r:AUTHOR]-(user)
RETURN n LIMIT 10
答案 1 :(得分:0)
在第一步中,您应该使用node_auto_index
代替。
也在你的最后一步。
只有这样,您的节点才会自动添加到该索引中。
此外,您的陈述不正确,请使用以下内容:
START o=node:NewIndex("description:word*")
MATCH (o:AnodeLabel)<-[r:AUTHOR]-(user)
RETURN user LIMIT 10
答案 2 :(得分:-3)
MATCH (n:anodelabel)
WHERE has(n.description)
SET n.description=n.description