簡體   English   中英

Django + Haystack + Whoosh,生產無結果

[英]Django + Haystack + Whoosh, no results in production

我正在使用Haystack + Whoosh進行搜索來構建Django應用程序。 在開發環境中,搜索將按預期進行。 但是,在生產中,搜索始終不返回任何結果。

發展:

$> python manage.py rebuild_index
...
All documents removed.
Indexing 8 categories
Indexing 4 documents

$> python manage.py shell
...
>>> from haystack.query import SearchQuerySet
>>> SearchQuerySet().all().count()
12

生產:

$> dokku run proj python manage.py rebuild_index -v2
...
All documents removed.
Skipping '<class 'django.contrib.admin.models.LogEntry'>' - no index.
...
Skipping '<class 'django.contrib.sessions.models.Session'>' - no index.
Indexing 7 categories
  indexed 1 - 7 of 7 (worker PID: 8).
Indexing 13 documents
  indexed 1 - 13 of 13 (worker PID: 8).
[INFO/MainProcess] process shutting down

$> dokku run proj python manage.py shell
...
>>> from haystack.query import SearchQuerySet
>>> SearchQuerySet().all().count()
0
>>> from django.conf import settings
>>> settings.HAYSTACK_CONNECTIONS['default']['PATH']
'/app/whoosh/index'

$> dokku run proj ls -la /app/whoosh
total 8
drwxr-xr-x  2 herokuishuser herokuishuser 4096 Nov 21 16:44 .
drwxr-xr-x 21 herokuishuser herokuishuser 4096 Nov 22 17:42 ..
-rw-r--r--  1 herokuishuser herokuishuser    0 Nov 21 16:43 .gitkeep

文件/設置:

# requirements.txt
Django==1.10.3
django-haystack==2.5.1
gunicorn==19.6.0
psycopg2==2.6.2
whitenoise==3.2.2
Whoosh==2.7.4
...

# runtime.txt
python-3.5.2

# proj/settings.py
...
HAYSTACK_CONNECTIONS = {
    'default': {
        'ENGINE': 'haystack.backends.whoosh_backend.WhooshEngine',
        'PATH': os.path.join(BASE_DIR, 'whoosh', 'index'),
    },
}
...

找到問題的任何指導?

這可能是權限問題。

您可以在詳細模式下運行,您可能會從中獲得見解:

dokku run proj python manage.py rebuild_index -v2

您的設置是什么? 您應該具有以下內容:

HAYSTACK_CONNECTIONS = {
    'default': {
        'ENGINE': 'haystack.backends.whoosh_backend.WhooshEngine',
        'PATH': os.path.join(self.BASE, '_whoosh', 'whoosh_index'),
    },
}

打印出settings.HAYSTACK_CONNECTIONS['default']['PATH'] 確保它不在臨時文件夾中並且可以訪問( ls -la ... )。

首先,確保授予正確的權限:

sudo chown :www-data YourDjangoProject/
sudo chmod 775 YourDjangoProject/

最后:

sudo chown :www-data YourDjangoProject/YourDjangoProject/whoosh_index/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM