我正在使用轮胎 rubygem 连接到 ElasticSearch。如何根据特定字段的值返回构面?
例如,我有一个 field areas
,我想将前 10 个区域显示为过滤器选项:
领域
- 上东区 22
- 西村 15
- 苏活区 8
- ETC...
def self.search(params={}) Tire.search(page: 1 || params[:page], per_page: 10, load: true) 做 # 设置查询 查询做 布尔值 必须 { string params[:query], default_operator: "AND" } if params[:query].present? 必须 { range :price, { gte: (params[:min_price] || 0), lte: params[:max_price] } } 如果 params[:max_price].present? 结尾 结尾 # 要返回的构面 # 这是我卡住的地方: 方面的“区域”做 术语 [:area_name],大小:10 结尾 结尾 结尾
刻面块只返回:
{"areas"=>{"_type"=>"terms", "missing"=>5754, "total"=>0, "other"=>0, "terms"=>[]}}
即使所有记录都具有区域名称的值。