我正在使用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]
答案 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
无论如何,给你一个独特的设置。