Amazon CloudSearch:是否可以编写一个返回...所有内容的查询?

时间:2013-12-30 22:52:02

标签: amazon-web-services amazon-cloudsearch

我整理了一个简单的搜索表单,搜索框和几个过滤器作为下拉列表。一切都按照您的预期工作,除了我希望行为是当用户将所有内容完全留空(没有搜索查询,没有过滤器)时,他们只是返回所有内容(当然是分页)。

我目前通过检测此特殊情况并查询我的本地数据库来实现这一目标,但使用CloudSearch 100%实现这一目标有一些优势。有没有办法构建一个只返回每个文档的分页列表的请求?换句话说,CloudSearch是否等同于“SELECT id FROM x LIMIT n?”

提前致谢! 乔

3 个答案:

答案 0 :(得分:27)

请参阅Search API?q=matchall&q.parser=structured将匹配所有文档。

答案 1 :(得分:8)

这些最简单的方法是使用not运算符,例如:

?q = dog | -dog

会返回包含“dog”且不包含“dog”的所有文档。您需要截取特殊情况,就像您已经一样,只需替换查询/非查询组合,您就应该重新获得所有内容。

答案 2 :(得分:0)

对于使用boto3寻找答案的人。

CLOUD_SEARCH_CLIENT = boto3.client(
    'cloudsearchdomain',
    aws_access_key_id='',
    aws_secret_access_key='',
    region_name='',
    endpoint_url="https://search-your-endpoint-url.amazonaws.com"
)

response = CLOUD_SEARCH_CLIENT.search(
    query="matchall",
    queryParser='structured'
)

print(response)