我在为我的 java 应用程序使用 ElasticSearch 时遇到了麻烦。我解释一下自己,我有一个映射,类似于:
{
"products": {
"properties": {
"id": {
"type": "long",
"ignore_malformed": false
},
"locations": {
"properties": {
"category": {
"type": "long",
"ignore_malformed": false
},
"subCategory": {
"type": "long",
"ignore_malformed": false
},
"order": {
"type": "long",
"ignore_malformed": false
}
}
},
...
因此,如您所见,我收到了由位置组成的产品列表。在我的模型中,这个位置是所有类别的产品。这意味着一个产品可以属于一个或多个类别。在每个类别中,产品都有一个订单,这是客户想要向他们展示的订单。
例如,钻石产品可以在珠宝中排名第一,但在女人中排名第三(我的例子不是那么合乎逻辑^^)。因此,当我单击珠宝时,我想显示此产品,按此特定类别中的字段 locations.order 排序。
目前,当我搜索特定类别的所有产品时,我收到的 ElasticSearch 响应类似于:
{"id":5331880,"locations":[{"category":5322606,"order":1},
{"category":5883712,"subCategory":null,"order":3},
{"category":5322605,"subCategory":6032961,"order":2},.......
是否可以通过元素 locations.order 对我正在搜索的特定类别的产品进行排序?例如,如果我查询类别 5322606,我希望获得该产品的订单 1。
非常感谢您!问候,奥利维尔。