目录
2、DISTINCT()去重函数注意:该函数要放在RETURN()后面,并且后面加逗号(,).放在最后会报错
8、分页limit:对Neo4j中通过union后结果进行分页(教程:需要安装apoc插件;jar包地址:GitHub)
1、查看两个节点之间的关系使用:type()函数
MATCH (:paper)-[r]->(:field_sub)
RETURN type(r)
2、DISTINCT()去重函数注意:该函数要放在RETURN()后面,并且后面加逗号(,).放在最后会报错
//正确代码
MATCH (pe:person)-[:write_paper]->(pa:paper)
RETURN
DISTINCT(pe.nationality),
pe.nationality AS country,
COUNT(pa)
//报错代码
MATCH (pe:person)-[:write_paper]->(pa:paper)
RETURN
pe.nationality AS country,
COUNT(pa),
DISTINCT(pe.nationality)
//报错信息
Neo.ClientError.Statement.SyntaxError
Neo.ClientError.Statement.SyntaxError: Unknown function 'DISTINCT' (line 5, column 5 (offset: 99))
" DISTINCT(pe.nationality)"
^
3、查询几度关系数据
MATCH p=(pe1:Person)-[*1..4]-(pe2:Person) RETURN p LIMIT 25
4、查询两个节点间的所有关系(不确定关系)
MATCH (o1:organization)-- (p:project) -- (o2:organization)
WHERE o1.orgId = {orgId1}
AND p.startYear >= {startYear} AND p.startYear <= {endYear}
RETURN o2.orgId AS orgId, o2.org_name AS orgName
LIMIT 100
5、java代码中模糊检索Neo4j
#Neo4j图库中查询语句
MATCH (n:DataSet{code:'uci'})
WHERE n.name =~ '(?i).*blog.*'
RETURN n.datasetId AS datasetId, n.name as name
LIMIT 10
#java中查询
MATCH (n:DataSet{code:'uci'})
WHERE n.name =~ {name}
RETURN n.datasetId AS datasetId, n.name as name
LIMIT 10
将((?i).*blog.*)整体作为一个参数传入
代码中提前拼接好:name = "(?i).*" + name + ".*";
6、case、when
"MATCH (org:organization) -[ogor:org_own_reward]->(rd:reward) " +
" WHERE toInteger(subString(ogor.date,0,4)) >= #startYear and toInteger(subString(ogor.date,0,4))<= #endYear " +
" and rd.rewardType = '国际科学技术合作奖' " +
" RETURN " +
" case " +
" when ogor.type is not null " +
" then ogor.type " +
" else " +
" '组织' " +
" end " +
" AS rewardArea,count(ogor) as statis " +
" ORDER BY rewardArea ";
7、处理字符串转数字
toInteger(substring(pj.startDate,0,4))
8、分页limit:对Neo4j中通过union后结果进行分页(教程:需要安装apoc插件;jar包地址:GitHub)
CALL apoc.cypher.run("
MATCH (n:Disease) RETURN n.name AS field1, n.desc AS field2
ORDER BY n.field1 ASC LIMIT 100
UNION
MATCH (n:Symptom) RETURN n.name AS field1, n.name AS field2
ORDER BY n.field1 ASC LIMIT 100
",{}) yield value
return value.field1,value.field2
order by value.field1 limit 100
@Query("CALL apoc.cypher.run( {cql} ,{}) " +
"yield value " +
"RETURN value.achName AS achName, value.psName AS psName, value.psId AS psId, value.influence AS influence, value.achId AS achId " +
"SKIP {skip} LIMIT {limit}")
List<Map<String, Object>> queryAwardByPersonId(@Param("cql") String cql,
@Param("skip") int skip,
@Param("limit") int limit);
9、Neo4j内存配置
# java heap 初始值
dbms.memory.heap.initial_size=1g
# java heap 最大值,一般不要超过可用物理内存的80%
dbms.memory.heap.max_size=16g
# pagecache大小,官方建议设为:(总内存-dbms.memory.heap.max_size)/2
dbms.memory.pagecache.size=2g
941

被折叠的 条评论
为什么被折叠?



