gpt4 book ai didi

ruby-on-rails - 使用轮胎从Elasticsearch中的查询中提高

转载 作者:行者123 更新时间:2023-12-02 22:34:04 28 4
gpt4 key购买 nike

我有一组具有背景(例如“计算机科学”)和技能(例如“php”)的用户。我试图通过强调背景或技能来搜索它们(用户在搜索时选择任一选项)。

我已经设法使用带有此JSON字符串的curl来进行此工作(在这种情况下,我强调了背景):

'"query" : { 
"bool" : {
"should" : [
{
"text" : {"skills" : {"query" : "php mysql html css"}}
},
{
"text" : {"backgrounds" : {"query" : "computer science", "boost" : 5}}
}
]
}
}'

现在我的问题是我无法弄清楚如何将这个JSON用作Tire中的查询,或如何在Tire DSL中编写等效内容。

编辑

实际上,我是通过查看Tire源代码来弄清楚的。

看起来是这样的:
results = Users.search(:load => true) do
query do
boolean do
should { string "skills:#{skills_query}", {:boost => skills_boost}}
should {string "backgrounds:#{backgrounds_query}", {:boost => backgrounds_boost}}
end
end
end

我将要强调的一个设置为5,将另一个设置为0。

最佳答案

似乎严重缺乏如何在轮胎中正确执行此操作的良好文档。经过数小时的搜索,我发现了这篇文章。稍后,我将在此发表博客,以希望人们不必像我一样永远挖下去。无论如何,以下是我根据您的建议所做的事情,并且通过将名称字段提升到其他属性匹配项之上,它像一种魅力一样工作。

page = params[:page].present? ? params[:page] : 1
tire.search(page: page, per_page: ApplicationHelper::MAX_SEARCH_LENGTH) do
query do
boolean do
should { string "name:#{params[:q]}*", {:boost => 100}}
should { string "#{params[:q]}*"}
end
end
end

关于ruby-on-rails - 使用轮胎从Elasticsearch中的查询中提高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13100476/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com