13

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

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

提前致谢!乔

4

3 回答 3

36

请参阅搜索 API?q=matchall&q.parser=structured将匹配所有文件。

于 2014-05-21T03:38:01.630 回答
11

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

?q=狗|-狗

将返回所有包含“dog”且不包含“dog”的文档。您需要拦截特殊情况,因为您已经这样做了,只需替换查询/非查询组合,您就应该找回所有内容。

于 2013-12-31T14:05:55.650 回答
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)
于 2020-03-17T18:45:29.360 回答