Neo4j.rb如何在​​Rails中使用它

时间:2018-03-14 12:45:39

标签: cypher neo4j.rb

我正在使用neo4j版本3.X,我使用的是searchkick

目前正在使用

User.search(params[:term], operator: 'or',
     fields: [:first_name, :last_name],
     misspellings: { below: 5 },
     match: :word_start,
    page: params[:page], per_page: params[:rpp], padding: params[:offset])

而不是

User.where('(sp.first_name + sp.last_name) =~ ?', /.*#{params[:term].sub(/\s/, '')}.*/i)

但我有问题,我必须在搜索的同时做更多的密码查询怎么做?

例如

Neo4j::ActiveBase.new_query.match(n: {User: { uuid: current_user.uuid }}).break
               .match('(n)-[:connected_to {status: 2}]-(sp:User)')
               .return('DISTINCT sp')

我想通过名字&的elasctic搜索来查询此查询。姓氏

在我的模型中,我定义了searchkick word_start: [:first_name, :last_name]

1 个答案:

答案 0 :(得分:0)

自从我使用searchkick以来已经有一段时间了,但我建议尝试使用ActiveNode语法而不是neo4j-core {{1}语法,以便您可以在末尾附加Query

.search

这假设存在使用current_user.connected_users.rel_where(status: 2).distinct.search(...) 关系类型的connected_users关联。您可能在connected_to模型中有另一个类似的关联,但我不知道它是什么。

我不能100%确定User是否适用于distinct,但您可以放弃search部分和.distinct无论如何,给你一个独特的设置。