如何使用elasticsearch打造自己的搜索引擎

admin 2024年3月2日01:43:20评论12 views字数 1832阅读6分6秒阅读模式

申明:本次测试只作为学习用处,请勿未授权进行渗透测试,切勿用于其它用途!
公众号现在只对常读和星标的公众号才展示大图推送,
建议大家把 明暗安全
设为星标,否则可能就看不到啦!

1.漏洞背景

Elasticsearch是一个强大的开源搜索和分析引擎,它使得数据查询和实时分析变得简单高效。无论是全文搜索、结构化搜索还是分析,Elasticsearch都能胜任。本文将带你快速了解Elasticsearch的基础语法,让你能够开始你的搜索和分析之旅。有很多企业在使用他作为搜索引擎,最经典的如:GitHub,

Adobe

在深入语法之前,了解几个Elasticsearch的基本概念:

  • 索引(Index):存储数据的地方,类似于传统数据库中的“数据库”概念。

  • 类型(Type):索引中的数据分类,类似于传统数据库中的“表”。请注意,在Elasticsearch 7.x版本中,类型的概念已被废弃。

  • 文档(Document):存储在索引中的基本信息单位,类似于数据库中的一行记录。

  • 字段(Field):文档中的一个数据点,类似于数据库表中的列。

创建索引

创建一个名为my_index的索引:

PUT /my_index

删除索引

DELETE /my_index

my_index索引的_doc类型插入一个文档:

POST /my_index/_doc/1{  "name": "John Doe",  "age": 30,  "interests": ["sports", "music"]}

插入文档

my_index索引的_doc类型插入一个文档:

POST /my_index/_doc/1{  "name": "John Doe",  "age": 30,  "interests": ["sports", "music"]}

更新文档

更新my_index索引中ID为1的文档:

POST /my_index/_doc/1/_update{  "doc": {    "age": 31  }}

2. 数据查询

Elasticsearch提供了强大的查询功能,支持全文搜索、结构化搜索、复合查询等。因为es使用api操作很不方便,我们使用python脚本来操作es进行数据插入,查询等操作。

1. 首先下载

如何使用elasticsearch打造自己的搜索引擎

2. 启动es执行命令

./bin/elasticsearch

注意,该引擎需要在jdk8的环境下运行

3. 安装pip库,本文演示用py来操作api

pip install elasticsearch

4. 链接集群,并插入数据

from elasticsearch import Elasticsearch

# 连接本地Elasticsearch服务es = Elasticsearch("http://localhost:9200")# 向"my_index"索引插入一个文档doc = {    "name": "John Doe",    "age": 30,    "interests": ["sports", "music"]}res = es.index(index="my_index", id=1, body=doc)print(res['result'])

5. 查询插入的数据

# 在"my_index"索引中搜索姓名包含"John"的文档query = {    "query": {        "term": {            "name.keyword": "John"        }    }}res = es.search(index="my_index", body=query)for hit in res['hits']['hits']:    print(hit['_source'])

6. 上述方法适合插入单条数据,。

下边使用批量插入,速度非常快!!!

from elasticsearch import helpers

actions = [    {        "_index": "my_index",        "_id": 2,        "_source": {            "name": "Jane Doe",            "age": 25,            "interests": ["reading", "music"]        }    },    # 可以添加更多的操作]

helpers.bulk(es, actions)

使用批量插入仅需2分钟即可插入1kw数据。

在插入大量数据时,仅需读取txt,处理成列表,即可插入到es里

大家在搭建大型数据库的时候(比如:全流量平台那种亿级数据量),使用mysql会有一个很苦恼的事情,就是插入慢,查询慢。做索引时间很长。

使用es做数据查询引擎,能够达到毫秒级响应,亲测好评。

——————————————————

原文始发于微信公众号(明暗安全):如何使用elasticsearch打造自己的搜索引擎

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年3月2日01:43:20
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   如何使用elasticsearch打造自己的搜索引擎https://cn-sec.com/archives/2540707.html

发表评论

匿名网友 填写信息