我正在编制索引的对象同时具有UserId(GUID)和FullName属性。我想使用UserId进行分面搜索,但显示FullName以使其可读。我不想在FullName上做facet,因为它在技术上不必是唯一的。
现在我正在做这样的事情:
{
"query": {
"match_all": {}
},
"facets": {
"userFacet": {
"terms": {
"field": "userId"
}
}
}
}
但是它在响应中给了我Guids,我需要点击数据库来查找全名,这显然不是真正的解决方案。
那么我如何使用一个字段来制作构面,然后使用不同的字段来显示值?
答案 0 :(得分:0)
我使用以下行显示字段。 它只适用于网格,但不适用于网格。 还有一个方面是从id而不是标签。
fields: [{
id: 'name_first',
'label': 'First Name'
}]
答案 1 :(得分:-1)
尝试在查询中添加fields
子句,如下所示:
{
"query": {
"match_all": {}
},
"facets": {
"userFacet": {
"terms": {
"field": "userId"
}
}
},
"fields": [ "FullName" ]
}
请注意,要在搜索结果中返回字段值,您需要将它们实际存储在ES中。因此,您需要存储_source
(默认情况下会发生这种情况,除非您使用"_source" : {"enabled" : false}
覆盖它,或者在映射中为该字段设置"store": "yes"
。