当前位置: 首页 > news >正文

机关网站建设和运行情况汇报wordpress 调用略缩图

机关网站建设和运行情况汇报,wordpress 调用略缩图,什么网站专做二手名表,黄岛网站建设价格目录 一、简介 二、配置 三、映射 四、 常用方法 五、操作#xff08;重点#xff09; 1、对索引表的操作 2、对文档的操作#xff08;重点#xff09; #xff08;1#xff09;、添加文档 #xff08;2#xff09;、删除文档 #xff08;3#xff09;、查询…目录 一、简介 二、配置 三、映射 四、 常用方法 五、操作重点 1、对索引表的操作 2、对文档的操作重点 1、添加文档 2、删除文档 3、查询文档重点 查询全部文档 两种方式 matchQuery根据关键字拆分进行全局搜索 matchPhraseQuery短语搜索--完整搜索 rangeQuery范围搜索 termQuery精确搜索 boolQuery()复合查询 withPageable分页查询 withSorts对结果进行排序 高亮查询 一、简介 springData 操作ES类似于Mybatis-plus操作Mysql,都是简单易用 本博客基于springboot2最新方式操作 Elasticsearch7.12.1 二、配置 采用gradle构建 maven构建一直失败 implementation org.springframework.boot:spring-boot-starter-data-elasticsearch 最新的yml配置 spring:elasticsearch:uris: http://ip:9200 三、映射 映射pojo Data NoArgsConstructor AllArgsConstructor Document(indexName people_index) // 索引名字 public class People {Id private String id; // Keyword类型不被分词索引 类型 分词器Field(type FieldType.Text,analyzer ik_max_word)private String name; Field(type FieldType.Text,analyzer ik_max_word)private String address; // index false 不建立分词索引 Field(type FieldType.Long,index true)private int age; }根据pojo创建索引 SpringBootTestclass EsDemo1ApplicationTests {// 直接注入使用Autowired ElasticsearchRestTemplate elasticsearchTemplate; Testvoid esTest(){// 创建索引 IndexOperations indexOperations elasticsearchTemplate.indexOps(People.class); if(!indexOperations.exists()) { // 当前索引不存在boolean result1 indexOperations.create();// 只是创建索引 。mappings没有映射boolean result2 indexOperations.putMapping();// 映射属性 System.out.println(创建结果 ,映射结果 result2);}else {System.out.println(文档已存在);} } 验证索引表是否创建成功 GET people_index/_mapping 四、 常用方法 ElasticsearchRestTemplate 常用方法 1、save 保存或者更新文档 elasticsearchRestTemplate.save(object);2、index: 保存或更新文档数据到指定索引和类型中 IndexQuery indexQuery new IndexQueryBuilder().withObject(object).build(); elasticsearchRestTemplate.index(indexQuery, IndexCoordinates.of(indexName));3、get: 根据文档 ID 获取文档数据。 elasticsearchRestTemplate.get(id, DocumentClass.class);4、update: 更新指定文档的数据。 UpdateQuery updateQuery new UpdateQueryBuilder().withId(id).withObject(updatedObject).build(); elasticsearchRestTemplate.update(updateQuery, IndexCoordinates.of(indexName));5、delete: 删除指定文档。 elasticsearchRestTemplate.delete(id, IndexCoordinates.of(indexName));6、exists: 判断指定文档是否存在。 elasticsearchRestTemplate.exists(id, IndexCoordinates.of(indexName));7、search: 执行搜索操作使用 Query 条件进行搜索。 NativeSearchQuery searchQuery new NativeSearchQueryBuilder().withQuery(QueryBuilders.matchQuery(field, value)).build(); ListDocumentClass resultList elasticsearchRestTemplate.search(searchQuery, DocumentClass.class, IndexCoordinates.of(indexName));8、count: 计算满足指定条件的文档数量。 NativeSearchQuery countQuery new NativeSearchQueryBuilder().withQuery(QueryBuilders.matchQuery(field, value)).build(); long count elasticsearchRestTemplate.count(countQuery, IndexCoordinates.of(indexName)); IndexOperations 常用方法 1、create()创建索引。如果索引已存在则会抛出异常。2、delete()删除索引。如果索引不存在则会抛出异常。3、exists()检查索引是否存在。4、putMapping()为索引设置映射。MappingContext 是 Spring Data Elasticsearch 提供的用于获取实体类映射信息的接口。5、refresh()刷新索引使之可搜索最新添加的文档。在索引文档后需要调用 refresh() 方法才能保证文档可以被搜索到。6、getIndexSettings()获取索引的配置信息。7、getAliases()获取索引的别名信息。8、addAlias(AliasQuery aliasQuery)添加别名。9、removeAlias(AliasQuery aliasQuery)移除别名。10、getSettings()获取索引的详细配置信息。11、updateSettings(UpdateSettingsRequest request)更新索引的配置信息。 其实真正常用的也就是 保存/修改文档 elasticsearchRestTemplate.save() 查询文档 elasticsearchRestTemplate.search()   以及NativeSearchQuery 搜索对象 五、操作重点 1、对索引表的操作 对索引表的操作常用的也就是创建/修改、删除 创建就是上面提到的映射 删除索引表 Test void esTest2(){IndexOperations indexOperations elasticsearchTemplate.indexOps(People.class); boolean delete indexOperations.delete(); // 删除索引 System.out.println(删除索引delete);} 2、对文档的操作重点 对于ES来说索引就是表文档就是数据 1、添加文档 添加一条 // 添加文档 Test void esTest3(){People peoplenew People(); people.setId(1232); people.setName(张三); people.setAge(32); // 保存文档--save 根据文档id修改或者创建文档 People save elasticsearchTemplate.save(people); } 批量添加 // 批量添加 Test void esTest4(){ListPeople list Arrays.asList(new People(1,李四,长沙,23), new People(2,李四,长沙,23), new People(3,李四,长沙,23), new People(4,李四,长沙,23)); IterablePeople save1 elasticsearchTemplate.save(list); System.out.println(数据save1);} 检查是否添加完成 GET people_index/_search 2、删除文档 // 删除操作 Test void esTest5(){// id // 对应索引库 String delete elasticsearchTemplate.delete(1, People.class); } 除了根据id删除文档外还可以根据条件删除文档请类比下面的查询操作 3、查询文档重点 matchQuery按关键字查询关键字也会被拆分示例 Test void query(){// 创建查询 字段--索引 NativeSearchQuery searchQuerynew NativeSearchQueryBuilder().withQuery(QueryBuilders.matchQuery(address, 太阳)).build(); // // 查询 SearchHitsPeople search1 elasticsearchTemplate.search(searchQuery, People.class); search1.forEach(System.out::println); } 查询全部文档 两种方式 // 第一种 不加查询条件 Test void query(){ // 查询--全部文档SearchHitsPeople search1 elasticsearchTemplate.search(new NativeSearchQueryBuilder().build(), People.class); search1.forEach(System.out::println);}// 第二种 // 查询全部 //matchAllQuery Test void query3(){// 创建查询 字段--索引 NativeSearchQuery searchQuerynew NativeSearchQueryBuilder()// 根据关键字进行全局模糊搜索 .withQuery(QueryBuilders.matchAllQuery()) .build(); // 查询 SearchHitsPeople search1 elasticsearchTemplate.search(searchQuery,People.class); search1.forEach(System.out::println);} matchQuery根据关键字拆分进行全局搜索 Test void query1(){// 创建查询 字段--索引 NativeSearchQuery searchQuerynew NativeSearchQueryBuilder()// 根据关键字进行全局模糊搜索 .withQuery(QueryBuilders.matchQuery(李四)) // 李四会被拆分成关键字进行搜索 .build(); // 查询 SearchHitsPeople search1 elasticsearchTemplate.search(searchQuery,People.class); search1.forEach(System.out::println); } matchPhraseQuery短语搜索--完整搜索 不会对关键字的拆分搜索 // 短语搜索 Test void query4(){// 创建查询 字段--索引 NativeSearchQuery searchQuerynew NativeSearchQueryBuilder()// 根据关键字进行全局模糊搜索 .withQuery(QueryBuilders.matchPhraseQuery(address,长沙市)) // “长沙市” 不会进行拆分.build(); // 查询 SearchHitsPeople search1 elasticsearchTemplate.search(searchQuery,People.class); search1.forEach(System.out::println);}// 解释下什么是短语搜索比如查询 小明爱吃葡萄普通关键字查找matchQuery这句查找关键字会被拆分成 小明,爱吃,葡萄 等查出的结果满足一个关键字即可即查出来的结果可能会出现 小明爱吃香蕉短语搜索出来的结果 就是以小明爱吃葡萄为关键字去搜索不会对关键字再进行拆分 rangeQuery范围搜索 适用于数值类型 // 范围搜索 Test void query5(){// 创建查询 字段--索引 NativeSearchQuery searchQuerynew NativeSearchQueryBuilder()// 根据关键字进行全局模糊搜索 lte gte .withQuery(QueryBuilders.rangeQuery(age).gte(10).lte(20)) .build(); // 查询 SearchHitsPeople search1 elasticsearchTemplate.search(searchQuery,People.class); search1.forEach(System.out::println); } termQuery精确搜索 注意 对于text类型且使用的ik分词的字段而言 termQuery的作用和matchPhraseQuery 类似,所以termQuery 适用于keyword类型的字段和数值类型的字段 // 精确搜索 Test void query6(){// 创建查询 字段--索引 NativeSearchQuery searchQuerynew NativeSearchQueryBuilder()// 根据关键字进行全局模糊搜索 lte gte .withQuery(QueryBuilders.termQuery(age,15)).build(); // 查询 SearchHitsPeople search1 elasticsearchTemplate.search(searchQuery,People.class); search1.forEach(System.out::println);} boolQuery()复合查询 对于优先级别问题 使用多个must 来处理 // 复合查询 Test void query7(){// 创建查询 字段--索引 NativeSearchQuery searchQuerynew NativeSearchQueryBuilder()// boolQuery 符合查询must必须 should 或者 // name李四 ||age30 // QueryBuilders.boolQuery().should(QueryBuilders.termQuery(name,李四)).should(QueryBuilders.rangeQuery(age).gte(30)) // name李四 age30 // QueryBuilders.boolQuery().must(QueryBuilders.termQuery(name,李四)).must(QueryBuilders.rangeQuery(age).gte(30)) // (name李四 || age25) age 30 使用must 处理优先级问题 .withQuery(QueryBuilders.boolQuery().must(QueryBuilders.boolQuery().should(QueryBuilders.termQuery(name,李四)).should(QueryBuilders.rangeQuery(age).gte(25))).must(QueryBuilders.rangeQuery(age).lte(30))).build(); // 查询 SearchHitsPeople search1 elasticsearchTemplate.search(searchQuery,People.class); search1.forEach(System.out::println);} withPageable分页查询 需要对查询结果进行封装 Test void query8() throws JsonProcessingException {// 创建查询 字段--索引 NativeSearchQuery searchQuerynew NativeSearchQueryBuilder() // 页码(从0开始) 每页条数 .withPageable(PageRequest.of(0,2)).build(); // 查询 SearchHitsPeople search elasticsearchTemplate.search(searchQuery, People.class); // 对查询结果进行封装--Page SearchPagePeople searchHits SearchHitSupport.searchPageFor(search, searchQuery.getPageable()); System.out.println(当前页码(从0开始)getNumber:searchHits.getNumber()); System.out.println(总页数getTotalPages :searchHits.getTotalPages()); System.out.println(每页的最大数据条数getSize: searchHits.getSize()); System.out.println(是否有下一页数据hasNext: searchHits.hasNext()); System.out.println(是否有上一页数据hasPrevious: searchHits.hasPrevious()); System.out.println(当前页数据getContent: searchHits.getContent()); String s objectMapper.writeValueAsString(searchHits); System.out.println(json:s); } withSorts对结果进行排序 Test void query8() throws JsonProcessingException {// 创建查询 字段--索引 NativeSearchQuery searchQuerynew NativeSearchQueryBuilder()// 查询全部 .withQuery(QueryBuilders.matchAllQuery())// 根据 age 字段进行从大到小排序 // 字段 排序规则.withSorts(SortBuilders.fieldSort(age).order(SortOrder.DESC)).build(); // 查询 SearchHitsPeople search elasticsearchTemplate.search(searchQuery, People.class); search.forEach(System.out::println);} 高亮查询 把查询结果的关键字进行高亮处理 // 高亮查询 Test void query9() throws JsonProcessingException {// 创建查询 字段--索引 // 创建高亮设置 HighlightBuilder highlightBuildernew HighlightBuilder(); // 设置高亮的结果字段 结果前面添加内容 后续添加内容 highlightBuilder.field(address).preTags(span style\color:red\).postTags(/span); highlightBuilder.field(name).preTags(span style\color:red\).postTags(/span); NativeSearchQuery searchQuerynew NativeSearchQueryBuilder().withQuery(QueryBuilders.matchQuery(address,长沙))// 处理高亮 .withHighlightBuilder(highlightBuilder).build(); // 查询 SearchHitsPeople search elasticsearchTemplate.search(searchQuery, People.class); // 查询结果为SearchHits --SearchHit为封装的单个数据高亮数据在highlightFields 中 ListSearchHitPeople searchHits search.getSearchHits(); searchHits.forEach(System.out::println); }
http://www.zqtcl.cn/news/10856/

相关文章:

  • 山西建设网站的公司公司网站上线
  • 网站备案进度网站运营需要什么条件
  • 乐清小程序关键词优化方法
  • 微信网站建设报价工商注册网上办事大厅
  • 教育机构网站是网站怎么优化 优帮云
  • 免费打开网站网站开发 承接
  • h5企业模板网站模板商城网站开发培训学校
  • 做暧暧前戏视频网站网站框架怎么做
  • 呼伦贝尔网站制作大良网站制作公司
  • 国家重点建设裤网站vs2008如何新建网站
  • 什么时候能用ipv6做网站正能量免费软件
  • 北京南站最新消息深圳企业网站制作平台
  • 网站代码建设 实例中国建设银行官网站积分抽奖
  • 安徽商城网站建设个人网站不能做淘宝客
  • 搭建一个公司网站网站后台备份丢失
  • 源码网站免费网站建设开发软件有哪些
  • 网站制作公司咨询做酒店需要怎么上网站
  • 企业管理培训课程百度云seo的方法有哪些
  • 北京网站建设外包公司软件销售具体怎么做的
  • 网站首页phpcms怎么添加上海装修公司招聘施工队长
  • 专业建站lhznkj茶叶网站模板下载
  • 文友胜做的网站网站建站要交税吗
  • 违法网站开发phpcms 怎么做网站
  • 建网站平台要多少钱信息型网站
  • 清除网站黑链腾冲市住房和城乡建设局网站
  • 网站建设费用差异大申请域名步骤
  • 做音乐网站的目的和意义广东省农业农村厅江毅
  • 泉州快速建站模板安联建设集团股份公司网站
  • 网站建设与管理是什么工作wordpress 偷网页
  • 计算机做网站win2008r2做网站服务器