我的编程空间,编程开发者的网络收藏夹
学习永远不晚

elasticSearch-api的具体操作流程是什么

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

elasticSearch-api的具体操作流程是什么

这篇文章主要介绍“elasticSearch-api的具体操作流程是什么”,在日常操作中,相信很多人在elasticSearch-api的具体操作流程是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”elasticSearch-api的具体操作流程是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

使用步骤

1.环境准备

用的是windows版,自行下载

链接: 下载地址

2.针对索引操作

这里是kibana上操作的(也可以用postman操作):

elasticSearch-api的具体操作流程是什么

#创建索引,指定文档idPUT /test1/type1/1{  "name":"张三",   "age":30  }#创建索引规则(类似数据库建表)PUT /test2{  "mappings": {    "properties": {      "name":{        "type":"text"      },      "age":{        "type": "integer"      },      "birthday":{        "type": "date"      }    }  }}#获取索引的信息,properties类型GET test2#创建索引,properties不指定类型会有默认类型#也可以用作修改,但是必须写上全部字段,不然会丢失未写字段PUT /test3/_doc/1{  "name":"张三",  "age":30,  "birth":"1991-06-23"}GET test3#查看es健康状态GET _cat/health#查看所有索引状态GET _cat/indices?v#修改POST /test3/_doc/1/_update{  "doc":{    "name":"李四"  }}

3.针对doc操作(增删改)

代码如下(示例):

#新增索引,并添加docPOST /chen/user/1{  "name":"张三",  "age":11,  "desc":"一顿操作猛如虎,一看工资2500",  "tags":["技术宅","温暖","直男"]}POST /chen/user/2{  "name":"李四",  "age":12,  "desc":"憨批",  "tags":["渣男","旅游","交友"]}POST /chen/user/3{  "name":"王五",  "age":13,  "desc":"瓜怂",  "tags":["靓女","旅游","美食"]}POST /chen/user/4{  "name":"刘六",  "age":14,  "desc":"锅盔",  "tags":["衰仔","旅游","美食"]}#获取数据GET chen/user/1#更新数据POST chen/user/1/_update{  "doc":{    "name":"更新"  }}#删除DELETE chen/user/1#条件查询,匹配度越高,_score(分值)越高GET chen/user/_search?q=name:李GET chen/user/_search?q=name:李四#等价于上面GET chen/user/_search{  "query": {    "match": {      "name": "李四"    }  }}

4.针对doc操作(查)

查询1(示例):

#_source结果过滤(指定需要字段结果集)#sort排序#from-size分页(类似limit )#注意:这个查询是不可以些多个字段的(我试过了)GET chen/user/_search{  "query": {    "match": {      "name": "李四"    }  },  "_source": ["name","age"],   "sort": [    {      "age": {        "order": "asc"      }    }  ],  "from":0,  "size":1}#多条件精确查询#以下都是bool的二级属性#must:必须#should,满足任意条件#must_not,表示不满足GET chen/user/_search{  "query": {    "bool": {      "must": [        {"match": {          "name": "李四"        }},        {"match": {          "age": 11        }}      ]    }  }}#过滤.注意filter是bool(多条件)的二级属性GET chen/user/_search{  "query": {    "bool": {      "must": [        {"match": {          "name": "李四"        }}      ],      "filter": {        "range": {          "age": {            "gte": 10,            "lte": 20          }        }      }    }  }}#分词器依然有效#多个条件空格隔开就行,只要满足其中一个,就会被逮到GET chen/user/_search{  "query": {    "match": {      "tags": "男 技术"    }  }}#精确查询,结果只能为1,多条直接不显示GET chen/user/_search{  "query": {    "term": {      "name": "李四"    }  }}

查询2(示例):

#新建索引PUT test4{  "mappings": {    "properties": {      "name":{        "type": "text"      },      "desc":{        "type": "keyword"      }    }  }}#插入数据PUT test4/_doc/1{  "name":"张三name",  "desc":"张三desc"}PUT test4/_doc/2{  "name":"张三name2",  "desc":"张三desc2"}#分词器查询(并不是查询索引里的数据,而是将text的内容用分词器拆分的结果)GET _analyze{  "analyzer": "keyword",  "text": ["张三name"]}GET _analyze{  "analyzer": "standard",  "text": "张三name"}GET test4/_search{  "query": {    "term": {      "name": "张"    }  }}#==keyword不会被分词器解析==GET test4/_search{  "query": {    "term": {      "desc": "张三desc"    }  }}

查询3(示例):

PUT test4/_doc/3{  "t1":"22",  "t2":"2020-4-6"}PUT test4/_doc/4{  "t1":"33",  "t2":"2020-4-7"}#精确查询多个值GET test4/_search{  "query": {    "bool": {      "should": [        {          "term": {            "t1": "22"          }        },        {          "term": {            "t1": "33"          }        }      ]    }  }}#highlight:高亮#pre_tags,post_tags:自定义高亮条件,前缀后缀GET chen/user/_search{  "query": {    "match": {      "name": "李四"    }  },  "highlight": {    "pre_tags": "<p class='key' style='color:red'",     "post_tags": "</p>",     "fields": {      "name":{}    }  }}

5.java-api

索引操作:

public class ES_Index {    private static final String HOST_NAME = "localhost";    private static final Integer PORT = 9200;    private static RestHighLevelClient client;    //创建ES客户端    static {        RestClientBuilder restClientBuilder = RestClient.builder(new HttpHost(HOST_NAME, PORT));        client = new RestHighLevelClient(restClientBuilder);    }    //关闭ES客户端    public void close() {        if (null != client) {            try {                client.close();            } catch (IOException e) {                e.printStackTrace();            }        }    }    //创建索引    public void addIndex() throws IOException {        //创建索引        CreateIndexRequest request = new CreateIndexRequest("chen");        CreateIndexResponse response = client.indices().create(request, RequestOptions.DEFAULT);        //响应状态        System.out.println("索引创建操作: " + response.isAcknowledged());    }    //查询索引    public void selectIndex() throws IOException {        GetIndexRequest request = new GetIndexRequest("chen");        GetIndexResponse response = client.indices().get(request, RequestOptions.DEFAULT);        System.out.println("索引查询操作: " +response.getAliases());        System.out.println("索引查询操作: " +response.getMappings());        System.out.println("索引查询操作: " +response.getSettings());    }    //删除索引    public void deleteIndex() throws IOException {        DeleteIndexRequest request = new DeleteIndexRequest("chen");        AcknowledgedResponse response = client.indices().delete(request, RequestOptions.DEFAULT);        System.out.println("索引删除操作: "+response.isAcknowledged());    }    public static void main(String[] args) throws IOException {        ES_Index index=new ES_Index();        //index.addIndex();        //index.selectIndex();        index.deleteIndex();        index.close();    }}

文档操作:

public class ES_Doc {    private static final String HOST_NAME = "localhost";    private static final Integer PORT = 9200;    private static RestHighLevelClient client;    //创建ES客户端    static {        RestClientBuilder restClientBuilder = RestClient.builder(new HttpHost(HOST_NAME, PORT));        client = new RestHighLevelClient(restClientBuilder);    }    //关闭ES客户端    public void close() {        if (null != client) {            try {                client.close();            } catch (IOException e) {                e.printStackTrace();            }        }    }    //插入数据    public void addDoc() throws IOException {        IndexRequest request = new IndexRequest();        User user = new User("张三", "男", 18);        //向es插入数据,必须将数据转换为json格式        String userJson = new ObjectMapper().writeValueAsString(user);        request.index("user").id("1001").source(userJson, XContentType.JSON);        IndexResponse response = client.index(request, RequestOptions.DEFAULT);        System.out.println("文档创建操作: " + response.getResult());    }    //修改数据(局部修改)    public void updateDoc() throws IOException {        UpdateRequest request = new UpdateRequest();        request.index("user").id("1001").doc(XContentType.JSON, "sex", "女");        UpdateResponse response = client.update(request, RequestOptions.DEFAULT);        System.out.println("文档修改操作: " + response.getResult());    }    //获取数据    public void getDoc() throws IOException {        GetRequest request = new GetRequest();        request.index("user").id("1001");        GetResponse response = client.get(request, RequestOptions.DEFAULT);        User user = new ObjectMapper().readValue(response.getSourceAsString(), User.class);        System.out.println("文档获取操作: " + user);    }    //删除数据    public void deleteDoc() throws IOException {        DeleteRequest request = new DeleteRequest();        request.index("user").id("1001");        DeleteResponse response = client.delete(request, RequestOptions.DEFAULT);        System.out.println("文档删除操作: " + response.getResult());    }    //批量插入数据    public void addBatch() throws IOException {        BulkRequest request = new BulkRequest();        request.add(new IndexRequest().index("user").id("1001").source(XContentType.JSON, "name", "张三", "sex", "男", "age", 10));        request.add(new IndexRequest().index("user").id("1002").source(XContentType.JSON, "name", "李四", "sex", "男", "age", 20));        request.add(new IndexRequest().index("user").id("1003").source(XContentType.JSON, "name", "王五", "sex", "女", "age", 30));        request.add(new IndexRequest().index("user").id("1004").source(XContentType.JSON, "name", "赵六", "sex", "男", "age", 40));        request.add(new IndexRequest().index("user").id("1005").source(XContentType.JSON, "name", "孙七", "sex", "女", "age", 50));        BulkResponse response = client.bulk(request, RequestOptions.DEFAULT);        System.out.println("文档批量新增操作: " + response.getTook());        System.out.println("文档批量新增操作: " + !response.hasFailures());//是否失败    }    //批量删除数据    public void deleteBatch() throws IOException {        BulkRequest request = new BulkRequest();        request.add(new DeleteRequest().index("user").id("1001"));        request.add(new DeleteRequest().index("user").id("1002"));        request.add(new DeleteRequest().index("user").id("1003"));        request.add(new DeleteRequest().index("user").id("1004"));        request.add(new DeleteRequest().index("user").id("1005"));        BulkResponse response = client.bulk(request, RequestOptions.DEFAULT);        System.out.println("文档批量删除操作: " + response.getTook());        System.out.println("文档批量删除操作: " + !response.hasFailures());//是否失败    }    //查询(重点)    public void searchDoc() throws IOException {        SearchRequest request = new SearchRequest();        request.indices("user");        //1.查询索引中的全部数据        //request.source(new SearchSourceBuilder().query(QueryBuilders.matchAllQuery()));        //2.查询年龄为30的数据        //request.source(new SearchSourceBuilder().query(QueryBuilders.termQuery("age", 30)));        //3.分页查询,当前第0页,每页两条        //request.source(new SearchSourceBuilder().query(QueryBuilders.matchAllQuery()).from(0).size(2));        //4.排序,倒序        //request.source(new SearchSourceBuilder().query(QueryBuilders.matchAllQuery()).sort("age", SortOrder.DESC));        //5.过滤字段(排除和包含,也可以是数组)        //request.source(new SearchSourceBuilder().fetchSource("name", null));        //6.组合查询        //BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();        //6.1 must相当于and        //boolQueryBuilder.must(QueryBuilders.matchQuery("age", 30));        //boolQueryBuilder.must(QueryBuilders.matchQuery("sex", "女"));        //6.2 should相当于or        //boolQueryBuilder.should(QueryBuilders.matchQuery("age", 30));        //boolQueryBuilder.should(QueryBuilders.matchQuery("sex", "女"));        //request.source(new SearchSourceBuilder().query(boolQueryBuilder));        //7.范围查询        //request.source(new SearchSourceBuilder().query(QueryBuilders.rangeQuery("age").gte(30).lte(40)));        //8.模糊查询Fuzziness.ONE即只差1个字符        //request.source(new SearchSourceBuilder().query(QueryBuilders.fuzzyQuery("name", "王五").fuzziness(Fuzziness.ONE)));        //9.高亮显示        //SearchSourceBuilder builder = new SearchSourceBuilder().query(QueryBuilders.matchPhraseQuery("name", "张三"));        //builder.highlighter(new HighlightBuilder().preTags("<font color='red'>").postTags("</font>").field("name"));        //request.source(builder);        //10.聚合查询        //SearchSourceBuilder builder = new SearchSourceBuilder();        //MaxAggregationBuilder aggregationBuilder = AggregationBuilders.max("maxAge").field("age");        //builder.aggregation(aggregationBuilder);        //request.source(builder);        //11.分组查询        SearchSourceBuilder builder = new SearchSourceBuilder();        TermsAggregationBuilder aggregationBuilder = AggregationBuilders.terms("ageGroup").field("age");        builder.aggregation(aggregationBuilder);        request.source(builder);        SearchResponse response = client.search(request, RequestOptions.DEFAULT);        SearchHits hits = response.getHits();        System.out.println("--条数: " + hits.getTotalHits());        System.out.println("--用时: " + response.getTook());        hits.forEach((item)->{            System.out.println("--数据: " + item.getSourceAsString());        });    }    public static void main(String[] args) throws IOException {        ES_Doc doc = new ES_Doc();        //doc.addDoc();        //doc.updateDoc();        //doc.getDoc();        //doc.deleteDoc();        //doc.addBatch();        //doc.deleteBatch();        doc.searchDoc();        doc.close();    }}

6.spring-data-elasticsearch

实体类: 关键在于@Document和@Field注解
shards 代表分片
replicas 代表副本

@Data@NoArgsConstructor@AllArgsConstructor@Document(indexName = "product", shards = 3, replicas = 1)public class Product { @Id private Long id;//商品唯一标识 @Field(type = FieldType.Text) private String title;//商品名称 @Field(type = FieldType.Keyword) private String category;//分类名称 @Field(type = FieldType.Double) private Double price;//商品价格 @Field(type = FieldType.Keyword,index = false) private String images;//图片地址}

dao层: 这样就已经可以了,类似mybatis-plus的BaseMapper,封装好了一些操作

@Repositorypublic interface ProductDao extends ElasticsearchRepository<Product,Long> {}

yaml :不用怎么配置,默认就去找localhost:9200

测试 :不知道为啥dao的很多方法都过时了,看源码注释让回去用elasticsearchRestTemplate,感觉更繁琐

@SpringBootTestclass ElasticsearchApplicationTests {    @Autowired    ElasticsearchRestTemplate elasticsearchRestTemplate;    @Autowired    ProductDao productDao;    @Test    void createIndex() {        //创建索引,系统初始化会自动创建索引        System.out.println("创建索引");    }    @Test    void deleteIndex() {        //创建索引,系统初始化会自动创建索引        boolean flg = elasticsearchRestTemplate.deleteIndex(Product.class);        System.out.println("删除索引 = " + flg);    }    //新增数据    @Test    void addDoc() {        Product product = new Product();        product.setId(1001L);        product.setTitle("华为手机");        product.setCategory("手机");        product.setPrice(2999.0);        product.setImages("www.huawei.com");        productDao.save(product);    }    //修改    @Test    void updateDoc() {        Product product = new Product();        product.setId(1001L);        product.setTitle("小米手机");        product.setCategory("手机");        product.setPrice(4999.0);        product.setImages("www.xiaomi.com");        productDao.save(product);    }    //根据 id 查询    @Test    void findById() {        Product product = productDao.findById(1001L).get();        System.out.println(product);    }    //查询所有    @Test    void findAll() {        Iterable<Product> products = productDao.findAll();        for (Product product : products) {            System.out.println(product);        }    }    //删除    @Test    public void delete() {        productDao.deleteById(1001L);    }    //批量新增    @Test    public void saveAll() {        List<Product> productList = new ArrayList<>();        for (int i = 0; i < 10; i++) {            Product product = new Product();            product.setId((long) i);            product.setTitle("[" + i + "]小米手机");            product.setCategory("手机");            product.setPrice(1999.0 + i);            product.setImages("http://www.atguigu/xm.jpg");            productList.add(product);        }        productDao.saveAll(productList);    }    //分页查询    @Test    void findByPageable() {        Sort orders = Sort.by(Sort.Direction.DESC, "id");        Pageable pageable = PageRequest.of(0, 5, orders);        Page<Product> products = productDao.findAll(pageable);        products.forEach(System.out::println);    }        @Test    void termQuery() {        TermQueryBuilder termQueryBuilder = QueryBuilders.termQuery("category", "手机");        Iterable<Product> products = productDao.search(termQueryBuilder);        products.forEach(System.out::println);    }        @Test    void termQueryByPage() {        PageRequest pageRequest = PageRequest.of(0, 5);        TermQueryBuilder termQueryBuilder = QueryBuilders.termQuery("category", "手机");        Iterable<Product> products = productDao.search(termQueryBuilder, pageRequest);        products.forEach(System.out::println);    }}

到此,关于“elasticSearch-api的具体操作流程是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

elasticSearch-api的具体操作流程是什么

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

elasticSearch-api的具体操作流程是什么

这篇文章主要介绍“elasticSearch-api的具体操作流程是什么”,在日常操作中,相信很多人在elasticSearch-api的具体操作流程是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”ela
2023-06-20

php操作ElasticSearch搜索引擎流程是什么

本篇内容主要讲解“php操作ElasticSearch搜索引擎流程是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php操作ElasticSearch搜索引擎流程是什么”吧!一、安装通过co
2023-06-25

ERP系统的具体操作步骤是什么呢

本篇文章为大家展示了ERP系统的具体操作步骤是什么呢,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。  信息时代,对于企业来说,实现统筹化管理,提升办公效率,这就是管理的王道。那么,如何快速实现这一目
2023-06-05

电脑截图具体操作方法是什么

今天小编给大家分享一下电脑截图具体操作方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。电脑截图具体操作方法:方法一:
2023-07-01

Python web开发框架的具体操作步骤是什么

这篇文章给大家介绍Python web开发框架的具体操作步骤是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。在windows 或是别的操作系统里,我们所使用的manager.py shell 来进行django交互
2023-06-17

VB.NET类添加方法的具体操作技巧是什么

今天就跟大家聊聊有关VB.NET类添加方法的具体操作技巧是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。VB.NET是一门面向对象的编程语言。要想熟练掌握这一语言的应用,需要我们
2023-06-17

SSL握手具体流程是怎么样的

这篇文章给大家分享的是有关SSL握手具体流程是怎么样的的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。SSL握手有三个目的:客户端与服务器需要就一组用于保护数据的算法达成一致、它们需要确立一组由那些算法所使用的加密
2023-06-27

C语言文件的操作流程是什么

这篇文章主要介绍“C语言文件的操作流程是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C语言文件的操作流程是什么”文章能帮助大家解决问题。为什么使用文件前面写的通讯录,增加人数退出程序后,数据就
2023-06-29

webpack转vite的操作流程与问题是什么

今天小编给大家分享一下webpack转vite的操作流程与问题是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、全局安
2023-07-05

流媒体服务器的作用是什么

流媒体服务器的作用:1、流媒体服务器可以实现数字内容的编解码、传输和存储。2、流媒体服务器具备一定的保护能力,保证数字内容在传输过程不易被篡改。3、流媒体服务器可以提供多种格式的视频流,满足不同设备的需求。4、流媒体服务器可用于直播、点播等
2023-03-07

mvc的工作流程是什么

MVC(Model-View-Controller)是一种软件设计模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。MVC的工作流程如下:用户与视图进行交互,例如通过界面操作或输入数据
2023-10-26

springmvc的工作流程是什么

Spring MVC的工作流程如下:1. 客户端发送HTTP请求到DispatcherServlet。2. DispatcherServlet是前端控制器,它接收到请求后,根据配置文件找到对应的处理器映射器(HandlerMapping)。
2023-08-18

Git的工作流程是什么

本文小编为大家详细介绍“Git的工作流程是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“Git的工作流程是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。Git 工作流程一般工作流程如下:克隆 Git 资
2023-06-17

Djabgo的工作流程是什么

Django的工作流程如下:1. 客户端发送HTTP请求到Django应用的服务器。2. 服务器接收请求并根据URL映射找到相应的视图函数。3. 视图函数处理请求并返回一个HTTP响应。4. 服务器将响应发送回客户端。在这个过程中,Djan
2023-10-19

springboot的工作流程是什么

Spring Boot 的工作流程如下:创建 Spring Boot 项目:首先需要使用 Spring Initializr 创建一个 Spring Boot 项目。可以选择所需的依赖和项目配置,然后生成一个基本的 Spring Boot
springboot的工作流程是什么
2024-03-14

老域名购买有什么比较好的平台?具体流程是什么呢

老域名购买有什么比较好的平台?具体流程是什么呢?老域名(即已经在过去被注册过的域名)是一种备受追捧的资源。它们通常拥有更高的域名权重和更多的历史流量,可以为您的在线业务带来许多好处。如果您有意购买老域名,下面是一些购买平台选择的注意事项和购买流程的详细介绍。
老域名购买有什么比较好的平台?具体流程是什么呢
2024-01-24

云服务器ecs用户操作流程是什么

云服务器ECS用户操作流程如下:确认云服务器ECS账户的密码,可以使用登录名、邮箱、用户名或者手机号码等任一有效的信息注册云服务器ECS账户,确保账户信息安全。登录云服务器ECS账户,进入云服务器ECS管理界面,可以使用账户创建快捷键,快速创建云服务器ECS用户账户。可以根据自己需要进行创建,创建账户时需要输入账户名称、密码等基本信息。设置云服务器ECS账户的登录名、密码、个人管理等基本
2023-10-26

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录