这类似于here提出的问题。
我的查询有效:
match (n:Campus {name:'Georgia Southern University'}) return n;
1排 38毫秒
但是,我正在建立一个搜索功能,我希望能够拥有一个用户类型“georgia”并从Campus标签索引返回一个节点列表,其名称类似于“Georgia”。
此查询在neo4j-community-2.0.0中不起作用(虽然它在-M05中完成):
match (n:Campus) where n.`name` =~ '(?i).*Georgia.*' return n;
0行 29毫秒
谢谢!
编辑:更多信息,来自neo4j-shell的输出:
neo4j-sh (?)$ match (n:Campus {name:'Georgia Southern University'}) return n.name;
+-------------------------------+
| n.name |
+-------------------------------+
| "Georgia Southern University" |
| "Georgia Southern University" |
+-------------------------------+
2 rows
45 ms
neo4j-sh (?)$ match (n:Campus) where n.`name` =~ '(?i).*Georgia.*' return n;
+---+
| n |
+---+
+---+
0 row
10 ms
答案 0 :(得分:2)
在2.0.0-RC1中尝试了你的查询,它运行正常:
CREATE (n:Campus {name:'Georgia Southern University'}) RETURN n
CREATE (n:Campus {name:'lil georgia'}) RETURN n
CREATE (n:Campus {name:'CAP GEORGIA CAP'}) RETURN n
CREATE (n:Campus {name:'East Georgia Tech'}) RETURN n
MATCH (n:Campus)
WHERE n.`name` =~ '(?i).*georgia.*'
RETURN n
...
Returned 4 rows in 156 ms
答案 1 :(得分:1)
解决了,感谢@ cod3monk3y。我正在将我的数据库从neo4j-community-2.0.0-M05版本升级到新的稳定版本。上面的干净数据库测试让我相信它是我的数据库。显然,启动期间的升级过程在标签方面失败。
如果我使用“rm -l”命令删除标签,然后使用“set”再次设置相同的标签,搜索就可以了。
neo4j-sh (0)$ match (n:Campus {name: 'Boise State University'}) return id(n), n.name;
+----------------------------------+
| id(n) | n.name |
+----------------------------------+
| 2772 | "Boise State University" |
+----------------------------------+
1 row
77 ms
neo4j-sh (0)$ match (n:Campus) where n.`name` =~ '(?i).*Boise.*' return n;
+---+
| n |
+---+
+---+
0 row
215 ms
neo4j-sh (0)$ cd 2772
neo4j-sh (Boise State University,2772)$ ls
:Campus (plus a lot of other properties)
neo4j-sh (Boise State University,2772)$ rm -l Campus
neo4j-sh (Boise State University,2772)$ set -l Campus
neo4j-sh (Boise State University,2772)$ match (n:Campus) where n.`name` =~ '(?i).*Boise.*' return n.`name`;
+--------------------------+
| n.`name` |
+--------------------------+
| "Boise State University" |
+--------------------------+
1 row
72 ms
我使用前面的代码首先设置了标签(_handle属性是我设置为在标签出现之前对节点进行分组的属性):
match n where n._handle='Campus' set n:Campus return Id(n), n.name, labels(n) order by Id(n);
我只是修改它以删除旧标签,然后重新设置它们。