Как ускорить поиск, включая альтернативы специальных символов и вложенные циклы (Python / Django webapp)? - PullRequest
0 голосов
/ 14 июля 2020

У меня есть три цикла, вложенных в бэкэнд python / django webapp. all_recommended_services имеет всю служебную информацию, которая мне нужна до go. alternatives содержит критерии поиска, введенные в строку поиска, включая все альтернативы специальных символов (например: u заменяется на ú, ö на ő и так далее ...). Наконец, l oop for value in alternative: просматривает все поисковые слова, индивидуально разделенные пустым пространством. Существуют комбинации ключевых слов для поиска, которые дают миллионы альтернатив, что полностью убивает веб-приложение. Есть ли эффективный способ ускорить это? Я попытался заглянуть в 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)

1 Ответ

0 голосов
/ 14 июля 2020

В процессе поиска я предлагаю этот пакет с именем Django -haystack . Он прост в использовании и легко настраивается в соответствии с вашими потребностями. Поскольку вы не включили более подробную информацию, я не могу предоставить более подробную демонстрацию, но документация исчерпывающая.

...