2020-09-06

2023-11-17

Elasticsearch
Elasticsearch(简称ES)是一个可分布式的实时搜索和分析引擎,一个建立在全文搜索引擎,一个建立在全文搜索引擎Apache Lucence基础上的搜索引擎,它不仅可以进行全文搜素,还可以进行以下工作:
分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索。实时分析的分布式搜索引擎。可以扩展到上百台服务器,处理PB级别的结构化或非及结构化数据提供了rest api的操作接口,开箱即用。

存储单位:
1KB=1024B
1MB=1024KB
1GB=1024MB
1TB=1024MB
1PB=1024TB
1EB=1024PB
1ZB=1024EB
1YB=1024ZB

基本概念:
Elasticsearch是面向文档型数据库,一个条数据在这里就是一个文档

1、索引(index):索引是具有相似特性的文档集合。例如,可以为客户数据提供索引,为产品目录建立另一个索引。索引由名称(必须全部小写)标识,该名称用于在对其中的文档执行索引,搜索,更新和删除操作时引用索引。在单个群集中,你可以定义尽可能多的索引。

2、文档:elasticsearch文档是一个存储在索引中的Json文档。每个文档都有一个类型和对应的id,这是唯一的。如:
{
“_index”:“packtpub”,
"_type:“elk”,
“_id”:“1”,
“_version”:1,
“found”:true,
“_source”:true,
book_name:“learning elk”,
book_author:”鲁迅” //单位是字段
}
}

3、字段(Field)文档内的一个基本单位,键值对形式(book_name:”learning elk”)

4、类型(Type)类型是index下的一个逻辑分类。比如weather这个index里,可以按照城市分组,也可以按照气候类型分组,这种分组就叫做类型。

5、映射(Mapping):映射用于映射文档的每个field及其对应的数据类型,例如字符串,整数,浮点数,双精度数,日期等。

6、分片shard:单台机器无法存储大量数据,es可以将一个索引中的数据切分为多个shard,分布在多台服务器上存储。有了shard就可以横向扩展,存储更多的数据,让搜索和分析等操作分布到多台服务器上去执行,提升吞吐量和性能。
primary shard:主分片
rdplica shard:复制分片

7、分词:把一段文本中的词按一定规则进行切分。

8、主分片(primary shard)与复制分片(replica shard)复制分片通常驻留在一个不同的节点上,而不是主碎片,在故障转移和负载平衡的情况下,可以满足多个请求。

9、集群(Clutser):集群是存储索引数据的节点集合。elasticsearch提供了水平的可伸缩性用以存储集群中的数据。每个集群都由一个集群名称来表示,不同的节点指明集群名称链接在一起。

10、节点(Node):节点是一个单独运行的elasticsearch实例,它属于一个集群。默认情况下。elasticsearch中的每个节点都加入名为“elasticsearch”的集群。每个节点都可以在elasticsearch中使用自己的elasticsearch.yml,他们可以对内存和资源分配有不同的设置。

ES 集群
集群分类:
1、数据节点(Data Node):数据节点索引文档并对索引文档执行搜索,建议添加更多数据的节点,以提高性能或扩展集群。通过在elasticsearch中设置这些属性,可以使节点成为一个数据节点。elasticsearch.yml 配置node.master = flase node.data = true

2、管理节点(Master Node):主节点负责集群的管理。对于大型集群,建议由三个专用的主节点(一个主节点和两个备份节点),它们只作为主节点,不存储索引或执行搜索。在elasticsearch.yml配置声明节点为主节点:node
.matser = true node.data = true

3、路由节点:亦称负载均衡节点(Routing Node or load balancer node)这些节点不扮演主节点或数据节点的角色,但只执行负载平衡或为搜索请求路由,或将文档编入适当的节点。这对于高容量搜索或索引操作非常有用。node.master = false node.data = flase

4、提取节点(ingest节点):可以创建多个预处理管道,用以修改传入文档。

Zendiscovery通信(发现机制):
ES进程会绑定在自己的回环地址上,然后扫描本机的9300-9305号端口,尝试跟其他主机上相同端口的es进程进行通信,然后自动形成一个集群,如果改了监听地址为非回环地址,ES按照配置文件里指定的地址或自动扫描当前网段的其他节点,自动跟着它节点上的ES Node进行通信。

Master选举:
在这里插入图片描述说明:下边的判断框(是否为本地节点),是说master是否为自己,如果master不是自己,则发送加入集群的请求,如果master是本机,等待加入的节点数量达到规定数量足以完成选举,选举完成以后宣布自己是master,发布cluster state。要说明的是,当临时master选举出来的时候是选举master的第一步,master是集群概念,所以要等待其他节点加入进来才算是真正意义的master。

脑裂:
因为网络或其他故障,导致一个集群被划分成了两伙或多方势力。这群伙都有多个node以及一个master,那么原来的集群就出现了多个matser。master主宰了集群状态的维护以及shard的分配,因此如果有多个master,可能会导致数据被破坏。

容错机制
状态 意义
green 所有主分片和从分片都可用
yellow 所有主分片可用,但存在不可用的从分片
red 存在不可用的主分片

宕机瞬间
master node 宕机的一瞬间,该节点的primary shard(主分片)就没有了,此时状态就不是active.status。那么集群中就不是所有的主分片都是active了。

容错步骤一:
master选举,es自动选举出两一个node称为master,承担起master的责任。

容错步骤二:
新master将丢失的主分片的某个复制分片提升为主分片。
此时cluster status(集群状态) 会变成yellow,因为所有的主分片都变成了activ status了,但是少了一个复制分片。

容错步骤三:
重启node,新的master会将缺失的副本都copy一份到该节点。而且该节点会使用之前已有的分片数据,只是同步一下宕机的修改,cluster status(集群状态)变成green。

构建Elasticsearch实验步骤如下:
实验环境:Centos7.3操作系统,实验需要三台虚拟机
实验步骤:
分布式的实时搜索和分析引擎

(1)首先三台虚拟机安装Elasticsearch
三台服务器:
[root@localhost yfr]# systemctl stop firewalld 关闭防火墙
[root@localhost yfr]# setenforce 0 关闭沙盒
[root@localhost yfr]# mkdir -p /es/{data,log} 创建属主目录
[root@localhost yfr]# groupadd es 创建用户组
[root@localhost yfr]# useradd es -g es 创建用户
[root@localhost yfr]# chown -R es:es /es/ 设置属主属组
[root@localhost yfr]# vim /etc/hosts 本地hosts文件添加
192.168.0.10 es1
192.168.0.20 es2
192.168.0.30 es3
进行软限制,限制最大打开文件数量为819200:
[root@localhost yfr]# echo ‘* soft nofile 819200’ >> /etc/security/limits.conf
进行硬限制,限制最大打开文件数量为819200:
[root@localhost yfr]# echo ‘* hard nofile 819200’ >> /etc/security/limits.conf
进行软限制,限制用户可用进程数为2048:
[root@localhost yfr]# echo ‘* soft nproc 2048’ >> /etc/security/limits.conf
进行硬限制,限制用户的可用进程数为4096:
[root@localhost yfr]# echo ‘* hard nproc 4096’ >> /etc/security/limits.conf
[root@localhost yfr]# echo ‘vm.max_map_count=655360’ >> /etc/sysctl.conf 设置最大线程数
[root@localhost yfr]# sysctl -p 加载sysctl的内容
vm.max_map_count = 655360

配置Java环境变量:
[root@localhost yfr]# tar xf jdk-8u201-linux-x64.tar.gz -C /usr/local/ 解压jdk包
[root@localhost yfr]# vim /etc/profile 进入环境变量配置文件
export JAVA_HOME=/usr/local/jdk1.8.0_201/
export JRE_HOME=/usr/local/jdk1.8.0_201/jre
export CLASSPATH= J A V A H O M E / l i b / t o o l s . j a r : JAVA_HOME/lib/tools.jar: JAVAHOME/lib/tools.jar:JAVA_HOME/lib/dt.jar
export PATH= J A V A H O M E / b i n : JAVA_HOME/bin: JAVAHOME/bin:JRE_HOME/bin:$PATH
[root@localhost yfr]# . /etc/profile 执行环境变量的改变

安装并且配置Elasticearch:
[root@localhost yfr]# tar zxf elasticsearch-6.3.2.tar.gz 解压Elasticearch包
[root@localhost yfr]# mv elasticsearch-6.3.2 /usr/local/es 移动到指定目录
[root@localhost yfr]# chown -R es.es /usr/local/es 设置属主属组
[root@localhost yfr]# vim /usr/local/es/config/elasticsearch.yml 修改配置文件
cluster.name: yunan-cluster 集群名字,17行,去掉注释
node.name: es1 节点名称,23行,去掉注释
node.master: true 节点资格,增加
node.data: true 是否可存放数据,增加
path.data: /es/data 指定数据文件存放目录,35行,去掉注释
path.logs: /es/log 指定日志文件目录,39行,去掉注释
network.host: 192.168.0.10 指定本节点IP,57行,去掉注释
http.port: 9200 ES默认监听端口,61行,去掉注释
transport.tcp.port:9300 集群节点进行通信的端口,增加
discovery.zen.ping.unicast.hosts: [“192.168.0.10:9300”, “192.168.0.20:9300”,“192.168.0.30:9300”] 指定节点范围,71行,去掉注释
discovery.zen.minimum_master_nodes: 2 选举条件,达到最小2个,即可选择master,去掉注释,75行,去掉注释
discovery.zen.ping_timeout: 120s 增加,ping所有的节点,检查是否有es进程,时间长一点,防止脑裂的超时时间
client.transport.ping_timeout: 60s 增加,客户端连接ES服务通信时的超时时间
gateway.recover_after_nodes: 3 节点到达三个开启复制,85行,去掉注释
gateway.recover_after_time: 5m 增加,五分钟后,检测节点,开启数据复制(如果上面一条不满足)
gateway.recover_after_data_nodes: 2 增加,达到两个节点就开始数据复制(如果上面两个条件都不满足),不满足的情况超时。

注意:分别到57行和23行改变名字改变每台机不同的本机节点的IP地址

[root@localhost ~]# su es 切换用户
[es@localhost root]$ /usr/local/es/bin/elasticsearch 启动Elasticsearch
…等待选举出主节点

开启一个终端:
查看群集当前状态信息:
[root@localhost ~]# curl -XGET ‘http://192.168.0.10:9200/_cluster/health?pretty’
{
“cluster_name” : “yunan-cluster”,
“status” : “green”,
“timed_out” : false,
“number_of_nodes” : 3,
“number_of_data_nodes” : 3,
“active_primary_shards” : 0,
“active_shards” : 0,
“relocating_shards” : 0,
“initializing_shards” : 0,
“unassigned_shards” : 0,
“delayed_unassigned_shards” : 0,
“number_of_pending_tasks” : 0,
“number_of_in_flight_fetch” : 0,
“task_max_waiting_in_queue_millis” : 0,
“active_shards_percent_as_number” : 100.0
}

查看当前master节点信息:
[root@localhost ~]# curl -XGET ‘http://192.168.0.10:9200/_cat/master?pretty’
IpInLcqHQMGYbZwZZwzWIw 192.168.0.20 192.168.0.20 es2

查看所有节点信息:
[root@localhost ~]# curl -XGET ‘http://192.168.0.10:9200/_cat/nodes’
192.168.0.10 12 93 18 0.40 0.63 0.66 mdi - es1
192.168.0.30 13 93 9 0.19 0.57 0.59 mdi - es3
192.168.0.20 11 93 12 0.18 0.59 0.65 mdi * es2

(2)创建索引并且增加内容,安装分词器
[root@localhost ~]# curl -XPUT http://192.168.0.10:9200/yunan 创建索引
{“acknowledged”:true,“shards_acknowledged”:true,“index”:“yunan”}

[root@localhost ~]# curl -XPOST “http://192.168.0.10:9200/yunan/fulltext/_mapping” -H ‘Content-Type:application/json’ -d’
{
“properties”:{
“content”:{
“type”:“text”,
“analyzer”:“ik_max_word”,
“search_analyzer”:“ik_max_word”
}
}
}’

[root@localhost ~]# curl -XPOST “http://192.168.0.10:9200/yunan/fulltext/1” -H ‘Content-Type:application/json’ -d’{“content”:“卡路里我的天敌,燃烧我的卡路里”}’
{"_index":“yunan”,"_type":“fulltext”,"_id":“1”,"_version":1,“result”:“created”,"_shards":{“total”:2,“successful”:2,“failed”:0},"_seq_no":0,"_primary_term":1} 添加内容

[root@localhost ~]# curl -XPOST “http://192.168.0.10:9200/yunan/fulltext/1” -H ‘Content-Type:application/json’ -d’ 查看刚刚添加的
{
“query” : {“match”: {“content”:“卡路里”}},
“highlight”: {
“pre_tags” : ["",""],
“post_tags”: [""],
“fields”: {
“content” : {}
}
}
}’
{"_index":“yunan”,"_type":“fulltext”,"_id":“1”,"_version":2,“result”:“updated”,"_shards":{“total”:2,“successful”:2,“failed”:0},"_seq_no":1,"_primary_term":1}

停掉三台服务器
[root@localhost ~]# tar xf node-v10.6.0-linux-x64.tar.gz 解压包
[root@localhost ~]# mv node-v10.6.0-linux-x64 /usr/local/node 移动到指定目录
[root@localhost ~]# vim /etc/profile 修改环境变量配置文件
export NODE_HOME=/usr/local/node
export PATH= N O D E H O M E / b i n : NODE_HOME/bin: NODEHOME/bin:JAVA_HOME/bin: J R E H O M E / b i n : JRE_HOME/bin: JREHOME/bin:JRE_HOME=/bin:$PATH
[root@localhost ~]# . /etc/profile 重载环境变量
[root@localhost ~]# unzip elasticsearch-head-master.zip 解压包
[root@localhost ~]# mv elasticsearch-head-master /usr/local/es-head 移动到指定目录
[root@localhost ~]# cd /usr/local/es-head/
使用es-head的代码进行:
[root@localhost es-head]# npm install -g grunt–registry=https://registry.npm.taobao.org
/usr/local/node/bin/grunt -> /usr/local/node/lib/node_modules/grunt/bin/grunt

  • grunt@1.0.4
    added 97 packages from 63 contributors in 14.851s
    [root@localhost es-head]# npm install -g cnpm --registry=https://registry.npm.taobao.org
    /usr/local/node/bin/cnpm -> /usr/local/node/lib/node_modules/cnpm/bin/cnpm
  • cnpm@6.1.1
    added 681 packages from 942 contributors in 20.673s
    [root@localhost es-head]# cnpm install

[root@localhost es-head]# vim Gruntfile.js 修改配置文件
connect: {
server: {
options: {
hostname:0.0.0.0,
port: 9100,
base: ‘.’,
keepalive: true
}
}
}

[root@localhost es-head]# vim /usr/local/es/config/elasticsearch.yml 末尾添加
http.cors.enabled: true
http.cors.allow-origin: “*”

再次启动三台ES服务器:
[root@localhost ~]# su es
[es@localhost root]$ /usr/local/es/bin/elasticsearch
…选举中

开启第二个终端:
[root@localhost ~]# cd /usr/local/es-head/
[root@localhost es-head]# . /etc/profile
[root@localhost es-head]# grunt server
浏览器访问,并且验证
其中带有星星的是主节点
在这里插入图片描述Elasticsearch常用命令:
1、查看所有可查看项:
[root@localhost ~]# curl http://192.168.64.3:9200/_cat
 
2、显示详细信息:
[root@localhost ~]# curl http://192.168.64.3:9200/_cat/master?v
id                     host         ip           node
dXu8pHDvSNOO-o1g6kVPiw 192.168.64.3 192.168.64.3 es1
 
3、输出可以显示的列?v:
[root@localhost ~]# curl http://192.168.64.3:9200/_cat/master?help
id   |   | node id    
host | h | host name  
ip   |   | ip address
node | n | node name  
 
 
4、指定输出的列?h:
[root@localhost ~]# curl http://192.168.64.3:9200/_cat/master?h=ip,node
192.168.64.3 es1
 
5、查看所有索引:
[root@localhost ~]# curl http://192.168.64.3:9200/_cat/indices?v
health status index uuid                   pri rep docs.count docs.deleted store.size pri.store.size
green  open   yunan _d59yemZQc2lgPUDArdZJg   5   1          1            0      8.3kb          4.1kb
 
6、创建索引:
[root@localhost ~]# curl -XPUT http://192.168.1.139:9200/kgctest1?pretty
{
  “acknowledged” : true,
  “shards_acknowledged” : true,
  “index” : “yunantest1”
}
 
7、关闭索引:
[root@localhost ~]# curl -XPOST http://192.168.1.139:9200/yunantest1/_close?pretty
{
  “acknowledged” : true
}
 
8、开启索引:
[root@localhost ~]# curl -XPOST http://192.168.1.139:9200/yunantest1/_open?pretty
{
  “acknowledged” : true,
  “shards_acknowledged” : true
}
 
9、删除索引:
[root@localhost ~]# curl -XDELETE http://192.168.1.139:9200/yunantest1?pretty
{
  “acknowledged” : true
}
 
10、插入数据:
[root@localhost ~]# curl -XPUT http://192.168.1.139:9200/kgctest1/fulltext/1?pretty -H ‘Content-Type: application/json’ -d’

{
    “name”: “tiechuiguniang”
}’
{
  “_index” : “kgctest1”,
  “_type” : “fulltext”,
  “_id” : “1”,
  “_version” : 1,
  “result” : “created”,
  “_shards” : {
    “total” : 2,
    “successful” : 2,
    “failed” : 0
  },
  “_seq_no” : 0,
  “_primary_term” : 1
}
 
11、取出数据:
[root@localhost ~]# curl -XGET ‘http://192.168.1.139:9200/kgctest1/fulltext/1?pretty’
{
  “_index” : “kgctest1”,
  “_type” : “fulltext”,
  “_id” : “1”,
  “_version” : 1,
  “found” : true,
  “_source” : {
    “name” : “tiechuiguniang”
  }
}
 
12、 更新文档(数据):
[root@localhost ~]# curl -XPOST ‘http://192.168.1.139:9200/kgctest1/fulltext/1_update?pretty’ -H ‘Content-Type: application/json’ -d’
{
    “doc”:{“name”:“wangtiechui”}
}’
{
  “_index” : “kgctest1”,
  “_type” : “fulltext”,
  “_id” : “1_update”,
  “_version” : 1,
  “result” : “created”,
  “_shards” : {
    “total” : 2,
    “successful” : 2,
    “failed” : 0
  },
  “_seq_no” : 0,
  “_primary_term” : 1
}
 
13、删除文档:
[root@localhost ~]# curl -XDELETE ‘http://192.168.1.139:9200/kgctest1/fulltext/1?pretty’
{
  “_index” : “kgctest1”,
  “_type” : “fulltext”,
  “_id” : “1”,
  “_version” : 2,
  “result” : “deleted”,
  “_shards” : {
    “total” : 2,
    “successful” : 2,
    “failed” : 0
  },
  “_seq_no” : 1,
  “_primary_term” : 1
}
 
14、查看莫格索引下的所有文档:
[root@localhost ~]# curl -XPOST ‘http://192.168.1.139:9200/kgctest1/fulltext/_search?pretty’ -H ‘Content-Type: application/json’ -d’
{
    “query”: {“match_all”:{}}
}’
{
  “took” : 748,
  “timed_out” : false,
  “_shards” : {
    “total” : 5,
    “successful” : 5,
    “skipped” : 0,
    “failed” : 0
  },
  “hits” : {
    “total” : 1,
    “max_score” : 1.0,
    “hits” : [
      {
        “_index” : “kgctest1”,
        “_type” : “fulltext”,
        “_id” : “1_update”,
        “_score” : 1.0,
        “_source” : {
          “doc” : {
            “name” : “wangtiechui”
          }
        }
      }
    ]
  }
}
 
15、查询符合条件的文档:
[root@localhost ~]# curl -XPOST ‘http://192.168.1.139:9200/kgctest1/fulltext/_search?pretty’ -H ‘Content-Type: application/json’ -d’

{
    “query”: {“match”:{“name”:“wangtiechui”}}
}’
{
  “took” : 152,
  “timed_out” : false,
  “_shards” : {
    “total” : 5,
    “successful” : 5,
    “skipped” : 0,
    “failed” : 0
  },
  “hits” : {
    “total” : 0,
    “max_score” : null,
    “hits” : [ ]
  }
}
 
16、清除内存中的缓存clear:
[root@localhost ~]# curl -XPOST ‘http://192.168.1.139:9200/kgctest1/_cache/clear?pretty’ -H ‘Content-Type: application/json’
{
  “_shards” : {
    “total” : 10,
    “successful” : 10,
    “failed” : 0
  }
}
 
17、flush(强制刷新数据到磁盘):
[root@localhost ~]# curl -XPOST ‘http://192.168.1.139:9200/kgctest1/_flush?pretty’ -H ‘Content-Type: application/json’
{
  “_shards” : {
    “total” : 10,
    “successful” : 10,
    “failed” : 0
  }
}
 
refresh:立即实现数据从内存到磁盘的缓存过程,从而使文档可以被立即搜索到
[root@localhost ~]# curl -XPOST ‘http://192.168.1.139:9200/kgctest1/_refresh?pretty’ -H ‘Content-Type: application/json’
{
  “_shards” : {
    “total” : 10,
    “successful” : 10,
    “failed” : 0
  }
}
 
FLUSH和REFRESH的区别:
当一个文档进入ES的初期, 文档是被存储到内存里的,默认经过1s之后, 会被写入文件系统缓存,这样该文档就可以被搜索到了,注意,此时该索引数据被没有最终写入到磁盘上。如果你对这1s的时间间隔还不满意, 调用_refresh就可以立即实现内存->文件系统缓存, 从而使文档可以立即被搜索到。 ES为了数据的安全, 在接受写入的文档的时候, 在写入内存buffer的同时, 会写一份translog日志,从而在出现程序故障/磁盘异常时, 保证数据的完整和安全。flush会触发lucene commit,并清空translog日志文件。 translog的flush是ES在后台自动执行的,默认情况下ES每隔5s会去检测要不要flush translog,默认条件是:每 30 分钟主动进行一次 flush,或者当 translog 文件大小大于 512MB主动进行一次 flush

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2020-09-06 的相关文章

  • MySQL——模糊查询(LIKE关键字与通配符:百分号%和下划线_的使用和理解)——(运用场景+通俗易懂)

    使用mysql模糊查询主要点 LIKE关键字和这两个通配符配合使用 任意一个字符 任意0或多个字符 那么我们立即上手吧 一 使用LIKE和通配符 场景1 我要搜索一个名字 可我都忘记叫什么了 只知道是3个字符的 那怎么搜索呢 三个下划线 代
  • es查询列表如何去重?

    SearchSourceBuilder builder new SearchSourceBuilder builder collapse new CollapseBuilder name keyword 在Elasticsearch中 bu
  • 这7个GitHub高级搜索技巧,你知道吗?

    前言 GitHub作为全球最大的同性交友 代码托管 平台 里面藏着巨大的资源宝库 一套Ctrl C和Ctrl V组合拳打出来 就没有你实现不了的需求 好了 废话不多说 下面介绍7个GitHub搜索高级技巧 让资源搜索不再困难 关键字 in
  • Elasticsearch基础1——搜索引擎发展史和工作流程、es/es-head/kibana的基础安装

    文章目录 一 搜索引擎 1 1 搜索引擎的发展背景 1 2 Lucene和Elasticsearch 1 3 Solr和Elasticsearch对比 1 4 数据搜索方式 1 5 搜索引擎 1 5 1 搜索引擎工作流程 1 5 2 网络爬
  • SpringBoot整合ElasticSearch(二)

    文章目录 es的批量操作 es的重中之重 查询 es与springboot集成 es的批量操作 bulk批量操作 导入数据 分析与创建索引 PUT goods mappings properties title type text anal
  • Linux日志收集实操实验命令(保姆级)

    作者 小刘在C站 个人主页 小刘主页 每天分享云计算网络运维课堂笔记 努力不一定有回报 但一定会有收获加油 一起努力 共赴美好人生 夕阳下 是最美的绽放 树高千尺 落叶归根人生不易 人间真情 目录 修改主机名 efk 1 安装elastic
  • ES搜索引擎之ES介绍,安装以及辅助插件Kibana的安装

    文章目录 ES搜索引擎之ES介绍 安装以及辅助插件Kibana的安装 ElasticSearch介绍 1 1为什么会有ElasticSearch搜索引擎 1 2ES的介绍 1 3什么是倒排索引 ElasticSearch的安装 下载elas
  • 一种解决ChatGPT报错“Sorry, you have been blocked“的方法

    ChatGPT突然不能用 尝试了网上说的重启V某N 打开隐私模式等方法都不管用 采用下面方式 解决 1 打开浏览器的 设置 2 找到语言设置 3 将首选语言改成英语 搞定
  • elasticSearch 设置用户名密码 && 查询

    一 设置密码 1 需要在配置文件中开启x pack验证 修改config目录下面的elasticsearch yml文件 在里面添加如下内容 并重启 xpack security enabled true xpack license sel
  • 【ES小结】还在用ElasticSearch做查询?换条思路实现高效数据统计

    博客首页 派 大 星 欢迎关注 点赞 收藏 留言 本文由派大星原创编撰 系列专栏 ES小结 本系列记录ElasticSearch技术学习历程以及问题解决 ElasticSearch高效数据统计 聚合查询 什么是聚合查询 Kibana 命令测
  • 老域名扫描软件-老域名采集挖掘工具

    老域名挖掘软件 老域名挖掘软件是一种可以帮助用户发现已过期或未续费的老域名的工具 以下是该软件主要特点 大数据分析 该软件通过大数据分析技术 深度挖掘互联网上的闲置老域名 发现可用的未续费或已过期域名 从而为用户提供更多的域名选择 全网搜索
  • Elasticsearch Split和shrink API

    背景 尝试解决如下问题 单分片存在过多文档 超过lucene限制 分析 1 一般为日志数据或者OLAP数据 直接删除索引重建 2 尝试保留索引 生成新索引 数据写入新索引 查询时候包含 old index new index 3 尝试spl
  • elasticsearch的映射 (mapping)

    一 概念 映射 mapping 就是指定索引 index 里面的每个文档中的字段的类型 设置字段的存储和查询的分析策略 es对不同的字段类型 有不同的存储和检索策略 比如对于text类型的字段 会经过各类分词处理 大小写转换 同义词转换 才
  • elasticsearch基础5——文档处理解析、数据入盘流程、文档分片存储

    文章目录 一 同步和异步 阻塞和非阻塞 1 1 四种组合 二 客户端 2 1 高级客户端文档解析 2 2 文档索引 2 3 构建JSON文档 2 4 文档处理过程解析 2 5 数据入盘流程 2 6 与MongoDB比较 三 文档分片存储 3
  • ElasticSearch--Field的使用

    目录 一 Field的介绍 二 Field的属性介绍 三 常用的Field类型 一 text文本字段 二 keyword关键字字段 三 date日期类型 四 Numeric类型 四 Field属性的设置标准 一 Field的介绍 上周的一篇
  • chatgpt赋能python:Python如何优化中文SEO

    Python如何优化中文SEO Python 作为一种流行的编程语言 可以用来开发各种不同的应用程序 当涉及到网络营销和搜索引擎优化 SEO 时 Python的功能也非常有用 在本篇文章中 我们将介绍如何使用Python来优化中文SEO 以
  • 03-信息收集

    信息搜集 全面了解系统 什么是信息收集 信息收集是指通过各种方式获取所需要的信息 信息收集是信息得以利用的第一步 也是关键的一步 信息收集工作的好坏 会影响整个渗透测试流程的进行 收集的信息越多后期可进行测试的目标就越多 信息收集包含资产收
  • chatgpt赋能Python-python_3__3

    Python 3 3 深入探讨Python中的相等运算符 在Python中 我们经常需要比较两个值是否相等 而Python的相等运算符 是用来判断两个值是否相等 在这篇文章中 我们将深入探讨Python中的 运算符 两个等号的作用 在Pyt
  • ES: 设置默认值

    场景 XX对象的告警个数字段是数字 优先级字段是数字 排序要求 优先告警个数大 gt 小 其次优先级大 gt 小 问题 告警个数字段不存在或者值为0的情况是等价的 排序上应该是平等的 不应该存在0的大于字段不存在的 处理 对没有告警个数字段
  • Elasticsearch-Kibana使用教程

    1 索引操作 1 1创建索引 PUT employee settings index refresh interval 1s number of shards 1 max result window 10000 number of repl

随机推荐

  • Python物理数值解析

    让我们回忆一下库仑定律 来自位于 r 0 r 0 r0 处的单个点电荷 q 0 q 0
  • 自动驾驶是用Python实现的?你敢用吗?

    一 安装环境 gym是用于开发和比较强化学习算法的工具包 在python中安装gym库和其中子场景都较为简便 安装gym pip install gym 安装自动驾驶模块 这里使用Edouard Leurent发布在github上的包hig
  • eclipse汉化.设置为中文 简单好操作 java初学者看过来

    方法 1 查找语言包下载网址 并复制 2 打开eclipse 点击 help Install New Software Add 3 在 Location 中粘帖网址 点击 Add 4 勾选 简体中文包 5 等待加载完 重启 本教程操作环境
  • Kafka原理分析

    在基础篇中我们介绍MQ的一些基础原理 这篇文章 我们针对kafka进行较深入的分析 上篇文章中我们提到了kafka中一个名词broker 其实broker可以理解成为一台kafa服务器 kafka的特性和功能 在kafka设计之初是为了实时
  • Redis的安装(CentOS7)与部分配置文件的讲解

    Redis的安装 CentOS7 与部分配置文件的讲解 Redis的安装 步骤一 安装Redis依赖 下载安装最新版的gcc编译器 yum install y gcc tcl 步骤二 上传安装包并解压 1 将Redis安装包上传到 opt中
  • vue点击把某个区域变成图片数据

    前言 使用html2canvas 可以实现把某个区域变成图片的base64数据 官网入口 点我 目录 实现步骤 1 引入 npm引入 js引入 2 在需要使用的vue组件中引入 3 将制定区域内转成图片 添加ref标记 4 点击开始转换的方
  • SV--线程(mailbox)

    3 mailbox 3 1概述 线程之间如果传递信息 可以使用mailbox mailbox和队列queue有相近之处 mailbox是一个对象 因此也可以用new 来例化 例化时 有一个可选的参数size来限定其存储的最大数量 如果siz
  • Windows中zlib的安装与配置

    安装zlib所需前置条件 cmake VS 2022 其他版本也可以 cmake的安装可以看 windows中CMake的安装与配置 第一步 下载zlib库源文件 下载zlib库源文件 可以去官网下载 也可以去github下载 这里推荐Gi
  • 数据挖掘--分类算法的优缺点

    1决策树 Decision Trees 的优缺点 决策树的优点 一 决策树易于理解和解释 人们在通过解释后都有能力去理解决策树所表达的意义 二 对于决策树 数据的准备往往是简单或者是不必要的 其他的技术往往要求先把数据一般化 比如去掉多余的
  • 万向区块链元宇宙系列报告:对工业元宇宙的认知

    伴随着元宇宙概念大热 国内外多个巨头企业抢先布局 国内多个地方政府也在积极布局 发展元宇宙技术及相关产业 试图抢占先机 针对各业务场景与元宇宙的融合 万向区块链首席经济学家办公室团队出具了系列元宇宙相关研究报告 本篇将主要聚焦工业元宇宙 探
  • json和pickle的dump,dumps,load,dumps方法的使用

    序列化 Serialization 将对象的状态信息转换为便于存储或传输的形式的过程称之为序列化 该过程的逆向则称之为反序列化 如 1 数据和文本的转换 2 Python的数据类型和二进制数据类型的转化 3 Python的数据类型和json
  • 微信小程序 - 判断一个经纬度是否在一个多边形区域内

    功能描述 最近公司做了一个定位打卡的小程序 需要判断用户的经纬度是否在一个闭合的多边形区域内 在区域内允许打卡 否则提示 不再打卡范围 由于腾讯地图小程序SDK没有提供相关功能 所以需要自己手写造轮子 实现思路 首先已知一个用户坐标 x0
  • python函数式编程例子-python之面向过程,函数式编程,面向对象浅析

    python编程有面向过程 面向函数 面向对象三种 那么他们区别在哪呢 这个问题 让我想起我在学习编程的时候 我的老师给我举的例子 分享给大家 面向过程就是将编程当成是做一件事 要按步骤完成 比如煮咖啡这件事 先拿一定量的咖啡豆 然后磨成粉
  • Vue----双向绑定指令

    文章目录 3 7 双向绑定指令 3 7 1 v model 指令的修饰符 3 7 双向绑定指令 vue提供了 v model双向绑定指令 用来辅助开发者在 不操作DOM 的前提下 快速 获取表单数 据
  • 使用idea自带的maven插件配置镜像

    一 选择idea自带maven路径 setting文件的位置选择 二 打开setting文件 三 修改maven的镜像
  • 华为HCIE云计算之Fusion Access桌面云

    华为HCIE云计算之Fusion Access桌面云 一 Fusion Access介绍 二 华为Fusion Access架构 1 Fusion Access桌面云解决方案逻辑架构 2 FusionSphere云平台架构 三 Fusion
  • 【无人机分配】一种无人机实时最优任务分配模型附matlab代码

    作者简介 热爱科研的Matlab仿真开发者 修心和技术同步精进 matlab项目合作可私信 个人主页 Matlab科研工作室 个人信条 格物致知 更多Matlab仿真内容点击 智能优化算法 神经网络预测 雷达通信 无线传感器 信号处理 图像
  • 不能看到共享的服务器文件夹,服务器不能共享文件夹

    服务器不能共享文件夹 内容精选 换一换 VPC为弹性云服务器构建隔离的 用户自主配置和管理的虚拟网络环境 提升用户云中资源的安全性 简化用户的网络部署 使用弹性文件服务时 文件系统和云服务器归属于同一VPC下才能文件共享 VPC可以通过网络
  • Java发送HTTP的get,post请求(JSON)

    import net sf json JSONObject import org apache commons httpclient import org apache commons httpclient methods GetMetho
  • 2020-09-06

    Elasticsearch Elasticsearch 简称ES 是一个可分布式的实时搜索和分析引擎 一个建立在全文搜索引擎 一个建立在全文搜索引擎Apache Lucence基础上的搜索引擎 它不仅可以进行全文搜素 还可以进行以下工作 分