我认为标题有点模糊,所以我要解释我的问题。Neo4j中的Lucene索引不能按预期工作
我创造了Neo4j的一些节点,然后对其进行索引是这样的:
Index<Node> myindex = graphDb.index().forNodes(
"myindex",
MapUtil.stringMap(IndexManager.PROVIDER, "lucene", "type",
"fulltext"));
Node n = graphDb.createNode(); //create the node
node.setProperty("firstname", "firstname"); //add properties
node.setProperty("familyname", "familyname");
myindex.add(node, "familyname", "familyname"); //index it
但是,当我需要更新节点“n”的特性(例如变‘familyname’到‘FNAME’) ,通过基于索引的搜索无法找到此节点!
所以更新的财产,这个暗号查询
start n= node:myindex(familyname:"familyname") return n
返航的节点,而更新后之前,我期待:
start n= node:myindex(familyname:"fname") return n
与新返回相同的节点财产,但它不起作用!虽然第一个查询总是在工作,就像索引被绑定到属性“familyname”一样
对此有何想法?
感谢
您应该更新该索引也是(首先删除,然后添加)。 – tstorms
现在就试试吧! – Anas
你是对的!其实,我认为索引被绑定到Node和所选择的属性上。谢谢 – Anas