首页 > 解决方案 > 如何加快搜索,包括特殊字符替代和嵌套循环(Python/Django webapp)?

问题描述

我在 python/django webapp 后端嵌套了三个循环。all_recommended_services有我需要通过的所有服务信息。alternatives具有在搜索栏中输入的搜索条件,包括所有特殊字符替代项(例如:u替换为úöwithő等等...)。最后,循环for value in alternative:遍历所有被空格分开的搜索词。有搜索关键字组合会产生数百万种选择,这完全杀死了 web 应用程序。有没有一种有效的方法来加快这个速度?我试图研究itertools.product使用笛卡尔,但它并没有真正帮助我避免更多的循环或加快进程。任何帮助深表感谢!

    for service in all_recommended_services:

    county_str = get_county_by_id(all_counties, service['county_id'])

    for alternative in alternatives:
        something_found = False

        for value in alternative:
            something_found = search_in_service(service, value, county_str)

            if not something_found:
                break

        if something_found:
            if not service in recommended_services:
                recommended_services.append(service)

标签: python-3.xdjangoitertools

解决方案


在您搜索时,我会推荐这个名为Django-haystack 的包。它易于使用并且高度可定制以满足您的需求。由于您没有包含更多详细信息,因此我无法提供更详细的演示,但文档很全面。


推荐阅读