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

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确定即可

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

时间: 2024-10-05 05:50:08

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

全文检索框架

第一步:安装全文检索框架django-haystack pip3 install django-haystack 第二步:安装搜索引擎 pip3 install whoosh 第三步:在settings配置app INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.mes

全文检索:haystack+elasticsearch

优点: 1.查询速度快 2.支持中文分词准备工作:安装es软件 1.拷贝到ubuntu 2.docker load -i 文件路径 3.配置 修改ip地址 4.docker run -dti --network=host --name=elasticsearch -v /home/python/elasticsearch-2.4.6/config(本地文件路径):/usr/share/elasticsearch/config delron/elasticsearch-ik:2.4.6-1.0 1

Spring框架中利用注解进行自动装配的环境配置步骤和常见问题

第1步:配置XML文件 ,如下: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.spring

Tomcat是什么:Tomcat与Java技、Tomcat与Web应用以及Tomcat基本框架及相关配置

1.Tomcat是什么       Apache Tomcat是由Apache Software Foundation(ASF)开发的一个开源Java WEB应用服务器. 类似功能的还有:Jetty.Resin.Websphere.weblogic.JBoss.Glassfish.GonAS等,它们的市场占有率如下,可以看到Tomcat是最受欢迎的Java WEB应用服务器. Tomcat在技术实现上所处的位置如下: 下面我们来了解下Tomcat与这些技术之间的关系. 1-1.Tomcat与Ja

Haystack全文检索框架中使用jieba分词包

1.安装jieba pip install jieba 2.引入jieba cd 到haystack安装目录backends下, 新建文件ChineseAnalyzer.py,键入内容 import jieba from whoosh.analysis import Tokenizer, Token class ChineseTokenizer(Tokenizer): def __call__(self, value, positions=False, chars=False, keeporig

Django使用haystack借助Whoosh实现全文搜索功能

参考文章01: http://python.jobbole.com/86123/ 参考文章02: https://segmentfault.com/a/1190000010866019 参考官网自定制views & forms:    http://django-haystack.readthedocs.io/en/master/views_and_forms.html#highlightedmodelsearchform 注:  参考源码最方便  说明: haystack是django的开源搜

Solr全文检索框架

概述: 什么是Solr? Solr是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务.Solr可以独立运行在Jetty.tomcat.webLogic.webShell等这些Servlet容器中. 全文检索服务(也叫做全文搜索):  服务    是War包. ES框架 也是基于Lucene,Lucene(是工具包   jar) 服务器:   Tomcat  Jetty(内嵌服务器)  免费的(私企) WebLogic(Oracle)政府    Oracle

【开源框架】集成lucene搜索引擎和webservice服务

开发报捷:增加Lucene搜索引擎功能 1. 创建.初始化索引.统一搜索入口.搜索结果展现--内容.标题高亮.关键词搜索 2. 高级搜索:高级搜索增加多入口查询(精确查询.模糊查询.前缀查询等),每页显示条数自定义.索引结果数据设置.选择索引文档类型等) 集成lucene搜索引擎: 1. 使用阿里巴巴Druid连接池(高效.功能强大.可扩展性好的数据库连接池.监控数据库访问性能.支持Common-Logging.Log4j和JdkLog,监控数据库访问) 2. 提供高并发JMS消息处理机制 3.

thinphp框架的项目svn重新检出后的必备配置

刚刚试着去了解thinkphp框架,在这里做一些笔记,后续有新的总结会更新到这里,如有错误与遗漏,望大家指正. 用thinkphp框架的项目,在用svn重新检出之后,需要进行一些基本配置,方可在本地打开相关网页,正常使用. 数据库的配置 cmd  下可以查看本地所有的数据库,找到要配置的项目的数据库之后在config.inc.php下配置本地数据库名称 cmd命令: 找到本地服务器管理软件,比如我的是wamp,找到wamp下的如下路径: 在命令行中,首先要让命令行锁定到数据库文件夹下, 确保数据