Algolia 搜索功能仅返回前 20 个结果

问题描述 投票:0回答:1

我有这个Python函数可以使用algolia返回所有经过验证的场地

def get_all_venues():
    try:
        page = 0
        hits_per_page = 1000  # Increase this value
        while True:
            result = index.search("", {
                "filters": "is_verified=1",
                "page": page,
                "hitsPerPage": hits_per_page
            })
            hits = result["hits"]
            if not hits:
                break  # Break the loop if there are no more hits
            with open("venues.csv", "a") as file:
                writer = csv.writer(file)
                for hit in hits:
                    venue_id = hit["venue_id"]
                    venue_name = hit["venue_name"]
                    is_verified = hit["is_verified"]
                    fields = [venue_id, venue_name, is_verified]
                    writer.writerow(fields)
                    print(str(venue_id) + ": " + str(venue_name))
            page += 1  # Move to the next page

    except Exception as e:
        print("An error occurred:", str(e))

get_all_venues()

当我运行它时,它仅返回前 20 个结果。我知道数据集中至少有 20000 个结果。我知道这一点是因为我尝试过另一种方法。

我尝试过的

我编写了一个函数,它接受

venue_id
并手动检查
is_verified
值是否等于 1,如果等于,则写入 csv。然而,这非常乏味,因为我必须设置数百万个
venue_id
值的范围并检查每条记录,这使得脚本需要几天时间。我确信过滤器更快,所以我想改用过滤器。

python search filtering algolia
1个回答
0
投票

我发现您遇到了我现在遇到的问题。你找到解决办法了吗?

谢谢

© www.soinside.com 2019 - 2024. All rights reserved.