python - elasticsearch
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简介和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 https:// pypi.douban.com/simple elasticsearch-dsl==5.4.0
Elasticsearch+Django搭建搜索引擎(二)使用elasticsearch-dsl-py将数据录入到Elasticsearch_liujh_990807的博客-CSDN博客
pip3 install elasticsearch
# 导入包from elasticsearch import Elasticsearchfrom elasticsearch_dsl import Search, Q
连接es 并创建dsl 查询
es = Elasticsearch(hosts=" http:// xxxxx:9222/ ") # 连接es
s = Search(using=es, index="xxxxx") #using: 指定es 引擎 index:指定索引
Python ElasticSearch 使用-插入、查询数据
批量插入:
Python中elasticsearch如何插入和更新数据_就是爱编程-都有人重名的博客-CSDN博客
elasticsearch之使用Python批量写入数据 - 听雨危楼 - 博客园
3\ ElasticSearch-head
ElasticSearch-head就是一款能连接ElasticSearch搜索引擎,并提供可视化的操作页面对ElasticSearch搜索引擎进行各种设置和数据检索功能的管理插件,如在head插件页面编写RESTful接口风格的请求,就可以对ElasticSearch中的数据进行增删改查、创建或者删除索引等操作。类似于使用navicat工具连接MySQL这种关系型数据库,对数据库做操作。
Elasticsearch-RTF
Elasticsearch-RTF是针对中文的一个发行版,即使用最新稳定的elasticsearch版本,并且帮你下载测试好对应的插件,如中文分词插件等,目的是让你可以下载下来就可以直接的使用
重启elasticsearch,回到http://localhost:9100/elasticsearch-head插件页面测试连接 http:// 127.0.0.1:9200/ 接口,点击右上角的信息菜单选择信息则看到访问 http:// 127.0.0.1:9200/ 接口所显示内容
在浏览器中访问 http:// 127.0.0.1:5601 则进行Kibana可视化页面,在页面中选择Dev-Tools可以创建索引以及对查询索引的配置
4\
ISO8601的格式是
YYYY-MM-DDTHH:mm:ss.fffZ
按照这个格式输出就可以了
es是伦敦时间 kibana是北京时间