У меня есть индекс (размер = 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)
Поскольку индекс не имеет состояния, как я могу выполнить многопоточный поиск?