Elasticsearch 是一个开源的搜索引擎,建立在一个全文搜索引擎库 Apache Lucene™ 基础之上。 Lucene 可能是目前存在的,不论开源还是私有的,拥有最先进,高性能和全功能搜索引擎功能的库。但是 Lucene 仅仅只是一个库。为了利用它,你需要编写 java 程序,并在你的 java 程序里面直接集成 Lucene 包。 更坏的情况是,你需要对信息检索有一定程度的理解才能明白 Lucene 是怎么工作的。Lucene 是 很 复杂的。
Elasticsearch 也是使用 Java 编写的,它的内部使用 Lucene 做索引与搜索,但是它的目标是使全文检索变得简单, 通过隐藏 Lucene 的复杂性,取而代之的提供一套简单一致的 RESTful API。然而,Elasticsearch 不仅仅是 Lucene,并且也不仅仅只是一个全文搜索引擎。 它可以被下面这样准确的形容:
- 一个分布式的实时文档存储,每个字段 可以被索引与搜索
- 一个分布式实时分析搜索引擎
- 能胜任上百个服务节点的扩展,并支持 PB 级别的结构化或者非结构化数据
Elasticsearch启动
Elasticsearch下载地址:https://www.elastic.co/downloads/elasticsearch
# 进入到elasticsearch的bin目录
cd /.../.../elasticsearch-5.5.1/bin
# 启动elasticsearch
./elasticsearch
可以再开启另外一个终端,输入一下命令,测试是否启动成功
curl http://localhost:9200/
在Python中操作Elasticsearch
安装Elasticsearch模块
pip install elasticsearch
添加数据
from elasticsearch import Elasticsearch
# 默认host为localhost,port为9200.但也可以指定host与port
es = Elasticsearch()
# 添加或更新数据,index,doc_type名称可以自定义,id可以根据需求赋值,body为内容
es.index(index="my_index",doc_type="test_type",id=1,body={"name":"python","addr":"深圳"})
# 或者:ignore=409忽略文档已存在异常
es.create(index="my_index",doc_type="test_type",id=1,ignore=409,body={"name":"python","addr":"深圳"})
查询数据
from elasticsearch import Elasticsearch
es = Elasticsearch()
# 获取索引为my_index,文档类型为test_type的所有数据,result为一个字典类型
result = es.search(index="my_index",doc_type="test_type")
# 或者这样写:搜索id=1的文档
result = es.get(index="my_index",doc_type="test_type",id=1)
# 打印所有数据
for item in result["hits"]["hits"]:
print(item["_source"])
删除数据
form elasticsearch import Elasticsearch
es = Elasticsearch()
# 删除id=1的数据
result = es.delete(index="my_index",doc_type="test_type",id=1)
Elasticsearch是一个基于Apache Lucene的分布式实时文档存储与搜索引擎。它简化了全文检索的过程,提供了RESTful API,支持PB级别的数据量。本文介绍如何安装及使用Elasticsearch,并演示如何用Python进行数据增删查改。
1105

被折叠的 条评论
为什么被折叠?



