在Python中创建Whoosh索引时丢失了一些行

2024-09-28 19:19:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我想把数据加载到搜索引擎里。大约有7 000 000行要插入。首先,我从PostgreSQL数据库中获取所有带有psycopg2的行,然后将它们插入到Whoosh索引中。我的writer对象如下:

writer = index.writer(limitmb=1024,procs=5,multisegment=True)

问题是执行index.searcher().documents()(应该返回索引中的所有文档)返回的行数要少得多,大约为500000。我可以用另一个查询来确认这一点,只需搜索一个适合每个记录的Term,就可以得到相同的结果(大约有5百万条)。你知道吗

我认为这可能是Python的并发性或内存问题,所以我尝试批量加载它—我将数据分成50万条记录的等分块,但运气不好,得到的数据量仍然较低。我还尝试过使用writer的参数,同样没有成功。你知道吗

我在搜索一个我完全知道需要存在的记录时发现了这个问题—它没有。我正在运行一个16 GB RAM+6 CPU的服务器,所以资源应该不是问题。你知道吗


Tags: 数据对象数据库trueindexpostgresql记录psycopg2