我整理了一个简单的搜索表单,搜索框和几个过滤器作为下拉列表。一切都按照您的预期工作,除了我希望行为是当用户将所有内容完全留空(没有搜索查询,没有过滤器)时,他们只是返回所有内容(当然是分页)。
我目前通过检测此特殊情况并查询我的本地数据库来实现这一目标,但使用CloudSearch 100%实现这一目标有一些优势。有没有办法构建一个只返回每个文档的分页列表的请求?换句话说,CloudSearch是否等同于“SELECT id FROM x LIMIT n?”
提前致谢! 乔
答案 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)