ID字段的Elasticsearch facet值

时间:2012-09-12 02:34:08

标签: ruby-on-rails elasticsearch tire

即时通过Tire在轨道上使用elasticsearch。

我的代码:

def to_indexed_json
    {
      :id                 => id,  
      :brand_name         => brand_name,
      :brand_id           => brand_id
    }.to_json
end

facet "brands" do
  terms :brand_id
end

我必须在数据库上查询以检索elasticsearch返回的所有品牌的名称。有没有办法从elasticsearch返回这些值(brand_name)?

1 个答案:

答案 0 :(得分:3)

您可以使用基于id字段的facet和一个脚本,该脚本将名称添加到每个条目,以便每个条目都由id和name组成:

"facets" : {
    "tag" : {
        "terms" : {
            "field" : "id",
            "script" : "term + \"_\" + _source.name"
        }
    }
}

然后在前端你需要以某种方式从正面条目中删除id以仅显示名称(我希望你的id不能包含_),但你可以保留密钥以应用当用户选择条目本身时过滤。