ES搜索引擎的应用

ES: 全称 Elasticsearch 开源的搜索引擎,可快速储存、搜索、分析数据

主要特点:

        不使用like,而使用全文检索,在特定的任意字段进行检索查询

        配和搜索引擎实现,原理:关键词与词条的关系,并记录词条的位置

分词说明:

        搜索引擎对数据构建索引时要进行分词处理

        而Elasticsearch不支持中文进行分词,而扩展elasticsearch-analysis-ik实现中文分词处理

下载安装

# dock pull 使用docker工具下载

sudo docker image pull delron/elasticsearch-ik:2.4.6-1.0 

配置yml文件,修改elasticsearch.yml为本机IP

运行es-ik

sudo docker run -dti  --name=elasticsearch --network=host -v /es_path(es的目录)/config delron/elasticsearch-ik:2.4.6-1.0

 常用命令

sudo docker container  stop elasticsearch    停止es容器

sudo docker container  start elasticsearch    启动es容器

 使用Haystack来对接django而使用es容器,来搭建用户和搜索引擎间的桥梁

pip install django-haystack  # 安装依赖


'haystack'  # 注册中间件   

 扩展haystack

# 当添加、修改、删除数据时,自动生成索引
HAYSTACK_SIGNAL_PROCESSOR = 'haystack.signals.RealtimeSignalProcessor'

#设置每页返回数据条数
HAYSTACK_SEARCH_RESULTS_PER_PAGE = 10

 配置路由url

url(r'^search/', include('haystack.urls'))

创建索引类search_indexes.py文件

from haystack import indexes

from .models import SKU


class SKUIndex(indexes.SearchIndex, indexes.Indexable):
    """SKU索引数据模型类"""
    text = indexes.CharField(document=True, use_template=True) 
                #document 表名该字段是主要进行关键字查询的字段

    def get_model(self):
        """返回建立索引的模型类"""
        return SKU

    def index_queryset(self, using=None):
        """返回要建立索引的数据查询集"""
        return self.get_model().objects.filter(is_launched=True)

创建索引模板sku_text.txt文件,通过id  name  来作为字段的索引

{{ object.id }}
{{ object.name }}

 手动创建初始索引

 python manage.py rebuild_index

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值