Elasticsearch的使用

一.使用Docker安装Elasticsearch

1.获取Elasticsearch-ik镜像
从仓库拉取镜像
$ sudo docker image pull delron/elasticsearch-ik:2.4.6-1.0

2.配置Elasticsearch-ik
将elasticsearc-2.4.6目录拷贝到home目录下
修改/home/python/elasticsearch-2.4.6/config/elasticsearch.yml第54行。
更改ip地址为本机真实ip地址

3.3.使用Docker运行Elasticsearch-ik
sudo docker run -dti --name=elasticsearch --network=host -v /home/python/elasticsearch-2.4.6/config:/usr/share/elasticsearch/config delron/elasticsearch-ik:2.4.6-1.0

二.Haystack扩展建立索引

1.Haystack安装
$ pip install django-haystack
$ pip install elasticsearch==2.4.1

2.Haystack注册子应用和路由
INSTALLED_APPS = [
‘haystack’, # 全文检索
]
#haystack
url(r’^search/’, include(‘haystack.urls’)),

3.Haystack配置
在配置文件中配置Haystack为搜索引擎后端
#Haystack
HAYSTACK_CONNECTIONS = {
‘default’: {
‘ENGINE’: ‘haystack.backends.elasticsearch_backend.ElasticsearchSearchEngine’,
‘URL’: ‘http://192.168.103.158:9200/’, # Elasticsearch服务器ip地址,端口号固定为9200
‘INDEX_NAME’: ‘meiduo_mall’, # Elasticsearch建立的索引库的名称
},
}
#当添加、修改、删除数据时,自动生成索引
HAYSTACK_SIGNAL_PROCESSOR = ‘haystack.signals.RealtimeSignalProcessor’

三.Haystack创建索引数据

1.创建索引类
通过创建索引类,指明让搜索引擎对哪些模型字段建立索引
文件名为serach_indexes.py,用于定义索引类

class SKUIndex(indexes.SearchIndex, indexes.Indexable):
    """
    SKU索引类
    搜索引擎根据这个索引类指定的关键字,对数据进行预处理,并建立索引
    """
    # 用于指定建立索引的模型字段
    # 例如:可以使用商品名字来搜索,或者商品副标题来搜索
    text = indexes.CharField(document=True, use_template=True)

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

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

2.创建text字段索引值模板文件
具体在templates/search/indexes/goods/sku_text.txt文件中定义

{{ object.name }}
{{ object.caption }}

模板文件说明:当将关键词通过text参数传递时,此模板指明的name,caption将作为text字段的索引值来进行关键字索引查询

3.手动生成初始索引
$ python manage.py rebuild_index

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值