Параллельный поиск Whoosh

У меня есть индекс (размер = 3,5 ГБ) из 5 миллионов небольших документов, проиндексированных с помощью Whoosh.

Поскольку мои документы имеют только название и содержание, поэтому мой Schema очень прост и имеет только два поля: id и content.

schema = Schema(name = ID(stored=True),
                content = TEXT(stored=True),
                )

Для проверки производительности я использую набор из 70 000 запросов, но Whoosh выполняет каждый из них примерно по 20 секунд.

index = open_dir("../data/search/bm25_index/")
query_parser = QueryParser("content", schema=index.schema)
q = query_parser.parse("some query")
with index.searcher(weighting=scoring.TF_IDF()) as searcher:
    results = searcher.search(q)

Поскольку индекс не имеет состояния, как я могу выполнить многопоточный поиск?


person Celso França    schedule 26.09.2019    source источник


Ответы (1)


Вы можете использовать многопоточность python. Посмотрите на pool или process.

person user3070752    schedule 20.09.2020