python - elasticsearch

2 年前 · 来自专栏 python后台开发

1\Haystack

Django haystack 是专门做电商商品搜索的,并没有那么灵活,需要一系列的配置:创建模型类,指定对哪张表进行检索, 针对该表的哪些字段创建索引


通过搜索引擎进行数据查询时,搜索引擎并不是直接在数据库中进行查询,而是搜索引擎会对数据库中的数据进行一遍预处理,单独建立起一份索引结构数据。


开源的 Elasticsearch 是目前全文搜索引擎的首选。它可以快速地储存、搜索和分析海量数据。


Elasticsearch 不支持对中文进行分词建立索引,需要配合扩展elasticsearch-analysis-ik来实现中文分词处理。


在django中可以通过使用haystack来调用Elasticsearch搜索引擎

。它的特点是统一的,熟悉的API,可以让你在不修改代码的情况下使用不同的搜索后端(比如 Solr, Elasticsearch, Whoosh, Xapian 等等)。


通过创建索引类,来指明让搜索引擎对哪些字段建立索引,也就是可以通过哪些字段的关键字来检索数据.



# Haystack

HAYSTACK_CONNECTIONS = {

'default': {

'ENGINE': 'haystack.backends.elasticsearch_backend.ElasticsearchSearchEngine',

# 端口号固定为9200

'URL': ' http://es的IP:9200/ ',

# 指定elasticsearch建立的索引库的名称

'INDEX_NAME': 'meiduo_mall',

},

}

# 当添加、修改、删除数据时,自动生成索引

HAYSTACK_SIGNAL_PROCESSOR = 'haystack.signals.RealtimeSignalProcessor'

drf-haystack只支持elasticsearch2,所以最高只能使用elasticsearch:2.4.6这个镜像.


2\elasticsearch & elasticsearch_dsl

通过elasticsearch_dsl工具将数据写入到elasticsearch中;elasticsearch-dsl-py是Elasticsearch的一个高级的Python客户端,它是基于官方提供的客户端elasticsearch-py开发的。它提供接口,让开发者可以方便地通过Python操作Elasticsearch。


Elasticsearch DSL

elasticsearch简介和elasticsearch_dsl - 洛丶丶丶 - 博客园



# Elasticsearch 7.xelasticsearch-dsl>=7.0.0,<8.0.0

# Elasticsearch 6.xelasticsearch-dsl>=6.0.0,<7.0.0

# Elasticsearch 5.xelasticsearch-dsl>=5.0.0,<6.0.0

# Elasticsearch 2.xelasticsearch-dsl>=2.0.0,<3.0.0


pip install -i pypi.douban.com/simple elasticsearch-dsl==5.4.0


Elasticsearch+Django搭建搜索引擎(二)使用elasticsearch-dsl-py将数据录入到Elasticsearch_liujh_990807的博客-CSDN博客


Python Elasticsearch api


pip3 install elasticsearch


# 导入包from elasticsearch import Elasticsearchfrom elasticsearch_dsl import Search, Q

连接es 并创建dsl 查询

es = Elasticsearch(hosts=" xxxxx:9222/ ") # 连接es

s = Search(using=es, index="xxxxx") #using: 指定es 引擎 index:指定索引


Python ElasticSearch 使用-插入、查询数据


批量插入:

Python中elasticsearch如何插入和更新数据_就是爱编程-都有人重名的博客-CSDN博客

elasticsearch之使用Python批量写入数据 - 听雨危楼 - 博客园

Elasticsearch --- 向es中导入数据


3\ ElasticSearch-head

ElasticSearch-head就是一款能连接ElasticSearch搜索引擎,并提供可视化的操作页面对ElasticSearch搜索引擎进行各种设置和数据检索功能的管理插件,如在head插件页面编写RESTful接口风格的请求,就可以对ElasticSearch中的数据进行增删改查、创建或者删除索引等操作。类似于使用navicat工具连接MySQL这种关系型数据库,对数据库做操作。


Elasticsearch-RTF

Elasticsearch-RTF是针对中文的一个发行版,即使用最新稳定的elasticsearch版本,并且帮你下载测试好对应的插件,如中文分词插件等,目的是让你可以下载下来就可以直接的使用


重启elasticsearch,回到http://localhost:9100/elasticsearch-head插件页面测试连接 127.0.0.1:9200/ 接口,点击右上角的信息菜单选择信息则看到访问 127.0.0.1:9200/ 接口所显示内容


在浏览器中访问 127.0.0.1:5601 则进行Kibana可视化页面,在页面中选择Dev-Tools可以创建索引以及对查询索引的配置

4\

ISO8601的格式是

YYYY-MM-DDTHH:mm:ss.fffZ

按照这个格式输出就可以了

es是伦敦时间 kibana是北京时间

发布于 2020-09-19 09:06

文章被以下专栏收录

    python后台开发

    python后台开发

    python后台开发