码迷,mamicode.com
首页 > 其他好文 > 详细

全文检索框架Haystack,与 Whoosh搜索引擎的搭配以及相关配置

时间:2019-09-26 23:07:30      阅读:94      评论:0      收藏:0      [点我收藏+]

标签:realtime   引擎   rom   use   project   mod   return   foreign   ESS   


1. 安装Django项目下使用的django-haystack包, 以及搜索引擎whoosh包

pip install django-haystack
pip install whoosh


2. Django项目文件中, settings添加haystack配置

# 全文检索框架的配置(haystack)
HAYSTACK_CONNECTIONS = {
    default: {
        # 选择引擎(haystock包内的backend后端文件夹选中whoosh的相关配置文件的Engine函数)
        ENGINE: haystack.backends.whoosh_backend.WhooshEngine,

        # 索引文件放置路径
        PATH: os.path.join(BASE_DIR, whoosh_index),
    }
}
# 设置即时生成索引(haystock包下,signal(标识)索引文件生成时间为,即时生成)
HAYSTACK_SIGNAL_PROCESSOR = haystack.signals.RealtimeSignalProcessor


3. 应用下创建.py文件, 名称为search_indexes.py

# 引入haystack模块中的indexes函数
from haystack import indexes
# 引入需要建立索引的模型类
from goods.models import GoodsSKU

# 指定对于 具体类 下的 具体属性 建立索引
# 通常索引类名格式: 模型类名 + Index

class GoodsSKUIndex(indexes.SearchIndex, indexes.Indexable):
    ‘‘‘索引类, 继承与indexes的SearchIndex和Indexable类‘‘‘

    # 定义text值
    # 其中,索引字段 use_template=True, 使用模板文件配置.(从固定路径调用模板文件)
    text = indexes.CharField(document=True,use_template=True)

    # 获取模型类
    def get_model(self):
        # 返回模型类
        return GoodsSKU

    # 获得所需要建立索引的数据
    def index_queryset(self, using=None):
        return self.get_model().object.all()  # 查询该模型类下所有数据

 

4. 配置需要索引的模型类, 以及相关索引内容

新建目录和文件,固定路径为:
项目根目录/templates/search/indexes/应用名/模型类名(全小写)_text.txt

例, 项目文件为project, 应用名application, 模型类名为DataInfo, 则创建模板txt文件路径为
project/templates/search/indexes/application/datainfo_text.txt


并在该文件键入 模型类内需要建立索引的属性:

{{ object.属性名 }}
{{ object.外键.属性名 }}

例:
{{ object.name }}
{{ object.detail }}
{{ object.foreign.name }}
{{ object.foreign.detail }}


5. 生成索引

运行django项目管理manage.py

python manage.py rebuild_index


y确定即可

全文检索框架Haystack,与 Whoosh搜索引擎的搭配以及相关配置

标签:realtime   引擎   rom   use   project   mod   return   foreign   ESS   

原文地址:https://www.cnblogs.com/jrri/p/11594907.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!