我在sqlite上使用烧瓶-万能炼金术,并且人工导入了很多数据,现在whoosh可以搜索这些数据了。我想是因为这些数据都没有编入索引,对吧?我如何手动在这些数据上添加whoosh索引?
发布于 2014-05-12 14:23:01
看看https://gist.github.com/davb5/21fbffd7a7990f5e066c
我写这篇文章是为了解决同样的问题--在大量数据导入之后重建搜索索引。
对于任何其他人,它都无法发挥作用(我的"lib“导入包含了我所有的第三方库,您需要在if name=="main”块中指定您的模型),但是它应该足以让您开始工作。
正如文件注释中所述,您应该考虑删除search.db文件夹(WHOOSH_BASE),因为这个脚本不会删除已删除的数据,只会重新索引当前的数据集。
我发现使用SQLAlchemy核心导入所有数据比通过SQLAlchemy ORM导入数据要快得多(对于我的数据集来说,这是44s对48m )。
发布于 2016-02-03 05:25:25
你可以试试我的叉子https://github.com/Revolution1/Flask-WhooshAlchemyPlus
只是
$ pip install flask_whooshalchemyplus和
from flask_whooshalchemyplus import index_all
index_all(app)发布于 2014-05-05 13:06:58
扩展的代码是非常轻的您可以在github上查看它。从它的角度来看,它只是监视SQLAlchemy刷新会话时的变化,所以外部输入的数据不会被自动索引。
根据数据量的不同,如果这是一个一次性的数据加载,那么可能最容易的做法是删除Whoosh索引(默认情况下是一个名为“whoosh_index”的目录),因为如果找不到该索引,它将重新索引所有内容(见第154至165行)。
https://stackoverflow.com/questions/23472161
复制相似问题