首页 > 解决方案 > flask_whooshachemyplus index_all() 不起作用

问题描述

我想使用 flask_whooshalchemyplus 手动索引两个名为“Traduzioni”和“TraduzioniDlg”的表以进行完整索引。我在 Flask 上创建了一个简单的端点,由 JQuery ajax 请求触发。该过程显然停止而没有引发任何异常。这些表格包含英语、意大利语和阿拉伯语的文本,我认为这可能与错误有关。如何使用 Whoosh 管理不同的字符集?

## FILE views.py
from app import app
# ....
import whoosh
import flask_whooshalchemyplus
from flask_whooshalchemyplus import index_all

# .... A LOT OF STUFF HERE

@app.route("/createIndexes", methods=['GET'])
@login_required
def createIndexes():
    d = ""
    try:
        index_all(app)
    except e:
        d = e
    stjson = {'mimetype':'application/json', 'status_code':200, "rows":d}
    return jsonify(resp=stjson)

1) Firefox 控制台没有返回 xhr 状态。

2) 在服务器端 (Pythonanywhere) 出现 499 错误,输出如下:

93.41.1.147-archeo [21/Jan/2020:15:22:49 +0000]“GET /createIndexes HTTP/1.1” 499 0“ https://fabioquintilii.pythonanywhere.com/admin ”“Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:67.0) Gecko/20100101 Firefox/67.0" "93.41.1.147" 响应时间=8.700

3)处理第一张表后服务器日志停止:“2020-01-21 15:22:40 Indexing Traduzioni...”

4)在search.db/文件夹中结构如下:

.
├── Traduzioni
│   ├── MAIN.tmp
│   │   ├── 3izw6phrod2o1ojvhs55ymaywukg.ctmp
│   │   ├── kkfrncvehj353od2zr7qdfz0ype7.ctmp
│   │   └── ogkmwxvb86vl3od6kwm533d3l658.ctmp
│   ├── MAIN_1kzdbfhp5z2389ms.pst
│   ├── MAIN_1kzdbfhp5z2389ms.trm
│   ├── MAIN_1kzdbfhp5z2389ms.vps
│   ├── MAIN_23qeml6mtoagefdb.pst
│   ├── MAIN_23qeml6mtoagefdb.trm
│   ├── MAIN_23qeml6mtoagefdb.vps
│   ├── MAIN_87ifp68y3amsfxmo.pst
│   ├── MAIN_87ifp68y3amsfxmo.trm
│   ├── MAIN_87ifp68y3amsfxmo.vps
│   ├── MAIN_WRITELOCK
│   └── _MAIN_0.toc
├── TraduzioniDlg
│   └── _MAIN_0.toc
└── tree.txt

3 directories, 16 files

标签: flaskfull-text-indexing

解决方案


尝试更改您的 xhr 请求的超时时间。另一种选择是不从 Web 请求运行索引,而是从控制台执行它,这样您就可以更轻松地看到它在做什么。


推荐阅读