如何根据搜索匹配的百分比返回节点在neo4j全文搜索?

时间:2016-12-22 06:52:43

标签: neo4j full-text-search cypher

我使用neo4j auto index作为全文索引。我有一个用户节点,它有一个属性" fullName'现在我想在用户节点上执行搜索。 例如,我有4个用户名为fullName,如下所示:Abc Jay,Jay Singh,Ajay Kumar,John Doe。所以我想当用户搜索jay然后结果应该是这样的顺序:

  • Jay Singh,
  • Ajay Kumar,
  • Abc Jay

我写了这个查询:

START u=node:node_auto_index("fullName:*jay*") MATCH (u:User) 
return distinct {firstName : u.firstName , lastName : u.lastName, fullName : u.fullName, profilePicture : u.profilePicture, id : u.id} as user

这个查询给了我相同的用户作为结果但是以某种随机顺序而不是我想要的顺序。有谁可以帮我实现这个目标?

1 个答案:

答案 0 :(得分:1)

所以找到这个位置的快捷方法就是使用拆分。

START u=node:node_auto_index("fullName:*jay*") 
MATCH (u:User) 
WITH distinct u
RETURN {firstName : u.firstName , lastName : u.lastName, fullName : u.fullName, profilePicture : u.profilePicture, id : u.id} as user
ORDER BY length(split(toLower(u.fullName,"jay")[0]);