Amazon web services 选择distinct Cloudsearch AWS
现在我在Amazon web services 选择distinct Cloudsearch AWS,amazon-web-services,amazon-cloudsearch,Amazon Web Services,Amazon Cloudsearch,现在我在CloudSearch上执行此请求: aws cloudsearchdomain --endpoint-url myUrl search --search-query France --query-options "{'fields':['country']}" --return name 我只想得到不同的名字,但我得到的是id为的名字。 有没有办法做到这一点?对于这个示例数组: country | city | company_name | company_id | product_
CloudSearch
上执行此请求:
aws cloudsearchdomain --endpoint-url myUrl search --search-query France --query-options "{'fields':['country']}" --return name
我只想得到不同的名字,但我得到的是id为的名字。
有没有办法做到这一点?对于这个示例数组:
country | city | company_name | company_id | product_name | product_id
US | NY | C1N | C1id | P1N | P1id
US | NY | C1N | C1id | P2N | P2id
US | NY | C2N | C2id | P1N | P1id
我想在纽约得到所有不同的公司名称和公司id
我做这个请求:URL/search?q=NY&facet.company\u id={sort:'count'}&q.options={“defaultOperator”:“and”,“fields”:[“city”],“operators”:[“and”,“or”]}&return=\u all\u fields
我获得了不同的公司id,但我没有找到一种方法在不提出其他请求的情况下同时获得公司名称
{
"status": {
"rid": "lKzEiL0qCwok24g=",
"time-ms": 93
},
"hits": {
"found": 2,
"start": 0,
"hit": [{
"id": "369998744556855594878962245"
}, {
"id": "3699987477777545245"
}]
},
"facets": {
"company_id": {
"buckets": [{
"value": "C1id",
"count": 2
}, {
"value": "C2id",
"count": 1
}]
}
}
}
编辑:解决方案
我找到了一个解决方案:我将原始json数据存储在一个新列中:
json\u company={\“id\”:“C1id\”,“name\”:“C1N\”}
和我的请求:&facet.json\u company={}
我的结果是:
"facets": {
"json_company": {
"buckets": [{
"value": "{\"id\":\"C1id\",\"name\":\"C1N\"}",
"count": 2
}, {
"value": "{\"id\":\"C2id\",\"name\":\"C2N\"}",
"count": 1
}]
}
我在Lambda函数中解析JSON 你能举例说明你想要什么和你得到什么吗?我有点不清楚你在找什么。你可以指定任意多个方面。只需添加
&facet.company_name={}
,您也会得到相应的计数。我知道您现在希望从解决方案中得到什么。张贴所需结果的示例可以使问题更容易理解。感谢您跟进您找到的解决方案。但是我必须说,如果从name
到id
之间存在1:1的关系,并且您将它们一起返回以避免在数据存储中查找它们,那么您就没有将CloudSearch用于其预期目的(即,作为搜索引擎而不是数据存储)。也许这对你来说没问题,但我会谨慎行事。