diff --git a/1_blog/blog/__pycache__/settings.cpython-312.pyc b/1_blog/blog/__pycache__/settings.cpython-312.pyc index 3eb1162..3c9dd40 100644 Binary files a/1_blog/blog/__pycache__/settings.cpython-312.pyc and b/1_blog/blog/__pycache__/settings.cpython-312.pyc differ diff --git a/1_blog/blog/settings.py b/1_blog/blog/settings.py index 45c2c8f..9d7cb7f 100644 --- a/1_blog/blog/settings.py +++ b/1_blog/blog/settings.py @@ -41,10 +41,13 @@ INSTALLED_APPS = [ 'django.contrib.staticfiles', 'post', 'ckeditor', - 'ckeditor_uploader' + 'ckeditor_uploader', + 'haystack' #容器 + ] MIDDLEWARE = [ + 'django.middleware.cache.UpdateCacheMiddleware', # 必须放在第一个,设置缓存---全站缓存 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', @@ -52,6 +55,7 @@ MIDDLEWARE = [ 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', + 'django.middleware.cache.FetchFromCacheMiddleware' # 必须放在最后一个,获取缓存---全站缓存 ] ROOT_URLCONF = 'blog.urls' @@ -140,4 +144,17 @@ MEDIA_ROOT = os.path.join(BASE_DIR, 'media') CKEDITOR_UPLOAD_PATH = 'upload/' + +# 指定生成的索引路径 +HAYSTACK_CONNECTIONS = { + 'default': { + 'ENGINE': 'haystack.backends.whoosh_backend.WhooshEngine', # 指定索引引擎 + 'PATH': os.path.join(BASE_DIR, 'whoosh_index'), + }, + } + + +# 实时生成索引文件 +HAYSTACK_SIGNAL_PROCESSOR = 'haystack.signals.RealtimeSignalProcessor' + # global_settings,去复制 diff --git a/1_blog/post/search_indexes.py b/1_blog/post/search_indexes.py new file mode 100644 index 0000000..dac96be --- /dev/null +++ b/1_blog/post/search_indexes.py @@ -0,0 +1,17 @@ +#coding=UTF-8 +from haystack import indexes +from post.models import * + +#注意格式(模型类名+Index) +class PostIndex(indexes.SearchIndex,indexes.Indexable): + text = indexes.CharField(document=True, use_template=True) + + #给title,content设置索引 + title = indexes.NgramField(model_attr='title') + content = indexes.NgramField(model_attr='content') + + def get_model(self): + return Post + #设置索引的分词器 + def index_queryset(self, using=None): + return self.get_model().objects.order_by('-created') \ No newline at end of file diff --git a/1_blog/templates/search/__init__.py b/1_blog/templates/search/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/1_blog/templates/search/indexes/post/post_text.txt b/1_blog/templates/search/indexes/post/post_text.txt new file mode 100644 index 0000000..9223bc5 --- /dev/null +++ b/1_blog/templates/search/indexes/post/post_text.txt @@ -0,0 +1,2 @@ +{{object.title}} +{{object.content}} \ No newline at end of file