1

我在带有轮胎的轨道上使用弹性搜索。

我的代码:

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)?

4

1 回答 1

3

您可以使用基于 id 字段的构面,并结合将名称添加到每个条目的脚本,以便每个条目将由 id 和 name 组成:

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

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

于 2012-09-12T15:41:23.593 回答