1 Elasticsearch编程操作

基于Elasticsearch API操作索引库。

1.1 目标

  • 数据操作

    索引创建/删除
    创建映射
    添加数据-回顾
    修改数据
    删除数据
    批量增加数据->效率高-循环增加-效率低
    
  • 查询-回顾

    1.字符串查询
    2.词条查询
    3.通配符查询
    4.组合查询
    5.范围查询
    6.相似度查询->lucene-lucenx(搜索错了)
    
  • 高亮

1.2 讲解

1.2.1 工程搭建

(1)搭建工程

我们首先搭建一个新的工程,坐标如下

<groupId>com.itheima</groupId>
<artifactId>elasticsearch-day2-demo1</artifactId>
<version>1.0-SNAPSHOT</version>

(2)pom.xml依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.itheima</groupId><artifactId>elasticsearch-day2-demo1</artifactId><version>1.0-SNAPSHOT</version><dependencies><dependency><groupId>org.elasticsearch</groupId><artifactId>elasticsearch</artifactId><version>5.6.8</version></dependency><dependency><groupId>org.elasticsearch.client</groupId><artifactId>transport</artifactId><version>5.6.8</version></dependency><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-to-slf4j</artifactId><version>2.9.1</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.24</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-simple</artifactId><version>1.7.21</version></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.12</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency></dependencies>
</project>

(3)创建测试类com.itheima.test.ElasticsearchTest

1.2.2 数据操作

1.2.2.1 创建/删除索引

(1)创建索引

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S8dlAS4W-1591683587828)(images\1563655099836.png)]

(2)删除索引

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Vbd4EPiV-1591683587834)(images\1563655143937.png)]

1.2.2.2 创建映射

这里的映射表示创建索引类型结构,如果不创建映射,Elasticsearch会默认根据创建的文档中的数据用来创建映射。

查看之前的blog的索引

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3tW2GRqO-1591683587839)(images\1563655447905.png)]

要想指定对每个字段是否使用分词器,需要手动创建映射。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UxDhwgtr-1591683587846)(images\1563655353450.png)]

使用代码创建映射,代码如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iFakzn57-1591683587849)(images\1563655646698.png)]

查看最新的blog3的索引

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HlCS55Rj-1591683587851)(images\1563655697447.png)]

1.2.2.3 创建索引数据

(1)通过XContentBuilder对象创建

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3vTIPa9h-1591683587852)(images\1563655841905.png)]

代码如下:

/**** 创建索引数据*/
@Test
public void testPutIndexDataDemo4() throws Exception{//创建TransportClient,并设置不使用集群TransportClient client = new PreBuiltTransportClient(Settings.EMPTY);//设置IP和端口client.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("127.0.0.1"),9300));//通过XContentBuilder构建数据XContentBuilder builder = XContentFactory.jsonBuilder();builder.startObject();builder.field("id","1");builder.field("title","ElasticSearch是一个基于Lucene的搜索服务器,深圳黑马训练营!");builder.field("content","它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。");builder.endObject();//使用TransportClient对象增加数据client.prepareIndex("blog3","article","1").setSource(builder).get();//关闭资源client.close();
}

查看数据如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8Xejh5WL-1591683587854)(images\1563655951303.png)]

(2)使用Jackson转换实体

a.创建Article

创建com.itheima.domain.Article,代码如下:

public class Article implements Serializable {private Integer id;private String title;private String content;//..get..set..toString
}

b.引入坐标

Jackson的包,可以将Java对象转换成Json字符串;也可以将Json的字符串,转化成Java对象,引入如下坐标:

<!--jackson JSON转换包-->
<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId><version>2.8.1</version>
</dependency>
<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.8.1</version>
</dependency>
<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-annotations</artifactId><version>2.8.1</version>
</dependency>

c.代码实现

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qnsafuvb-1591683587858)(images\1563656313333.png)]

1.2.2.4 修改索引数据

(1)使用prepareUpdate修改

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RZZJ0Y4f-1591683587860)(images\1563656457824.png)]

(2)直接使用update()修改

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BWveNEOS-1591683587862)(images\1563656513220.png)]

1.2.2.5 删除索引数据

(1)通过prepareDelete 删除

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m3OPIb7e-1591683587863)(images\1563656572829.png)]

(2)直接使用delete() 删除

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BZnRRMWv-1591683587865)(images\1563656616437.png)]

1.2.2.6 批量增加数据

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UdKAAXg7-1591683587868)(images\1563656724810.png)]

数据如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9i6rilmb-1591683587870)(images\1563656782566.png)]

1.2.3 查询

1.2.3.1 字符串查询

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iBd1H1DQ-1591683587871)(images\1563656923105.png)]

1.2.3.2 词条查询

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oL0S4FqM-1591683587873)(images\1563657035062.png)]

1.2.3.3 jackson转换JavaBean

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z4mUEZnt-1591683587875)(images\1563657139997.png)]

1.2.3.4 多种查询方式实现

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ADQFZghh-1591683587877)(images\1563657218206.png)]

1.2.3.5 组合查询

布尔查询(BoolQuery)

     must(QueryBuilders) : AND,求交集mustNot(QueryBuilders): NOT IN   not int (60,61,62)should(QueryBuilders):OR ,求并集

代码实现如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-39eTX4Qf-1591683587879)(images\1563657416474.png)]

这里发现:

.must(QueryBuilders.wildcardQuery(“content”, “elastics*ch”)) // 模糊查询

能搜索到到结果。

而使用

.must(QueryBuilders.wildcardQuery(“content”, “ElasticS*ch”)) // 模糊查询

不能搜索到结果。为什么呢?

分词查询如下:

<http://127.0.0.1:9200/_analyze?analyzer=ik_max_word&pretty=true&text=ElasticSearch是一个全文检索的框架>

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LTdaR4F6-1591683587882)(images\1563657492854.png)]

因为IK分词器,在建立索引的时候将英文都变成了小写,这样方便我们在搜索的时候可以实现“不区分大小写”的搜索,只要我们在搜索的条件中添加.toLowerCase()的方法即可。

例如:

.must(QueryBuilders.wildcardQuery(“content”, “ELASTics*ch”.toLowerCase()))

将输入的值都先变成小写,再来搜索结果

1.2.3.6 使用DSL表达式

在定义json:放置到Elasticsearch的HEAD插件(PostMan工具)中(DSL表达式),使用restful风格编程,传递消息体【kibana】

使用head插件查看索引库的信息,进行查询:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ncSmuzBG-1591683587894)(images\1563657667887.png)]

JSON数据如下:

{"query" : {"bool" : {"must" : {"term" : {"title" : "elasticsearch"}},"must" : {"range" : {"id" : {"from" : 5,"to" : 55}}}}}
}
1.2.3.7 分页排序

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2hOH39W6-1591683587905)(images\1563657773418.png)]

1.2.4 高亮查询

1.2.4.1 什么是高亮

在进行关键字搜索时,搜索出的内容中的关键字会显示不同的颜色,称之为高亮

百度搜索关键字"传智播客"

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yporOGVE-1591683587919)(images\1563657971609.png)]

高亮源码分析:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AgionP6R-1591683587924)(images\1563658066656.png)]

1.2.4.2 高亮显示的html分析

通过开发者工具查看高亮数据的html代码实现:

ElasticSearch可以对查询出的内容中关键字部分进行标签和样式的设置,但是你需要告诉ElasticSearch使用什么标签对高亮关键字进行包裹呢?

经过测试:使用<em>高亮内容</em>

1.2.4.3 高亮实现代码

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yNbSlTGF-1591683587935)(images\1563658212508.png)]

输出结果如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z2t8eKQw-1591683587940)(images\1563658266992.png)]

2 SpringData Elasticsearch

2.1 目标

  • SpringData的作用:简化了数据库的增删改查操作
  • SpringDataElasticsearch入门[掌握]
  • SpringDataElasticsearch查询命名规则[掌握]

2.2 讲解

2.2.1 SpringDataJpa介绍[集成]

JPA是一个规范,真正操作数据库的是Hibernate(实现数据库增删改查框架[ORM框架],操作数据库采用的方式是面向对象[不写SQL语句]),而springdatajpa是对jpa的封装,将CRUD的方法封装到指定的方法中,操作的时候,只需要调用方法即可。

Spring Data Jpa的实现过程:

1:定义实体,实体类添加Jpa的注解  @Entity  @Talbe @Cloumn @Id
2:定义接口,接口要继承JpaRepository的接口
3:配置spring容器,applicationContext.xml/SpringApplication.run(T.class,args)

2.2.2 Spring Data ElasticSearch简介

(1)SpringData介绍

Spring Data是一个用于简化数据库、非关系型数据库、索引库访问,并支持云服务的开源框架。其主要目标是使得对数据的访问变得方便快捷,并支持map-reduce框架和云计算数据服务。 Spring Data可以极大的简化JPA(Elasticsearch…)的写法,可以在几乎不用写实现的情况下,实现对数据的访问和操作。除了CRUD外,还包括如分页、排序等一些常用的功能。

Spring Data的官网:http://projects.spring.io/spring-data/

Spring Data常用的功能模块如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WkEm3YA4-1591683587949)(images\1563658940128.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rCkls1VC-1591683587954)(images\1563658984464.png)]

(2)SpringData Elasticsearch介绍

Spring Data ElasticSearch 基于 spring data API 简化 elasticSearch操作,将原始操作elasticSearch的客户端API 进行封装 。Spring Data为Elasticsearch项目提供集成搜索引擎。Spring Data Elasticsearch POJO的关键功能区域为中心的模型与Elastichsearch交互文档和轻松地编写一个存储索引库数据访问层。

官方网站:http://projects.spring.io/spring-data-elasticsearch/

2.2.3 SpringData Elasticsearch入门

2.2.3.1 搭建工程

(1)搭建工程

工程坐标如下:

<groupId>com.itheima</groupId>
<artifactId>elasticsearch-day2-demo2-springdata-es</artifactId>
<version>1.0-SNAPSHOT</version>

(2)pom.xml依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.itheima</groupId><artifactId>elasticsearch-day2-demo2-springdata-es</artifactId><version>1.0-SNAPSHOT</version><!--依赖包--><dependencies><!--ES依赖包--><dependency><groupId>org.elasticsearch</groupId><artifactId>elasticsearch</artifactId><version>5.6.8</version></dependency><dependency><groupId>org.elasticsearch.client</groupId><artifactId>transport</artifactId><version>5.6.8</version></dependency><!--日志依赖--><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-to-slf4j</artifactId><version>2.9.1</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.24</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-simple</artifactId><version>1.7.21</version></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.12</version></dependency><!--测试包--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>5.0.8.RELEASE</version></dependency><!--springdata-es--><dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-elasticsearch</artifactId><version>3.0.7.RELEASE</version></dependency></dependencies>
</project>
2.2.3.2 增加索引数据

(1)编写实体类

创建com.itheima.domain.Article,代码如下:

public class Article {private Integer id;private String title;private String content;//..set..get..toString   
}

(2)Dao创建

创建com.itheima.es.dao.ArticleDao,代码如下:

public interface ArticleDao extends ElasticsearchRepository<Article,Integer> {
}

(3)创建Service

创建com.itheima.service.ArticleService接口,并添加一个保存数据方法,代码如下:

public interface ArticleService {/**** 增加数据* @param article*/void save(Article article);
}

创建com.itheima.service.impl.ArticleServiceImpl,并实现保存数据的方法,代码如下:

@Service
public class ArticleServiceImpl implements ArticleService {@Autowiredprivate ArticleDao articleDao;/**** 增加数据* @param article*/@Overridepublic void save(Article article) {articleDao.save(article);}
}

(4)配置映射

修改com.itheima.domain.Article配置索引映射关系,代码如下:

@Document(indexName = "blog4",type = "article")
public class Article {//@Id 文档主键 唯一标识@Idprivate Integer id;@Field(index = true,analyzer = "ik_smart",store=false,searchAnalyzer="ik_smart",type = FieldType.Text)private String title;@Field(index = true,analyzer = "ik_smart",store=false,searchAnalyzer="ik_smart",type = FieldType.Text)private String content;//..get..set..toString
}

其中,注解解释如下:
@Document(indexName=“blob4”,type=“article”):
indexName:索引的名称(必填项)
type:索引的类型
@Id:主键的唯一标识
@Field(index=true,analyzer=“ik_smart”,store=true,searchAnalyzer=“ik_smart”,type = FieldType.Text)
index:是否设置分词
analyzer:存储时使用的分词器
searchAnalyze:搜索时使用的分词器
store:是否存储,默认值是false。如果默认设置为false,Elasticsearch默认使用_source存放我们数据内容。
type: 数据类型

(5)核心配置文件配置

在resources下创建springdata-es.xml,在配置文件中配置包扫描以及ESDao包扫描,TransportClient对象创建,elasticsearchTemplate对象创建,代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:elasticsearch="http://www.springframework.org/schema/data/elasticsearch"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/data/elasticsearchhttp://www.springframework.org/schema/data/elasticsearch/spring-elasticsearch-1.0.xsd"><!--包扫描--><context:component-scan base-package="com.itheima.service" /><!--扫描Dao包,自动创建实例,扫描所有继承ElasticsearchRepository接口的接口--><elasticsearch:repositories base-package="com.itheima.es.dao"/><!--配置elasticSearch的连接对象Client--><elasticsearch:transport-client id="client" cluster-nodes="localhost:9300" cluster-name="elasticsearch"/><!--ElasticSearch模版对象(底层使用模板操作,需要用spring创建,并注入client)--><bean id="elasticsearchTemplate" class="org.springframework.data.elasticsearch.core.ElasticsearchTemplate"><constructor-arg name="client" ref="client"></constructor-arg></bean>
</beans>

(6)创建测试类

创建测试类com.itheima.test.SpringDataEsTest,代码如下:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations="classpath:springdata-es.xml")
public class SpringDataEsTest {@Autowiredprivate ArticleService articleService;@Autowiredprivate ElasticsearchTemplate elasticsearchTemplate;/*** 创建索引和映射信息*/@Testpublic void testCreateMapping(){elasticsearchTemplate.createIndex(Article.class);elasticsearchTemplate.putMapping(Article.class);}/*** 添加文档数据*/@Testpublic void testSave(){Article article = new Article();article.setId(100);article.setTitle("测试SpringData ElasticSearch");article.setContent("Spring Data ElasticSearch 基于 spring data API 简化 elasticSearch操作,将原始操作elasticSearch的客户端API 进行封装Spring Data为Elasticsearch Elasticsearch项目提供集成搜索引擎");articleService.save(article);}
}

查看elasticsearch-head,索引如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2sX2QEOp-1591683587989)(images\1563659782306.png)]

数据如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-flDlBXtv-1591683587993)(images\1563659834127.png)]

2.2.4 SpringData Elasticsearch常用操作

使用SpringDataElasticsearch实现数据的增删改查操作。

2.2.4.1 Service层

(1)Service接口

修改com.itheima.service.ArticleService,添加更多操作方法:

public interface ArticleService {/**** 增加数据* @param article*/void save(Article article);/*** 批量保存* @param articles*/void saveAll(List<Article> articles);/*** 根据ID删除数据* @param article*/void delete(Article article);/*** 查询所有* @return*/Iterable<Article> findAll();/*** 分页查询* @param pageable:分页封装对象* @return*/Page<Article> findAll(Pageable pageable);}

(2)Service实现类

修改com.itheima.service.impl.ArticleServiceImpl实现上面添加的接口方法,代码如下:

@Service
public class ArticleServiceImpl implements ArticleService {@Autowiredprivate ArticleDao articleDao;/**** 增加数据* @param article*/@Overridepublic void save(Article article) {articleDao.save(article);}/*** 批量保存* @param articles*/@Overridepublic void saveAll(List<Article> articles) {articleDao.saveAll(articles);}/*** 根据ID删除数据* @param article*/@Overridepublic void delete(Article article) {articleDao.delete(article);}/*** 查询所有* @return*/@Overridepublic Iterable<Article> findAll() {return articleDao.findAll();}/*** 分页查询* @param pageable:分页封装对象* @return*/@Overridepublic Page<Article> findAll(Pageable pageable) {return articleDao.findAll(pageable);}
}
2.2.4.2 测试

修改com.itheima.test.SpringDataEsTest,将刚才添加的方法一一测试:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations="classpath:springdata-es.xml")
public class SpringDataEsTest {@Autowiredprivate ArticleService articleService;@Autowiredprivate ElasticsearchTemplate elasticsearchTemplate;/*** 创建索引和映射信息*/@Testpublic void testCreateMapping(){elasticsearchTemplate.createIndex(Article.class);elasticsearchTemplate.putMapping(Article.class);}/*** 添加文档数据*/@Testpublic void testSave(){Article article = new Article();article.setId(100);article.setTitle("测试SpringData ElasticSearch");article.setContent("Spring Data ElasticSearch 基于 spring data API 简化 elasticSearch操作,将原始操作elasticSearch的客户端API 进行封装Spring Data为Elasticsearch Elasticsearch项目提供集成搜索引擎");articleService.save(article);}/*** 更新测试*/@Testpublic void testUpdate(){Article article = new Article();article.setId(100);article.setTitle("elasticSearch 3.0版本发布...更新");article.setContent("ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口");articleService.save(article);}/*** 批量保存*/@Testpublic void testSaveAll(){List<Article> articles = new ArrayList<Article>();for (int i = 0; i <100 ; i++) {Article article = new Article();article.setId(i+1);article.setTitle((i+1)+"elasticSearch 3.0版本发布...更新");article.setContent((i+1)+"ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口");articles.add(article);}articleService.saveAll(articles);}/**** 根据ID删除*/@Testpublic void testDelete(){Article article = new Article();article.setId(100);articleService.delete(article);}/*** 查询所有*/@Testpublic void testFindAll(){//查询所有Iterable<Article> articles = articleService.findAll();for (Article article : articles) {System.out.println(article);}}/*** 分页查询*/@Testpublic void testFindAllPage(){//分页查询Page<Article> page = articleService.findAll(PageRequest.of(0, 3));//总记录数long totalElements = page.getTotalElements();//总页数int totalPages = page.getTotalPages();//获取数据List<Article> articles = page.getContent();for (Article article : articles) {System.out.println(article);}}
}

2.2.5 常用查询命名规则

关键字 命名规则 解释 示例
and findByField1AndField2 根据Field1和Field2获得数据 findByTitleAndContent
or findByField1OrField2 根据Field1或Field2获得数据 findByTitleOrContent
is findByField 根据Field获得数据 findByTitle
not findByFieldNot 根据Field获得补集数据 findByTitleNot
between findByFieldBetween 获得指定范围的数据 findByPriceBetween
lessThanEqual findByFieldLessThan 获得小于等于指定值的数据 findByPriceLessThan

解释:

findBy:表示根据某个域查找  
findBy[域的名字]
2.2.5.1 根据标题查询

(1)Dao层

修改com.itheima.es.dao.ArticleDao添加一个根据标题查询方法:

/**** 根据标题查询* @param title* @return*/
List<Article> findByTitle(String title);

(2)Service层

修改com.itheima.service.ArticleService,添加一个根据标题查询方法,代码如下:

/**** 根据标题查询数据* @param title* @return*/
List<Article> findByTitle(String title);

修改com.itheima.service.impl.ArticleServiceImpl,添加根据标题查询实现方法,代码如下:

/**** 根据标题查询数据* @param title* @return*/
@Override
public List<Article> findByTitle(String title) {return articleDao.findByTitle(title);
}

(3)测试

/*** 根据标题查询*/
@Test
public void testFindByTitle(){//查询所有List<Article> articles = articleService.findByTitle("版本");for (Article article : articles) {System.out.println(article);}
}

结果如下:

Article{id=19, title='19elasticSearch 3.0版本发布...更新', content='19ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口'}
Article{id=22, title='22elasticSearch 3.0版本发布...更新', content='22ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口'}
Article{id=24, title='24elasticSearch 3.0版本发布...更新', content='24ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口'}
Article{id=25, title='25elasticSearch 3.0版本发布...更新', content='25ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口'}
2.2.5.2 根据标题分页查询

(1)Dao层

修改com.itheima.es.dao.ArticleDao添加一个根据标题分页查询方法:

/**** 根据标题分页查询*/
Page<Article> findByTitle(String title, Pageable pageable);

(2)Service层

修改com.itheima.service.ArticleService,添加一个根据标题分页查询方法,代码如下:

/**** 根据标题分页查询数据* @param title* @param pageable* @return*/
Page<Article> findByTitle(String title,Pageable pageable);

修改com.itheima.service.impl.ArticleServiceImpl,添加根据标题分页查询实现方法,代码如下:

/**** 根据标题分页查询数据* @param title* @param pageable* @return*/
@Override
public Page<Article> findByTitle(String title, Pageable pageable) {return articleDao.findByTitle(title,pageable);
}

(3)测试

/*** 根据标题分页查询*/
@Test
public void testFindByTitlePage(){//查询所有Page<Article> page = articleService.findByTitle("版本", PageRequest.of(0, 20));//获取集合数据List<Article> articles = page.getContent();for (Article article : articles) {System.out.println(article);}
}

结果如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4eyd4l3T-1591683587999)(images\1563661052906.png)]

3 Elasticsearch集群(作业)

3.1 集群介绍

(1)集群Cluster

一个集群就是由一个或多个节点组织在一起,它们共同持有整个的数据,并一起提供索引和搜索功能。一个集群由一个唯一的名字标识,这个名字默认就是“elasticsearch”。这个名字是重要的,因为一个节点只能通过指定某个集群的名字,来加入这个集群

(2)节点Node

一个节点是集群中的一个服务器,作为集群的一部分,它存储数据,参与集群的索引和搜索功能。和集群类似,一个节点也是由一个名字来标识的,默认情况下,这个名字是一个随机的漫威漫画角色的名字,这个名字会在启动的时候赋予节点。这个名字对于管理工作来说挺重要的,因为在这个管理过程中,你会去确定网络中的哪些服务器对应于Elasticsearch集群中的哪些节点。

一个节点可以通过配置集群名称的方式来加入一个指定的集群。默认情况下,每个节点都会被安排加入到一个叫做“elasticsearch”的集群中,这意味着,如果你在你的网络中启动了若干个节点,并假定它们能够相互发现彼此,它们将会自动地形成并加入到一个叫做“elasticsearch”的集群中。

在一个集群里,只要你想,可以拥有任意多个节点。而且,如果当前你的网络中没有运行任何Elasticsearch节点,这时启动一个节点,会默认创建并加入一个叫做“elasticsearch”的集群。

(3)分片和主从复制

一个索引可以存储超出单个结点硬件限制的大量数据。比如,一个具有10亿文档的索引占据1TB的磁盘空间,而任一节点都没有这样大的磁盘空间;或者单个节点处理搜索请求,响应太慢。为了解决这个问题,Elasticsearch提供了将索引划分成多份的能力,这些份就叫做分片。当你创建一个索引的时候,你可以指定你想要的分片的数量。每个分片本身也是一个功能完善并且独立的“索引”,这个“索引”可以被放置到集群中的任何节点上。分片很重要,主要有两方面的原因: 1)允许你水平分割/扩展你的内容容量。 2)允许你在分片(潜在地,位于多个节点上)之上进行分布式的、并行的操作,进而提高性能/吞吐量。

至于一个分片怎样分布,它的文档怎样聚合回搜索请求,是完全由Elasticsearch管理的,对于作为用户的你来说,这些都是透明的。

在一个网络/云的环境里,失败随时都可能发生,在某个分片/节点不知怎么的就处于离线状态,或者由于任何原因消失了,这种情况下,有一个故障转移机制是非常有用并且是强烈推荐的。为此目的,Elasticsearch允许你创建分片的一份或多份拷贝,这些拷贝叫做复制分片,或者直接叫复制。

复制之所以重要,有两个主要原因: 在分片/节点失败的情况下,提供了高可用性。因为这个原因,注意到复制分片从不与原/主要(original/primary)分片置于同一节点上是非常重要的。扩展你的搜索量/吞吐量,因为搜索可以在所有的复制上并行运行。总之,每个索引可以被分成多个分片。一个索引也可以被复制0次(意思是没有复制)或多次。一旦复制了,每个索引就有了主分片(作为复制源的原来的分片)和复制分片(主分片的拷贝)之别。分片和复制的数量可以在索引创建的时候指定。在索引创建之后,你可以在任何时候动态地改变复制的数量,但是你事后不能改变分片的数量。

默认情况下,Elasticsearch中的每个索引被分片5个主分片和1个复制,这意味着,如果你的集群中至少有两个节点,你的索引将会有5个主分片和另外5个复制分片(1个完全拷贝),这样的话每个索引总共就有10个分片。

3.2 集群搭建

(1)准备3台ES

可以将之前的Elasticsearch拷贝3份,每次拷贝不需要拷贝data

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p1VekGgm-1591683588003)(images\1563662981129.png)]

拷贝三分后分别存储到node1,node2,node3中。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b4xuIIsH-1591683588005)(images\1563662920984.png)]

(2)修改配置文件

修改node1节点中的node1\config\elasticsearch.yml配置文件,添加如下配置:

#节点1的配置信息:
#集群名称,保证唯一
cluster.name: my-elasticsearch
#节点名称,必须不一样
node.name: node-1
#服务端口号,在同一机器下必须不一样
http.port: 9201
#集群间通信端口号,在同一机器下必须不一样
transport.tcp.port: 9301
#设置集群自动发现机器ip集合
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9301","127.0.0.1:9302","127.0.0.1:9303"]

修改node2节点中的node2\config\elasticsearch.yml配置文件,添加如下配置:

#节点2的配置信息:
#集群名称,保证唯一
cluster.name: my-elasticsearch
#节点名称,必须不一样
node.name: node-2
#服务端口号,在同一机器下必须不一样
http.port: 9202
#集群间通信端口号,在同一机器下必须不一样
transport.tcp.port: 9302
#设置集群自动发现机器ip集合
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9301","127.0.0.1:9302","127.0.0.1:9303"]

修改node3节点中的node3\config\elasticsearch.yml配置文件,添加如下配置:

#节点3的配置信息:
#集群名称,保证唯一
cluster.name: my-elasticsearch
#节点名称,必须不一样
node.name: node-3
#服务端口号,在同一机器下必须不一样
http.port: 9203
#集群间通信端口号,在同一机器下必须不一样
transport.tcp.port: 9303
#设置集群自动发现机器ip集合
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9301","127.0.0.1:9302","127.0.0.1:9303"]

3.3 SpringDataElasticsearch配置

创建配置文件springdata-cluster.xml,配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:elasticsearch="http://www.springframework.org/schema/data/elasticsearch"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/data/elasticsearchhttp://www.springframework.org/schema/data/elasticsearch/spring-elasticsearch-1.0.xsd"><!--包扫描--><context:component-scan base-package="com.itheima.service" /><!--扫描Dao包,自动创建实例,扫描所有继承ElasticsearchRepository接口的接口--><elasticsearch:repositories base-package="com.itheima.es.dao"/><!--配置elasticSearch的连接对象Client--><elasticsearch:transport-client id="client" cluster-nodes="localhost:9301,localhost:9302,localhost:9303" cluster-name="my-elasticsearch"/><!--ElasticSearch模版对象(底层使用模板操作,需要用spring创建,并注入client)--><bean id="elasticsearchTemplate" class="org.springframework.data.elasticsearch.core.ElasticsearchTemplate"><constructor-arg name="client" ref="client"></constructor-arg></bean>
</beans>

其他的都不变即可。

p://www.w3.org/2001/XMLSchema-instance"
xmlns:context=“http://www.springframework.org/schema/context”
xmlns:elasticsearch=“http://www.springframework.org/schema/data/elasticsearch”
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/data/elasticsearch
http://www.springframework.org/schema/data/elasticsearch/spring-elasticsearch-1.0.xsd
">

<!--包扫描-->
<context:component-scan base-package="com.itheima.service" /><!--扫描Dao包,自动创建实例,扫描所有继承ElasticsearchRepository接口的接口-->
<elasticsearch:repositories base-package="com.itheima.es.dao"/><!--配置elasticSearch的连接对象Client-->
<elasticsearch:transport-client id="client" cluster-nodes="localhost:9301,localhost:9302,localhost:9303" cluster-name="my-elasticsearch"/><!--ElasticSearch模版对象(底层使用模板操作,需要用spring创建,并注入client)-->
<bean id="elasticsearchTemplate" class="org.springframework.data.elasticsearch.core.ElasticsearchTemplate"><constructor-arg name="client" ref="client"></constructor-arg>
</bean>
```

其他的都不变即可。

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 社群运营:让群不死,付费粉丝多次转化的模式探讨

    相关阅读:自媒体之百家号发文前100名_博客_十点数据自媒体之百家号账号信息_数据_十点数据自媒体运营、写作、社群运营等技巧_资源_十点数据[如何写作,才不会平庸?](如何写作,才不会平庸?_新媒体_十点数据学会这 4 招,人人都可以打造爆款标题100万+阅读量,是如何炼成的?…...

    2024/4/24 12:06:21
  2. Python之字符串类型及操作

    定义 由0个或多个字符组成的有序字符序列-字符串由一对单引号或一对双引号表示 “请输入带有符号的温度值:“或者C -字符串是字符的有序序列,可以对其中的字符进行索引 表示方法 字符串有2类共4种表示方法 1、由一对单引号或双引号表示,仅表示单行字符串 “请输入带有符号的…...

    2024/4/24 12:06:18
  3. node+express+mysql入门指南

    前端进阶路上node是躲不过去的技术栈,对于大部分前端来说,都或多或少的写过一些node代码或者demo,接下来就一步一步构建属于自己的node后台接口。 技术栈:node.js、express框架、mysql、pm2 写在前面 这篇博客适合有一定前端开发经验、学习过一点node.js的同学,因为项目当…...

    2024/4/24 12:06:24
  4. 计算机操作系统第四版课后习题答案(完整版)

    第一章1.设计现代OS的主要目标是什么?答:(1)有效性 (2)方便性 (3)可扩充性 (4)开放性2.OS的作用可表现在哪几个方面?答:(1)OS作为用户与计算机硬件系统之间的接口(2)OS作为计算机系统资源的管理者(3)OS实现了对计算机资源的抽象3.为什么说OS实现了对计算机…...

    2024/4/24 12:06:20
  5. docker使用

    Docker 1.docker容器的基本操作 1.1基本命令 ​ 查看镜像: ​ docker images [OPTIONS] [REPOSITORY] ​ -a,–all = false 显示所有镜像 ​ -f,–filter = [] 显示时的过滤条件 ​ –no-trunc = false 不使用截断的方式显示镜像ID ​ -…...

    2024/5/1 6:12:30
  6. Servlet-4-进阶API、过滤器与监听器

    文章目录一、Servlet进阶API二、应用程序事件、监听器 一、Servlet进阶APIServlet、ServletConfig与GenericServlet GenericServlet类图:使用ServletConfig 使用方法:ServletConfig config = getServletConfig();属性 说明getServletName()方法 该方法返回一个servlet实例的名…...

    2024/4/24 12:06:13
  7. 强化学习-sarsa教程

    Sarsa 与Q-Learning的不同:离线学习, Sarsa:是实施每个估计,在线学习,’保命为主‘Sarsa 算法更新 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RxaXDWEF-1591684153065)(evernotecid://5E01CD28-C4C7-40C9-89D8-B40DB3CF5295/appyinxiangcom…...

    2024/4/24 12:06:12
  8. P3:Java之GUI编程

    GUIJava 为 GUI 提供的 对象 都存在 java.awt 和 javax.swing 两个包中.Java 图形化界面的 产品: eclipse 这个产品使用 纯Java 语言 编写的. 所以 这个 软件不用安装, 但是至少得有 jre(Java 语言程序的 运行环境).1. AWT 和 Swingjava.awt: Abstarct Window ToolKit(抽象窗口…...

    2024/5/6 21:07:10
  9. Android 引入AspectJ的记录

    Android 引入 AspectJ进行AOP开发的记录。在不试用插件时,引入AspectJ到android工程1. 在项目gradle引入插件: dependencies {...classpath org.aspectj:aspectjtools:1.9.5...}2. 在创建aspect文件的包引入dependencies {...implementation org.aspectj:aspectjrt:1.9.5... …...

    2024/4/24 12:06:15
  10. Ethereum 2.0 Meeting #39 | 以太坊 2.0 会议第39期

    会议:以太坊2.0会议 #39会议日期: 2020年5月14日,星期四会议时长:1.5小时会议视频链接:https://youtu.be/7uZtEy0nNbw 会议日程:1. 测试和版本更新2. 客户端更新3. 测试网更新4. 研究更新5. 网络更新6. 规范讨论7. 开放讨论/总结会议主要内容:1. 会议开始。主持人Danny开…...

    2024/4/26 19:54:02
  11. 强化学习-基础教程

    Q-learning Q-learning - Q learning 的迷人之处就是 在 Q(s1, a2) 现实 中, 也包含了一个 Q(s2) 的最大估计值, 将对下一步的衰减的最大估计和当前所得到的奖励当成这一步的现实, 很奇妙吧. 最后我们来说说这套算法中一些参数的意义. Epsilon greedy 是用在决策上的一种策略, …...

    2024/5/1 17:08:58
  12. 跳转页面、无历史记录 可避免ios下面出现前进后退的白条

    function fnUrlReplace(href) { if (href && /^#|javasc/.test(href) === false) { if (history.replaceState) { history.replaceState(null, document.title, href.split(’#’)[0] + ‘#’); location.replace(’’); } else { location.replace(href); } } }; fnUr…...

    2024/4/24 12:06:08
  13. 源码分析设计模式(七):享元模式|菜鸟教程

    一、基本概念说到享元模式,第一个想到的应该就是池技术了,String常量池、数据库连接池、缓冲池等等都是享元模式的应用,所以说享元模式是池技术的重要实现方式。比如我们每次创建字符串对象时,都需要创建一个新的字符串对象的话,内存开销会很大,所以如果第一次创建了字符…...

    2024/5/1 11:45:37
  14. ipc$入侵加hydra暴力破解

    本人萌新一枚,多多关照。第一次搞小入侵在论坛发帖子有点小紧张。主机:Win7目标:Win2003知道了ip后用hydra来爆破密码(smb)爆破成功!知道靶机密码然后用ipc$入侵Win2003先建立ipc$非空连接写个小bat文件(人人都会)搞个后门叫WHOAMI密码为123后门创建成功再断开ipc$连接然后…...

    2024/5/3 19:24:01
  15. es1

    概述 Elasticsearch是面向文档(document oriented)的,这意味着它可以存储整个对象或文档(document)。然而它不仅仅是存储(store),还会索引(index)每个文档的内容使之可以被搜索。在Elasticsearch中,你可以对文档(而非成行成列的数据)进行索引、搜索、排序、过滤。Elasti…...

    2024/5/1 5:42:03
  16. 智慧监狱(所)设计方案

    智慧监狱(所)设计方案针对监狱行业目前普遍存在的问题,浙江大华技术股份有限公司凭借多年监所行业经验和安防技术创新,实现以现代信息技术为支撑,建成覆盖整个司法监管场所的网络互联互通、信息资源共享、标准规范统一、应用功能完备的监管信息化体系。结合当下生物识别技术…...

    2024/5/5 10:28:54
  17. 运维搭建CTFd在线靶场

    CentOS7.2搭建ctfd靶场平台 参考先有一台CentOS7.2无界面的 2核4G内存30G磁盘 然后网络桥接模式配置CentOS7的yum源为阿里的1、安装gityum provides git yum -y install git2、安装pip(有坑)CentOS默认python2.7.5环境,不支持pip [root@localhost ~]# python -V Python 2.7.…...

    2024/5/1 19:45:48
  18. 简书大佬的笔记:一篇文章带你熟悉 TCP/IP 协议(网络协议篇二)

    一篇文章带你熟悉 TCP/IP 协议(网络协议篇二)同样的,本文篇幅也比较长,先来一张思维导图,带大家过一遍。一图看完本文一、 计算机网络体系结构分层计算机网络体系结构分层计算机网络体系结构分层不难看出,TCP/IP 与 OSI 在分层模块上稍有区别。OSI 参考模型注重“通信协议…...

    2024/5/1 20:44:04
  19. Cache一致性导致的踩内存问题

    本文主要分享一个Cache一致性踩内存问题的定位过程,涉及到的知识点包括:backtrace、内存分析、efence、wrap系统函数、硬件watchpoint、DMA、Cache一致性等。 1 背景 设备上跑的是嵌入式实时操作系统(RTOS,具体为商业闭源的ThreadX),非Linux平台,导致一些常见的问题排查方…...

    2024/5/1 9:58:47
  20. linux基础服务(DHCP)

    DHCP篇 文章目录DHCP篇DHCP是什么DHCP工作原理DHCP三种分配机制搭建DHCP DHCP是什么 DHCP,动态主机配置协议(Dynamic host configuration protocol),是一个局域网络协议,使用的是UDP协议工作,是给内部局域网或者网络供应商自动分配IP地址,是给用户或者内部网络的网管来作为…...

    2024/5/6 3:02:54

最新文章

  1. 题目:排序疑惑

    问题描述&#xff1a; 解题思路&#xff1a; 做的时候没想到&#xff0c;其实这是以贪心题。我们可以每次排最大的区间&#xff08;小于n&#xff0c;即n-1大的区间&#xff09;&#xff0c;再判断是否有序 。因此只需要分别判断排&#xff08;1~n-1&#xff09;和&#xff08;…...

    2024/5/6 22:44:34
  2. 梯度消失和梯度爆炸的一些处理方法

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

    2024/5/6 9:38:23
  3. Oracle 正则表达式

    一、Oracle 正则表达式相关函数 (1) regexp_like &#xff1a;同 like 功能相似&#xff08;模糊 匹配&#xff09; (2) regexp_instr &#xff1a;同 instr 功能相似&#xff08;返回字符所在 下标&#xff09; (3) regexp_substr &#xff1a; 同 substr 功能相似&…...

    2024/5/5 8:52:36
  4. windows更新驱动导致Linux虚拟机网卡找不到

    windows更新驱动导致Linux虚拟机网卡找不到 1、现象2、解决过程3、参考 1、现象 原先虚拟机配置了静态IP&#xff0c;更新windows驱动后xshell连接不上这台虚拟机&#xff08;其他几台也是&#xff09;。 2、解决过程 service network restart出现一下报错&#xff1a; Rest…...

    2024/5/5 8:45:04
  5. 【外汇早评】美通胀数据走低,美元调整

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

    2024/5/4 23:54:56
  6. 【原油贵金属周评】原油多头拥挤,价格调整

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

    2024/5/4 23:54:56
  7. 【外汇周评】靓丽非农不及疲软通胀影响

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

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

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

    2024/5/6 9:21:00
  9. 【外汇早评】日本央行会议纪要不改日元强势

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

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

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

    2024/5/4 23:55:05
  11. 【外汇早评】美欲与伊朗重谈协议

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

    2024/5/4 23:54:56
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

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

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

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

    2024/5/4 23:54:56
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

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

    2024/5/6 1:40:42
  15. 【外汇早评】美伊僵持,风险情绪继续升温

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

    2024/5/4 23:54:56
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

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

    2024/5/4 23:55:17
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

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

    2024/5/4 23:55:06
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

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

    2024/5/4 23:54:56
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

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

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

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

    2024/5/5 8:13:33
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

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

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

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

    2024/5/4 23:54:58
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

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

    2024/5/6 21:42:42
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

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

    2024/5/4 23:54:56
  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