IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 生产项目中使用的Elasticsearch相关API介绍 -> 正文阅读

[大数据]生产项目中使用的Elasticsearch相关API介绍

搜索

ElasticsearchTemplate

  • 使用ElasticsearchTemplate,但是是自己定义的bean,ElasticsearchConfiguration
  • maven依赖使用的jar,需要与部署的elasticsearch版本一致
  • 主要使用SearchRequestBuilder构建请求,提交
  • setFetchSource,是否获取信息内容,false不获取,查询数量时可以使用。true,获取全部字段。也可以指定获取哪些字段,或者过滤掉哪些字段
  • setSize 获取的数量,不建议超过500
  • highlighter,设置高亮字段
  • addSort,增加排序,可以增加多个,评分排序为SortBuilders.scoreSort(),没有其他排序时,默认相关度评分倒序
  • searchAfter,在某个查询评分条件后,查询结果,用于深分页查询
  • setSearchType,可以指定搜索方式,如DFS_QUERY_THEN_FETCH
  • setPreference,可以指定优先搜索主分片
  • 使用SearchResponse接收请求结果,获取结果可以使用searchResponse.getHits().getTotalHits()

搜索方法

查询全部 matchAllQuery

  • MatchAllQueryBuilder matchAllQuery(),通过QueryBuilders.matchAllQuery()创建
  • 不设置查询条件,查询全部时使用
  • 类似数据库查询时的1=1

布尔查询 boolQuery

  • BoolQueryBuilder创建,BoolQueryBuilder boolQuery = QueryBuilders.boolQuery();
  • 可以包装其他查询,作为一个整体
  • 可以看做,起到一个括号的作用,把几个请求包在一起

精确匹配 termQuery

  • termQuery,TermQueryBuilder termQuery(String name, Object value),使用QueryBuilders.termQuery创建,完全匹配
  • termsQuery,TermsQueryBuilder termsQuery(String name, Object... values),匹配多个值,value也可以是其他类型或者集合,但要类型一致,和查询key的类型匹配,通过QueryBuilders.termsQuery创建,完全匹配
  • value不会被分词,直接匹配,完全命中,则会返回

短语匹配 matchPhraseQuery

  • matchPhraseQuery,MatchPhraseQueryBuilder matchPhraseQuery(String name, Object text),使用QueryBuilders.matchPhraseQuery创建,短语匹配
  • matchPhrasePrefixQuery,MatchPhrasePrefixQueryBuilder matchPhrasePrefixQuery(String name, Object text),使用QueryBuilders.matchPhrasePrefixQuery创建,前缀匹配
  • 类似于数据库的like查询,但也不一样,value会被分词

无评分查询 constantScoreQuery

  • 作为查询条件,但不参与评分
  • 例如根据关键词查询时,关键词的匹配相关度才是我们需要的,而站点id、栏目类型等,虽然作为查询条件,但并不需要它参与评分
  • ConstantScoreQueryBuilder constantScoreQuery(QueryBuilder queryBuilder),可以把其他不需要参与评分的请求条件,包在里面

普通查询 matchQuery

  • 单字段查询,matchQuery,``
  • 多字段查询 multiMatchQuery,一个查询条件value,需要匹配多个字段时使用。 MultiMatchQueryBuilder multiMatchQuery(Object text, String... fieldNames),fieldNames为字段列表,text会被分词
  • 可以指定typeBEST_FIELDS模糊查询,PHRASE短语匹配,PHRASE_PREFIX前缀匹配

是否有值 existsQuery

  • ExistsQueryBuilder existsQuery(String name),通过QueryBuilders.existsQuery创建
  • 类似于数据库的 is not null

范围查询 range

  • new RangeQueryBuilder(field).from(from).includeLower(includeLower).to(to).includeUpper(includeUpper),可用于范围查询,例如日期、数值等
  • 可包含边界值,也可以不包含

索引Bboss

  • 暂时只使用了bboss的http封装,借助它使用9200提交
  • 其实自己找一个http工具类也可以,只不过bboss封装了很多方法

索引库

  • index是否存在 existIndice
  • type是否存在 existIndiceType
  • 获取别名 _aliases
  • 删除别名 removeAlias
  • 添加别名 addAlias
  • 创建索引库 createIndiceMapping
  • 新建/修改type的mapping updateIndiceMapping
  • 删除索引库 dropIndice

增删改查

  • 新增/更新单个文档 addDocumentWithId addDocument
  • 删除文档 deleteDocument
  • 获取单个文档 getDocument
  • 根据查询删除 _delete_by_query

bulk

  • 批量提交 _bulk

分词

  • _analyze
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-04-15 00:05:37  更:2022-04-15 00:09:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 3:08:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码