Skip to content
This repository has been archived by the owner on Dec 1, 2021. It is now read-only.

本地可以正常运行,服务器上search结果为[] #7

Open
xilixjd opened this issue May 15, 2017 · 11 comments
Open

本地可以正常运行,服务器上search结果为[] #7

xilixjd opened this issue May 15, 2017 · 11 comments

Comments

@xilixjd
Copy link

xilixjd commented May 15, 2017

基本上与这个链接的问题差不多https://segmentfault.com/q/1010000005811334

但是我在本地运行正常,布到服务器上,甚至是重建数据库

db.drop_all()
db.create_all()

服务器上也无法索引到

本地没有设置 WHOOSH_BASE ,也是能够正常运行的,并且在当前目录下自动创建了 whoosh_index 文件夹,在服务器上运行,也创建了 whoosh_index 文件夹,但是仍然无法索引到,我想问问要怎么才能读取到索引文件

另外在 config.py 中设置了 WHOOSH_BASE = os.path.abspath('./whoosh_index') 也没用

总的来说就是本地运行正常,部署到服务器上失效

@Revolution1
Copy link
Owner

希望能提供更多信息,比如有没有报错;手动 index_all 一下看有没有报错,生成的索引文件的大小等等

@xilixjd
Copy link
Author

xilixjd commented May 15, 2017

没有任何报错,服务器上就是搜索不到,新加的数据也搜索不到

index_all 有效,能搜索到,但是对于新加的数据还是搜索不到。。
不知道我的配置是否有问题

def create_app(DevConfig):
    app = Flask(__name__)
    app.config.from_object(DevConfig)
    with app.app_context():
        # db.drop_all()
        db.create_all()
        index_all(app) # 添加这一行可以搜索到旧的数据,但是新加入的数据仍然搜不到
    flask_whooshalchemyplus.init_app(app) 

想问一下建立索引的基本流程(最好不用 index_all(app)因为用了这个,我的服务器就比较卡。。不知道是不是这个的原因)

@Revolution1
Copy link
Owner

你可以看这一行 https://github.com/Revolution1/Flask-WhooshAlchemyPlus/blob/master/flask_whooshalchemyplus.py#L296
新加数据是在在每次 commit 的时候会进行一次索引
你可以注意一下这里的 log
如果实在没有 log 你可以在这个函数里打个断点看会不会命中到,命中到之后怎么走的

@xilixjd
Copy link
Author

xilixjd commented May 15, 2017

好的,我先试试,我想问问服务器上重建索引应该怎么办
在本地的时候,我是删库 drop_all() 再 create_all() ,再添加数据,然后就可以搜索到了
服务器上是一样的操作,但是失效
另外我的本地和服务器上用的是同一个 mysql ,都是服务器上的 mysql

@Revolution1
Copy link
Owner

不用删库,直接 index_all 一下索引老数据就行,新数据走前面说的 _after_flush

@xilixjd
Copy link
Author

xilixjd commented May 15, 2017

抱歉还是得打扰你,还是那个老问题
index_all 可以索引老数据没问题
但是新添加的数据在远程服务器无法搜索到,反而是在本地服务器可以被索引到。。
另外调试的话,远程服务器调试不了。。

@Revolution1
Copy link
Owner

你可以试试 ipdb 命令行 debug

题外话:这时候 Docker 的优势就体现出来了

@xilixjd
Copy link
Author

xilixjd commented May 15, 2017

Docker 一直想学来着,但是还没开始。。
请问有什么好的教程吗,不要太难的,就部署一个简单web项目的那种

@Revolution1
Copy link
Owner

@cqzhao
Copy link

cqzhao commented Sep 30, 2017

我也出现了无法搜索新数据的情况,_after_flush中加入断点,发现没有命中

@Revolution1
Copy link
Owner

可以检查一下 model_commited 事件是否注册上了

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants