ElasticSearch-2

ElasticSearch进阶篇

_Search检索文档

前面讲的那个是查询单条记录,可以理解为无condition的select

ES支持两种基本方式的检索:

  • 通过uri+condition(检索参数)
  • 通过uri+requestBody(请求体)

uri+condition

GET bank/_search?q=*&sort=account_number:asc

只返回10条数据

uri+requestBody

GET /bank/_search
#请求体被称为QueryDSL
{"query": { "match_all": {} },"sort": [{ "account_number": "asc" },{ "balance":"desc"}]
}

QueryDSL

最佳实战

GET /bank/_search{"query": {"match_all": {}},"sort": [{"balance": {		#给banlance字段排序"order": "desc"}}],"from": 0,			#分页搜索"size":5,"_source": ["balance","age"]
}

query/match 匹配查询

精确查询

GET /bank/_search
{"query": {"match": {"account_number": "594"	#就相当于SQL中的"where xxx=xxx"}}
}结果:
{"took" : 9,"timed_out" : false,"_shards" : {"total" : 1,"successful" : 1,"skipped" : 0,"failed" : 0},"hits" : {"total" : {"value" : 1,"relation" : "eq"},"max_score" : 1.0,"hits" : [{"_index" : "bank","_type" : "account","_id" : "594","_score" : 1.0,"_source" : {"account_number" : 594,"balance" : 28194,"firstname" : "Golden","lastname" : "Donovan","age" : 26,"gender" : "M","address" : "199 Jewel Street","employer" : "Organica","email" : "goldendonovan@organica.com","city" : "Macdona","state" : "RI"}}]}
}

模糊匹配(有分词效果)

最佳实践

和精确匹配的语法无差别

GET /bank/_search
{"query": {"match": {"address": "mill lane"}}
}结果:
{"took" : 1,"timed_out" : false,"_shards" : {"total" : 1,"successful" : 1,"skipped" : 0,"failed" : 0},"hits" : {"total" : {"value" : 19,"relation" : "eq"},"max_score" : 9.507477,"hits" : [{"_index" : "bank","_type" : "account","_id" : "136","_score" : 9.507477,"_source" : {"account_number" : 136,"balance" : 45801,"firstname" : "Winnie","lastname" : "Holland","age" : 38,"gender" : "M","address" : "198 Mill Lane","employer" : "Neteria","email" : "winnieholland@neteria.com","city" : "Urie","state" : "IL"}},{"_index" : "bank","_type" : "account","_id" : "970","_score" : 5.4032025,"_source" : {"account_number" : 970,"balance" : 19648,"firstname" : "Forbes","lastname" : "Wallace","age" : 28,"gender" : "M","address" : "990 Mill Road","employer" : "Pheast","email" : "forbeswallace@pheast.com","city" : "Lopezo","state" : "AK"}},{"_index" : "bank","_type" : "account","_id" : "345","_score" : 5.4032025,"_source" : {"account_number" : 345,"balance" : 9812,"firstname" : "Parker","lastname" : "Hines","age" : 38,"gender" : "M","address" : "715 Mill Avenue","employer" : "Baluba","email" : "parkerhines@baluba.com","city" : "Blackgum","state" : "KY"}},{"_index" : "bank","_type" : "account","_id" : "472","_score" : 5.4032025,"_source" : {"account_number" : 472,"balance" : 25571,"firstname" : "Lee","lastname" : "Long","age" : 32,"gender" : "F","address" : "288 Mill Street","employer" : "Comverges","email" : "leelong@comverges.com","city" : "Movico","state" : "MT"}},{"_index" : "bank","_type" : "account","_id" : "1","_score" : 4.1042743,"_source" : {"account_number" : 1,"balance" : 39225,"firstname" : "Amber","lastname" : "Duke","age" : 32,"gender" : "M","address" : "880 Holmes Lane","employer" : "Pyrami","email" : "amberduke@pyrami.com","city" : "Brogan","state" : "IL"}},{"_index" : "bank","_type" : "account","_id" : "70","_score" : 4.1042743,"_source" : {"account_number" : 70,"balance" : 38172,"firstname" : "Deidre","lastname" : "Thompson","age" : 33,"gender" : "F","address" : "685 School Lane","employer" : "Netplode","email" : "deidrethompson@netplode.com","city" : "Chestnut","state" : "GA"}},{"_index" : "bank","_type" : "account","_id" : "556","_score" : 4.1042743,"_source" : {"account_number" : 556,"balance" : 36420,"firstname" : "Collier","lastname" : "Odonnell","age" : 35,"gender" : "M","address" : "591 Nolans Lane","employer" : "Sultraxin","email" : "collierodonnell@sultraxin.com","city" : "Fulford","state" : "MD"}},{"_index" : "bank","_type" : "account","_id" : "568","_score" : 4.1042743,"_source" : {"account_number" : 568,"balance" : 36628,"firstname" : "Lesa","lastname" : "Maynard","age" : 29,"gender" : "F","address" : "295 Whitty Lane","employer" : "Coash","email" : "lesamaynard@coash.com","city" : "Broadlands","state" : "VT"}},{"_index" : "bank","_type" : "account","_id" : "715","_score" : 4.1042743,"_source" : {"account_number" : 715,"balance" : 23734,"firstname" : "Tammi","lastname" : "Hodge","age" : 24,"gender" : "M","address" : "865 Church Lane","employer" : "Netur","email" : "tammihodge@netur.com","city" : "Lacomb","state" : "KS"}},{"_index" : "bank","_type" : "account","_id" : "449","_score" : 4.1042743,"_source" : {"account_number" : 449,"balance" : 41950,"firstname" : "Barnett","lastname" : "Cantrell","age" : 39,"gender" : "F","address" : "945 Bedell Lane","employer" : "Zentility","email" : "barnettcantrell@zentility.com","city" : "Swartzville","state" : "ND"}}]}
}
GET /bank/_search
{"query": {"match": {"address": "milllane"}}
}{"took" : 0,"timed_out" : false,"_shards" : {"total" : 1,"successful" : 1,"skipped" : 0,"failed" : 0},"hits" : {"total" : {"value" : 0,"relation" : "eq"},"max_score" : null,"hits" : [ ]}
}

match:"milllane"和"mall lane"差别如此之大,说明了什么?

说明ES内部做了分词匹配(倒排索引),mall lane会被拆分成 mall lane,那么address中只要含有这两个单词其中一个或者两个都包含的文档就都会被返回(但是所得分数不同)。

query/match返回的结果按照得分从高到低进行排序。

短语匹配

短语匹配(不分词匹配)math_phrase

如果我们不想把"mill lane"进行分词 而是把它当成一个整个的短语 那么就可以使用math_phrase。

GET /bank/_search
{"query": {"match_phrase": {"address": "mill lane"}}
}结果:
{"took" : 11,"timed_out" : false,"_shards" : {"total" : 1,"successful" : 1,"skipped" : 0,"failed" : 0},"hits" : {"total" : {"value" : 1,"relation" : "eq"},"max_score" : 9.507477,"hits" : [{"_index" : "bank","_type" : "account","_id" : "136","_score" : 9.507477,"_source" : {"account_number" : 136,"balance" : 45801,"firstname" : "Winnie","lastname" : "Holland","age" : 38,"gender" : "M","address" : "198 Mill Lane","employer" : "Neteria","email" : "winnieholland@neteria.com","city" : "Urie","state" : "IL"}}]}
}

多条件匹配

multi_match=n*math(多条件匹配相当于对多个字段进行模糊匹配)

GET /bank/_search
{"query": {"multi_match": {"query": "mill brogan","fields": ["address","city"]}}
}#对address、city属性进行分词查询"mill lane"

Bool查询(复合查询)

  • must:key必须匹配value
  • must_not:key必须不匹配value
  • should:不满足也可以,但是满足更好。**即,should并不会改变查询到的结果 ** 满足的话可以提高score,should改变的只是查询结果里面的score

最佳实战

address和gender必须同时满足

GET /bank/_search
{"query": {"bool": {"must": [{"match": {"address": "mill"}},{"match": {"gender": "M"}}], "must_not": [{"match": {"age": "0"}}], "should": [{ "match": {"lastname": "Holland"}}]}}
}

Filter过滤

在bool查询(复合查询)中还可以指定filter。

filter最大的特点就是:和must_not一样,filter并不贡献文档得分。仅仅起到过滤作用。

GET /bank/_search
{"query": {"bool": {"filter": {"range": {"age": {"gte": 18,"lte": 30}}}}}
}结果:可以看到每个文档的得分都是0{"took" : 1,"timed_out" : false,"_shards" : {"total" : 1,"successful" : 1,"skipped" : 0,"failed" : 0},"hits" : {"total" : {"value" : 498,"relation" : "eq"},"max_score" : 0.0,"hits" : [{"_index" : "bank","_type" : "account","_id" : "13","_score" : 0.0,"_source" : {"account_number" : 13,"balance" : 32838,"firstname" : "Nanette","lastname" : "Bates","age" : 28,"gender" : "F","address" : "789 Madison Street","employer" : "Quility","email" : "nanettebates@quility.com","city" : "Nogal","state" : "VA"}},{"_index" : "bank","_type" : "account","_id" : "49","_score" : 0.0,"_source" : {"account_number" : 49,"balance" : 29104,"firstname" : "Fulton","lastname" : "Holt","age" : 23,"gender" : "F","address" : "451 Humboldt Street","employer" : "Anocha","email" : "fultonholt@anocha.com","city" : "Sunriver","state" : "RI"}},{"_index" : "bank","_type" : "account","_id" : "63","_score" : 0.0,"_source" : {"account_number" : 63,"balance" : 6077,"firstname" : "Hughes","lastname" : "Owens","age" : 30,"gender" : "F","address" : "510 Sedgwick Street","employer" : "Valpreal","email" : "hughesowens@valpreal.com","city" : "Guilford","state" : "KS"}},{"_index" : "bank","_type" : "account","_id" : "68","_score" : 0.0,"_source" : {"account_number" : 68,"balance" : 44214,"firstname" : "Hall","lastname" : "Key","age" : 25,"gender" : "F","address" : "927 Bay Parkway","employer" : "Eventex","email" : "hallkey@eventex.com","city" : "Shawmut","state" : "CA"}},{"_index" : "bank","_type" : "account","_id" : "75","_score" : 0.0,"_source" : {"account_number" : 75,"balance" : 40500,"firstname" : "Sandoval","lastname" : "Kramer","age" : 22,"gender" : "F","address" : "166 Irvington Place","employer" : "Overfork","email" : "sandovalkramer@overfork.com","city" : "Limestone","state" : "NH"}},{"_index" : "bank","_type" : "account","_id" : "87","_score" : 0.0,"_source" : {"account_number" : 87,"balance" : 1133,"firstname" : "Hewitt","lastname" : "Kidd","age" : 22,"gender" : "M","address" : "446 Halleck Street","employer" : "Isologics","email" : "hewittkidd@isologics.com","city" : "Coalmont","state" : "ME"}},{"_index" : "bank","_type" : "account","_id" : "94","_score" : 0.0,"_source" : {"account_number" : 94,"balance" : 41060,"firstname" : "Brittany","lastname" : "Cabrera","age" : 30,"gender" : "F","address" : "183 Kathleen Court","employer" : "Mixers","email" : "brittanycabrera@mixers.com","city" : "Cornucopia","state" : "AZ"}},{"_index" : "bank","_type" : "account","_id" : "102","_score" : 0.0,"_source" : {"account_number" : 102,"balance" : 29712,"firstname" : "Dena","lastname" : "Olson","age" : 27,"gender" : "F","address" : "759 Newkirk Avenue","employer" : "Hinway","email" : "denaolson@hinway.com","city" : "Choctaw","state" : "NJ"}},{"_index" : "bank","_type" : "account","_id" : "107","_score" : 0.0,"_source" : {"account_number" : 107,"balance" : 48844,"firstname" : "Randi","lastname" : "Rich","age" : 28,"gender" : "M","address" : "694 Jefferson Street","employer" : "Netplax","email" : "randirich@netplax.com","city" : "Bellfountain","state" : "SC"}},{"_index" : "bank","_type" : "account","_id" : "119","_score" : 0.0,"_source" : {"account_number" : 119,"balance" : 49222,"firstname" : "Laverne","lastname" : "Johnson","age" : 28,"gender" : "F","address" : "302 Howard Place","employer" : "Senmei","email" : "lavernejohnson@senmei.com","city" : "Herlong","state" : "DC"}}]}
}

Term&.keyword

  • 文本字段:match
  • 非文本字段,精确匹配:term

文本字段的精确匹配

  • match_phrase:将值作为一个整体,不再分词,但是查询结果中只要有这个短语即可
  • match + 属性.keyword:精确匹配,就是=,没有花里胡哨的

aggs聚合

就是mysql中的分组聚合部分


##aggs检索后开始聚合 s代表不只一个聚合
##ageAggs聚合名
##terms(项)展示有多少个不同的值,每个值有多少条文档
##avg求平均
##size=0不看命中的结果 只看聚合结果
GET /bank/_search
{"query": {"match": {"address": "mill"}},"aggs": {"ageAggs": {"terms": {"field": "age","size": 10}},"ageAvg":{"avg": {"field": "age"}},"banlanceAvg":{"avg": {"field": "balance"}}},"size": 0
}##按照年龄聚合,并且请求这些年龄段的人的平均薪资
GET /bank/_search
{"query": {"match_all": {}},"aggs": {"age_term": {"terms": {"field": "age","size": 100},"aggs": {"balance_avg": {"avg": {"field": "balance"}}}}},"size": 0
}##查出所有年龄分布,并且这些年龄段中M的平均薪资和F的平均薪资以及这个年龄段的总体平均薪资GET /bank/_search
{"query": {"match_all": {}},"aggs": {"age_term": {"terms": {"field": "age","size": 100},"aggs": {"allbalance_avg":{"avg": {"field": "balance"}},"gender_term": {"terms": {"field": "gender.keyword","size": 2},"aggs": {"balance_avg": {"avg": {"field": "balance"}}}}}}},"size": 0
}

Mapping映射

ES中的映射=》mysql的数据类型

ElasticSearch7-去掉type(类型)概念 以后直接【索引–》文档】

关系型数据库中两个数据表示是独立的,即使他们里面有相同名称的列也不影响使用,但ES中不是这样的。elasticsearch是基于Lucene开发的搜索引擎,而ES中不同type下名称相同的filed最终在Lucene中的处理方式是一样的。

两个不同type下的两个user_name,在ES同一个索引下其实被认为是同一个filed,你必须在两个不同的type中定义相同的filed映射。否则,不同type中的相同字段名称就会在处理中出现冲突的情况,导致Lucene处理效率下降。
去掉type就是为了提高ES处理数据的效率。
Elasticsearch 7.x URL中的type参数为可选。比如,索引一个文档不再要求提供文档类型。

Elasticsearch 8.x 不再支持URL中的type参数。

解决:
将索引从多类型迁移到单类型,每种类型文档一个独立索引

将已存在的索引下的类型数据,全部迁移到指定位置即可。详见数据迁移

我们可以在创建索引的时候来指定该索引下文档的映射。如果不指定,ES会自动推测出映射。

创建索引时指定映射

PUT /my_index
{"mappings": {"properties": {"age":{"type": "integer"},	#默认会推测成long"email":{"type": "keyword"},	#keyword类型不会全文检索"name":{"type": "text"}		#text会被全文检索}}
}

添加新的字段映射

PUT /my_index/_mapping

PUT /my_index/_mapping
{"properties": {"employee-id": {"type": "keyword","index": false # 字段不能被检索。检索}}
}

index:false 表明新的字段不能被检索,只是一个冗余字段。默认index都是为true的。

我们不能更新映射(只能添加新的字段),
如果一定要更新映射,必须创建新的索引,进行数据迁移

数据迁移

6.0以后写法
POST _reindex
{"source":{"index":"twitter"},"dest":{"index":"new_twitters"}
}老版本写法
POST _reindex
{"source":{"index":"twitter","twitter":"twitter"},"dest":{"index":"new_twitters"}
}

创建新的索引(不需要全文检索的全部设置成keyward)

PUT /newbank
{"mappings": {"properties": {"account_number": {"type": "long"},"address": {"type": "text"},"age": {"type": "integer"},"balance": {"type": "long"},"city": {"type": "keyword"},"email": {"type": "keyword"},"employer": {"type": "keyword"},"firstname": {"type": "text"},"gender": {"type": "keyword"},"lastname": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}},"state": {"type": "keyword"}}}
}

然后调用上面代码进行迁移

分词

一个tokenizer(分词器)接收一个字符流,将之分割为独立的tokens(词元,通常是独立的单词),然后输出tokens流。

例如:whitespace tokenizer遇到空白字符时分割文本。它会将文本"Quick brown fox!"分割为[Quick,brown,fox!]

该tokenizer(分词器)还负责记录各个terms(词条)的顺序或position位置(用于phrase短语和word proximity词近邻查询),以及term(词条)所代表的原始word(单词)的start(起始)和end(结束)的character offsets(字符串偏移量)(用于高亮显示搜索的内容)。

elasticsearch提供了很多内置的分词器(标准分词器),可以用来构建custom analyzers(自定义分词器)。

关于分词器: https://www.elastic.co/guide/en/elasticsearch/reference/7.6/analysis.html

##标准分词器
POST _analyze
{"analyzer": "standard","text": "we are family"
}结果:{"tokens" : [{"token" : "we","start_offset" : 0,"end_offset" : 2,"type" : "<ALPHANUM>","position" : 0},{"token" : "are","start_offset" : 3,"end_offset" : 6,"type" : "<ALPHANUM>","position" : 1},{"token" : "family","start_offset" : 7,"end_offset" : 13,"type" : "<ALPHANUM>","position" : 2}]
}

但是它不能分词中文

POST _analyze
{"analyzer": "standard","text": "男儿当自强"
}{"tokens" : [{"token" : "男","start_offset" : 0,"end_offset" : 1,"type" : "<IDEOGRAPHIC>","position" : 0},{"token" : "儿","start_offset" : 1,"end_offset" : 2,"type" : "<IDEOGRAPHIC>","position" : 1},{"token" : "当","start_offset" : 2,"end_offset" : 3,"type" : "<IDEOGRAPHIC>","position" : 2},{"token" : "自","start_offset" : 3,"end_offset" : 4,"type" : "<IDEOGRAPHIC>","position" : 3},{"token" : "强","start_offset" : 4,"end_offset" : 5,"type" : "<IDEOGRAPHIC>","position" : 4}]
}

so我们要

安装ik分词器

1、查看es的版本号

curl可以发送请求

[vagrant@localhost ~]$ curl http://localhost:9200
{"name" : "66718a266132","cluster_name" : "elasticsearch","cluster_uuid" : "xhDnsLynQ3WyRdYmQk5xhQ","version" : {"number" : "7.4.2","build_flavor" : "default","build_type" : "docker","build_hash" : "2f90bbf7b93631e52bafb59b3b049cb44ec25e96","build_date" : "2019-10-28T20:40:44.881551Z","build_snapshot" : false,"lucene_version" : "8.2.0","minimum_wire_compatibility_version" : "6.8.0","minimum_index_compatibility_version" : "6.0.0-beta1"},"tagline" : "You Know, for Search"
}

2、进入到挂载es plugin的文件夹后

yum install wgetwget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.4.2/elasticsearch-analysis-ik-7.4.2.zip

3、解压

unzip elasticsearch-analysis-ik-7.4.2.zip -d ik 
//-d 解压后的文件夹名
chmod -R 777 ik

4、重启 es

docker restart elasticsearch

测试分词器

GET _analyze
{"analyzer": "ik_smart", "text": "我是中国人"
}{"tokens" : [{"token" : "我","start_offset" : 0,"end_offset" : 1,"type" : "CN_CHAR","position" : 0},{"token" : "是","start_offset" : 1,"end_offset" : 2,"type" : "CN_CHAR","position" : 1},{"token" : "中国人","start_offset" : 2,"end_offset" : 5,"type" : "CN_WORD","position" : 2}]
}
GET _analyze
{"analyzer": "ik_max_word", "text": "我是中国人"
}结果:
{"tokens" : [{"token" : "我","start_offset" : 0,"end_offset" : 1,"type" : "CN_CHAR","position" : 0},{"token" : "是","start_offset" : 1,"end_offset" : 2,"type" : "CN_CHAR","position" : 1},{"token" : "中国人","start_offset" : 2,"end_offset" : 5,"type" : "CN_WORD","position" : 2},{"token" : "中国","start_offset" : 2,"end_offset" : 4,"type" : "CN_WORD","position" : 3},{"token" : "国人","start_offset" : 3,"end_offset" : 5,"type" : "CN_WORD","position" : 4}]
}

自定义词库

安装nginx by docker

docker pull nginx:1.10#随便启动一个nginx实例(为了获取它的配置)
docker run -p 80:80 --name nginx -d nginx:1.10#复制该nginx实例的配置(conf下有配置文件)
mkdir -p /mydata/nginx
cd /mydata/nginx
docker container cp nginx:/etc/nginx ./conf#删除这个实例
docker stop nginx
docker rm nginx#创建新的nginx
docker run -p 80:80 --name nginx \
-v /mydata/nginx/html:/usr/share/nginx/html \
-v /mydata/nginx/logs:/var/log/nginx \
-v /mydata/nginx/conf:/etc/nginx \
-d nginx:1.10docker update nginx --restart=always

测试

cd /mydata/nginx/html/
vim index.html
随便写写
测试 http://192.168.56.10:80

比如我们现在要把尚硅谷作为一个词

修改/mydata/elasticsearch/plugins/ik/config/IKAnalyzer.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties><comment>IK Analyzer 扩展配置</comment><!--用户可以在这里配置自己的扩展字典 --><entry key="ext_dict"></entry><!--用户可以在这里配置自己的扩展停止词字典--><entry key="ext_stopwords"></entry><!--用户可以在这里配置远程扩展字典  我们要在这个ip地址下放置自己的分词文件 --><entry key="remote_ext_dict">http://192.168.56.10/es/fenci.txt</entry><!--用户可以在这里配置远程扩展停止词字典--><!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties>

重启es容器

docker restart es

image-20220213203212044

SpringBoot + elasticsearch-Rest-Client

java操作es有两种方式:

  • 9300端口:TCP(不推荐)
    • spring-data-elasticsearch:transport-api.jar;
      • springboot版本不同,ransport-api.jar不同,不能适配es版本
      • 7.x已经不建议使用,8以后就要废弃
  • 9200端口:HTTP(√)
    • 有诸多包(其实只要是可以发送http请求的包都可以)
      • jestClient: 非官方,更新慢;
      • RestTemplate:模拟HTTP请求,ES很多操作需要自己封装,麻烦;
      • HttpClient:同上;
      • Elasticsearch-Rest-Client:官方RestClient,封装了ES操作,API层次分明,上手简单;

开整~

创建gulimall-search moudle
选择web依赖 但是不要选择es,原因见上

1、导入依赖(注意版本)

<dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId><version>7.4.2</version>
</dependency>

这里的es不是7.4.2 需要手动改动image-20220213205142484

<properties><java.version>1.8</java.version><elasticsearch.version>7.4.2</elasticsearch.version>
</properties>

2、导入es的配置

请求测试项,如果es添加了安全访问规则,访问es需要添加一个安全头,这个时候我们就可以通过requestOptions来设置

并且建议将其设为单例的

package config;import org.apache.http.HttpHost;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestClientBuilder;
import org.elasticsearch.client.RestHighLevelClient;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;/*** @author 志昊的刘* @date 2022/2/13*/
@Configuration
public class GuliEsConfig {public static final RequestOptions COMMON_OPTIONS;static {RequestOptions.Builder builder = RequestOptions.DEFAULT.toBuilder();COMMON_OPTIONS = builder.build();}@Beanpublic RestHighLevelClient esRestClient() {RestClientBuilder builder = null;// 可以指定多个esbuilder = RestClient.builder(new HttpHost("192.168.56.10", 9200, "http"));RestHighLevelClient client = new RestHighLevelClient(builder);return client;}}

插入数据

    /*** 插入数据*/@Testpublic void indexData() throws IOException {/*** 创建一个index请求 并设置id*/IndexRequest indexRequest = new IndexRequest("users");/*** id默认为随机id*/indexRequest.id("1");User user = new User();user.setName("张三");user.setAge(20);user.setGender("男");/*** 将user对象转换成json字符串*/String jsonString = JSON.toJSONString(user);/*** 设置要保存的数据,指定数据和类型*/indexRequest.source(jsonString, XContentType.JSON);/*** client发送请求,并且附加上安全头*/IndexResponse index = client.index(indexRequest, GuliEsConfig.COMMON_OPTIONS);System.out.println(index);}

结果

IndexResponse[index=users,type=_doc,id=1,version=1,result=created,seqNo=0,primaryTerm=1,shards={"total":2,"successful":1,"failed":0}]

查询数据

最佳实践

    /*** 获取数据*/@Testpublic void find() throws IOException {//1.创建检索请求SearchRequest searchRequest = new SearchRequest();searchRequest.indices("bank");//2.创建检索条件SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();searchSourceBuilder.query(QueryBuilders.matchQuery("address","mill"));System.out.println("请求参数:"+searchSourceBuilder);searchRequest.source(searchSourceBuilder);SearchResponse response = client.search(searchRequest,GuliEsConfig.COMMON_OPTIONS);System.out.println("查询结果:"+response);}
请求参数: {"query": {"match": {"address": {"query": "mill","operator": "OR","prefix_length": 0,"max_expansions": 50,"fuzzy_transpositions": true,"lenient": false,"zero_terms_query": "NONE","auto_generate_synonyms_phrase_query": true,"boost": 1.0}}}
}
查询结果: {"took": 6,"timed_out": false,"_shards": {"total": 1,"successful": 1,"skipped": 0,"failed": 0},"hits": {"total": {"value": 4,"relation": "eq"},"max_score": 5.4032025,"hits": [{"_index": "bank","_type": "account","_id": "970","_score": 5.4032025,"_source": {"account_number": 970,"balance": 19648,"firstname": "Forbes","lastname": "Wallace","age": 28,"gender": "M","address": "990 Mill Road","employer": "Pheast","email": "forbeswallace@pheast.com","city": "Lopezo","state": "AK"}}, {"_index": "bank","_type": "account","_id": "136","_score": 5.4032025,"_source": {"account_number": 136,"balance": 45801,"firstname": "Winnie","lastname": "Holland","age": 38,"gender": "M","address": "198 Mill Lane","employer": "Neteria","email": "winnieholland@neteria.com","city": "Urie","state": "IL"}}, {"_index": "bank","_type": "account","_id": "345","_score": 5.4032025,"_source": {"account_number": 345,"balance": 9812,"firstname": "Parker","lastname": "Hines","age": 38,"gender": "M","address": "715 Mill Avenue","employer": "Baluba","email": "parkerhines@baluba.com","city": "Blackgum","state": "KY"}}, {"_index": "bank","_type": "account","_id": "472","_score": 5.4032025,"_source": {"account_number": 472,"balance": 25571,"firstname": "Lee","lastname": "Long","age": 32,"gender": "F","address": "288 Mill Street","employer": "Comverges","email": "leelong@comverges.com","city": "Movico","state": "MT"}}]}
}
    /*** 获取数据*/@Testpublic void find() throws IOException {//1.创建检索请求SearchRequest searchRequest = new SearchRequest();searchRequest.indices("bank");//2.创建检索条件SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();searchSourceBuilder.query(QueryBuilders.matchQuery("address","mill"));TermsAggregationBuilder agg1 = AggregationBuilders.terms("agg1").field("age").size(10);searchSourceBuilder.aggregation(agg1);AvgAggregationBuilder agg2 = AggregationBuilders.avg("agg2").field("balance");searchSourceBuilder.aggregation(agg2);System.out.println("请求参数:"+searchSourceBuilder);searchRequest.source(searchSourceBuilder);SearchResponse response = client.search(searchRequest,GuliEsConfig.COMMON_OPTIONS);System.out.println("查询结果:"+response);}
请求参数: {"query": {"match": {"address": {"query": "mill",}}},"aggregations": {"agg1": {"terms": {"field": "age","size": 10,}},"agg2": {"avg": {"field": "balance"}}}
}
查询结果: {"took": 7,"timed_out": false,"_shards": {"total": 1,"successful": 1,"skipped": 0,"failed": 0},"hits": {"total": {"value": 4,"relation": "eq"},"max_score": 5.4032025,"hits": [{"_index": "bank","_type": "account","_id": "970","_score": 5.4032025,"_source": {"account_number": 970,"balance": 19648,"firstname": "Forbes","lastname": "Wallace","age": 28,"gender": "M","address": "990 Mill Road","employer": "Pheast","email": "forbeswallace@pheast.com","city": "Lopezo","state": "AK"}}, {"_index": "bank","_type": "account","_id": "136","_score": 5.4032025,"_source": {"account_number": 136,"balance": 45801,"firstname": "Winnie","lastname": "Holland","age": 38,"gender": "M","address": "198 Mill Lane","employer": "Neteria","email": "winnieholland@neteria.com","city": "Urie","state": "IL"}}, {"_index": "bank","_type": "account","_id": "345","_score": 5.4032025,"_source": {"account_number": 345,"balance": 9812,"firstname": "Parker","lastname": "Hines","age": 38,"gender": "M","address": "715 Mill Avenue","employer": "Baluba","email": "parkerhines@baluba.com","city": "Blackgum","state": "KY"}}, {"_index": "bank","_type": "account","_id": "472","_score": 5.4032025,"_source": {"account_number": 472,"balance": 25571,"firstname": "Lee","lastname": "Long","age": 32,"gender": "F","address": "288 Mill Street","employer": "Comverges","email": "leelong@comverges.com","city": "Movico","state": "MT"}}]},聚合的结果"aggregations": {"avg#agg2": {"value": 25208.0},"lterms#agg1": {"doc_count_error_upper_bound": 0,"sum_other_doc_count": 0,"buckets": [{"key": 38,"doc_count": 2}, {"key": 28,"doc_count": 1}, {"key": 32,"doc_count": 1}]}}
}

转换Bean

        //获取大hitsSearchHits hits = response.getHits();//获取每个小hitsSearchHit[] hits1 = hits.getHits();for (SearchHit hit : hits1) {String sourceAsString = hit.getSourceAsString();//json==>objAccount account = JSON.parseObject(sourceAsString, Account.class);System.out.println(account);}

分析信息

        Aggregations aggregations = response.getAggregations();Terms agg21 = aggregations.get("agg2");//agg的名称for (Terms.Bucket bucket : agg21.getBuckets()) {bucket.getKeyAsString();bucket.getDocCount();}
		"account_number": 345,"balance": 9812,"firstname": "Parker","lastname": "Hines","age": 38,"gender": "M","address": "715 Mill Avenue","employer": "Baluba","email": "parkerhines@baluba.com","city": "Blackgum","state": "KY"}}, {"_index": "bank","_type": "account","_id": "472","_score": 5.4032025,"_source": {"account_number": 472,"balance": 25571,"firstname": "Lee","lastname": "Long","age": 32,"gender": "F","address": "288 Mill Street","employer": "Comverges","email": "leelong@comverges.com","city": "Movico","state": "MT"}}]
},
聚合的结果
"aggregations": {"avg#agg2": {"value": 25208.0},"lterms#agg1": {"doc_count_error_upper_bound": 0,"sum_other_doc_count": 0,"buckets": [{"key": 38,"doc_count": 2}, {"key": 28,"doc_count": 1}, {"key": 32,"doc_count": 1}]}
}

}

**转换Bean**```java//获取大hitsSearchHits hits = response.getHits();//获取每个小hitsSearchHit[] hits1 = hits.getHits();for (SearchHit hit : hits1) {String sourceAsString = hit.getSourceAsString();//json==>objAccount account = JSON.parseObject(sourceAsString, Account.class);System.out.println(account);}

分析信息

        Aggregations aggregations = response.getAggregations();Terms agg21 = aggregations.get("agg2");//agg的名称for (Terms.Bucket bucket : agg21.getBuckets()) {bucket.getKeyAsString();bucket.getDocCount();}
查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. Metaverse for Social Good: A University Campus Prototype

    ...

    2024/4/28 11:58:26
  2. 【算法竞赛模板】二分图(染色法、匈牙利法)

    二分图一、定义二、应用三、算法模板① 染色法模板② 匈牙利模板 - 邻接表③ 匈牙利模板 - 邻接矩阵废话不多说&#xff0c;本苟蒻发文&#xff0c;有任何问题欢迎大佬斧正~&#xff08;&#xff1e;人&#xff1c;&#xff1b;&#xff09; 一、定义 图的节点由两个集合 u、v…...

    2024/4/28 14:53:33
  3. NOI OPENJUDGE 1.3(06)

    06:甲流疫情死亡率 总时间限制: 1000ms 内存限制: 65536kB 描述 甲流并不可怕&#xff0c;在中国&#xff0c;它的死亡率并不是很高。请根据截止2009年12月22日各省报告的甲流确诊数和死亡数&#xff0c;计算甲流在各省的死亡率。 输入 输入仅一行&#xff0c;有两个…...

    2024/4/28 5:32:53
  4. js放大镜

    bigSize.jpg为放大后的图片&#xff0c;small.jpg为原图 HTML部分 <div class"small"><div class"move"></div></div><div class"big"><img src"bigSize.jpg" alt""></div> cs…...

    2024/4/28 17:03:37
  5. Flink将application发布到生产环境前需要注意的事项(setMaxParallelism、uuid、State Backend、Checkpoint interval、HA集群)

    目录1. application未来能扩展到的最大parallelism2. 为DataStream的所有operator设置uuid3. 选择合适的State Backend4. 选择合适的Checkpoint时间间隔5. 搭建一个高可用HA集群&#xff0c;保证JobManager高可用1. application未来能扩展到的最大parallelism 默认的值由appli…...

    2024/4/28 0:49:09
  6. jvm常见的面试题

    jreJVMJava类库 jdkjreJava运行开发调试工具 jvm的运行时数据区&#xff1a; 线程共享的部分&#xff1a;方法区&#xff0c;堆内存&#xff0c;运行时常量池&#xff08;开启多个线程以后&#xff0c;共享的部分&#xff09; 线程私有区&#xff1a;本地方法区&#xff0c…...

    2024/4/28 6:45:29
  7. 使用ScrollView和TabHost实现垂直滚动条,选项卡

    1 滚动条 滚动视图ScrollView是FrameLayout的子类。默认情况下滚动条不显示&#xff0c;拖动后显示&#xff0c;停止拖动后滚动条消失。 垂直滚动条&#xff1a;ScrollView 水平滚动条&#xff1a;HorizontalScrollView 两中方式添加滚动视图&#xff1a; 1 xml布局文件 <…...

    2024/4/27 22:44:51
  8. [算法]剑指offer p16 反转链表 golang

    [算法]剑指offer p16 反转链表 golang 题目 题目&#xff1a;定义一个函数&#xff0c;输入一个链表的头结点&#xff0c;反转该链表并输出反转后链表的头结点。链表结点定义如下&#xff1a; type LinkNode struct {value intnext *LinkNode }解法1: stack 问下面试官是否…...

    2024/4/28 7:28:46
  9. 深入理解Java虚拟机——CMS收集器

    目录一、CMS收集器的概述二、CMS收集器运行过程三、CMS收集器优点四、CMS收集器缺点五、CMS收集器运行示意图一、CMS收集器的概述 CMS&#xff08;Concurrent Mark Sweep&#xff09;收集器是一种获取最短回收停顿时间为目标的收集器&#xff0c;目前很大一部分的Java应用集中…...

    2024/4/13 4:06:45
  10. maven项目编写相应的配置文件——sqlMapConfig.xml、AccountMapper.xml、applicationContext.xml、spring-mvc.xml、web.xml

    配置sqlMapConfig核心配置文件和Mapper映射文件 sqlMapConfig.xml&#xff1a; 配置数据库的环境定义别名加载映射文件 <?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN&qu…...

    2024/4/19 13:33:51
  11. NLP-基础任务-分词-第三方库:ICTCLAS【中文分词准确率最高的第三方库】【中科院】【收费】

    NLP-基础任务-分词-第三方库&#xff1a;ICTCLAS【中文分词准确率最高的第三方库】【中科院】【收费】 http://ictclas.nlpir.org/ 参考资料&#xff1a; ICTCLAS官网...

    2024/4/16 4:43:20
  12. 修改ssh服务端访问端口号

    修改ssh服务端访问端口号 一般服务端的ssh端口默认是22&#xff0c;我们可以通过修改服务端的ssh配置文件&#xff0c;来修改ssh访问服务端的端口号 登录到服务器命令窗口用编辑器(Vim&#xff0c;Emacs&#xff0c;Nano…)打开服务器上的/etc/ssh/sshd_config文件搜索Port 2…...

    2024/4/8 19:39:31
  13. zzuli:1045数值统计

    题目描述 统计给定的n个数中&#xff0c;负数、零和正数的个数。 输入 输入的第一个数是整数n&#xff08;n<100&#xff09;&#xff0c;表示需要统计的数值的个数&#xff0c;然后是n个整数 输出 输出一行a,b和c&#xff0c;分别表示给定的数据中负数、零和正数的个数…...

    2024/4/13 4:06:35
  14. 三维建模Lumion纹理素材 MAQUETTARIA 3D – Lumion Textures

    MAQUETARIA 3D–纹理素材包。大小解压后&#xff1a;790M 10种纹理现成 格式&#xff1a;.LNM (Lumion纹理文件格式)文件与预览。 拖放到材料。 包括: 素材获取&#xff1a;三维建模Lumion纹理素材 MAQUETTARIA 3D – Lumion Textures-云桥网 有线条的沥青 灰色织物 层压地板…...

    2024/4/20 3:50:17
  15. if-else结构的判断语句

    #if-else结构的判断语句 if语句的嵌套 ##练习题&#xff1a;1级随便玩&#xff0c;2级必须充值才能玩&#xff0c;并且充值金额必须是100的倍数&#xff1f; print(**10,欢迎来到消消乐,**10) level input(请输入您的级别1或者2&#xff1a;) if level1:print(1级用户免费玩…...

    2024/4/13 4:07:45
  16. javascript初探(六)------TypeScript浅尝

    目录一、概述二、数据类型2.1 编译工具2.2 基础数据类型2.2.1 字符串、数字、布尔值2.3 复合类型2.3.1 数组、元组、枚举2.3.2 对象2.4 其他类型三、函数3.1 常规写法3.2 展开符四、接口一、概述 概念&#xff1a;TypeScript 是 JavaScript 的一个超集&#xff0c;支持 ES6 、…...

    2024/4/15 12:40:13
  17. 完结 数据分析路线(带图)

    基本的数据类型:文本 整数 小数 布尔 日期 其他类型 变量类型 名义(性别、血型) 有序(好中差) 连续型(身高体重等)数值前加单引号 将数值转化为文本单元格格式的设置excel的基本操作 表格转表:表是数据库的概念开始-套用格式 选择某一个格式单元格操作:shift连续多行复…...

    2024/4/18 12:27:11
  18. Redis之----持久化RDB和持久化AOF

    文章目录简介RDM1.什么是RDM2.RDB的触发机制3.RDB的数据恢复4.RDB的优缺点AOF1.什么是AOF2.启动AOF3.修复AOF文件4.AOF重写规则5.AOF的优缺点RDB和AOF的选择简介 由于Redis是基于内存的数据库&#xff0c;如果不将内存中数据库状态保存在磁盘中&#xff0c;那么一旦数据服务器…...

    2024/4/18 16:50:07
  19. noi-2.2基本算法之递归和自调用函数:放苹果

    先看一下题目&#xff1a; http://noi.openjudge.cn/ch0202/666/http://noi.openjudge.cn/ch0202/666/ 把M个同样的苹果放在N个同样的盘子里&#xff0c;允许有的盘子空着不放&#xff0c;问共有多少种不同的分法&#xff1f;&#xff08;用K表示&#xff09;5&#xff0c;1&…...

    2024/4/19 10:35:34
  20. MySQL Connectors组件8.0.12及之前版本的Connector/J子组件存在安全漏洞及其相关性分析

    今天我把自己的SpringBoot项目上传到了GitHub,于是murphysec安全扫描平台扫描到了我的代码安全问题,如下 漏洞标题&#xff1a;Oracle MySQL Connectors组件访问控制错误漏洞 漏洞编号&#xff1a;CVE-2018-3258 漏洞描述&#xff1a; Oracle MySQL是美国甲骨文&#xff08;Or…...

    2024/4/13 4:07:45

最新文章

  1. 基于单片机的多功能电子万年历系统

    摘要:该题目要求学生综合运用单片机原理、低频电子线路、数字电路与逻辑设计等相关知识,设计完成多功能电子万年历系统。通过完成设计任务,使学生掌握单片机设计开发的基本流程,增强学生动手实践能力,培养学生分析和解决实际问题的能力,为后续课程的学习和工作打下良好基础。 关…...

    2024/4/29 1:23:16
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. 鹅厂实习offer

    #转眼已经银四了&#xff0c;你收到offer了吗# 本来都打算四月再投实习了&#xff0c;突然三月初被wxg捞了&#xff08;一年前找日常实习投的简历就更新了下&#xff09;&#xff0c;直接冲了&#xff0c;流程持续二十多天&#xff0c;结果是运气还不错&#xff0c;应该是部门比…...

    2024/4/23 6:25:31
  4. 【嵌入式开发 Linux 常用命令系列 4.3 -- git add 不 add untracked file】

    请阅读【嵌入式开发学习必备专栏 】 文章目录 git add 不add untracked file git add 不add untracked file 如果你想要Git在执行git add .时不添加未跟踪的文件&#xff08;untracked files&#xff09;&#xff0c;你可以使用以下命令&#xff1a; git add -u这个命令只会加…...

    2024/4/25 4:06:17
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/4/28 13:52:11
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/4/28 3:28:32
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/26 23:05:52
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/4/28 13:51:37
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/27 17:58:04
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/27 14:22:49
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/28 1:28:33
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/28 15:57:13
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/27 17:59:30
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/4/25 18:39:16
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/28 1:34:08
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/26 19:03:37
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/28 1:22:35
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/25 18:39:14
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/4/26 23:04:58
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/4/27 23:24:42
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/28 5:48:52
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/26 19:46:12
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/4/27 11:43:08
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/27 8:32:30
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57