gpt4 book ai didi

ruby-on-rails - 在轮胎中乘以多面?

转载 作者:行者123 更新时间:2023-12-03 02:07:21 25 4
gpt4 key购买 nike

使用 ROR 4.01、elasticsearch 和轮胎 gem。

文章模型

class Article
belongs_to: region
belongs_to: house
end

def self.search(params)
tire.search(page: params[:page], per_page: 12) do
query { string params[:query], default_operator: "AND" } if params[:query].present?
filter :term, region_id: params[:region_id] if params[:region_id].present?
filter :term, house_id: params[:house_id] if params[:house_id].present?

facet "regions" do
terms :region_id
end

facet "houses" do
terms :house_id
end

end
end

文章控制者
def index
if params[:query].present?
@articles = Article.search(params)
else
@articles = Article.all
end
end

文章索引 View
%h3 Regions
%ul
- @articles.facets['regions']['terms'].each do |facet|
%li
= link_to_unless_current Region.find(facet['term']).name, params.merge(region_id: facet['term'])
- if params[:region_id] == facet['term'].to_s
(#{link_to "remove", region_id: nil})
- else
(#{facet['count']})
%h3 House Owners
%ul
- @articles.facets['houses']['terms'].each do |facet|
%li
= link_to_unless_current House.find(facet['term']).name, params.merge(house_id: facet['term'])
- if params[:house_id] == facet['term'].to_s
(#{link_to "remove", house_id: nil})
- else
(#{facet['count']})

基于地区或房主作品的文章过滤/方面。但不能两者兼而有之。它如何协同工作?

所以使用多个方面?那可能吗?

谢谢

远程控制

最佳答案

tire is deprecated并且在当前的 Elasticsearch 版本上不受支持,所以我从内存和源代码开始,但是......
terms应该接受一系列条款。

因此,您应该能够使用这两个术语创建构面:

  facet "houses_regions" do
terms [:house_id, :region_id]
end

关于ruby-on-rails - 在轮胎中乘以多面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24143280/

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