ElasticSearch

elasticsearch的核心API

搜索:
GET /xx/_search
{
query:{},
from: 0,
size: 10,
sort:{},
highlight:{},
aggs: {},
suggest:{},
_source: {}
}

  • 请求DSL构建
      1. SearchRequest#source(), 构建完整的搜索DSL的
      1. SearchRequest#source().query(QueryBuilders), QueryBuilders包含各种各样的query
        QueryBuilders#matchQuery()\termQuery()\rangeQuery()\boolQuery()\functionScoreQueury()
      1. SearchRequest#source().from(0).size(10) 分页
      1. SearchRequest#source().sort("fieldName", SortOrder.ASC) 排序
      1. SearchRequest#source().highlight(new HighlightBuilder().field("xx").requiredFieldMatch(false))高亮
      1. SearchRequest#source().aggs(AggregationBuilders.term("xx").field(""))
      1. SearchRequest#source().suggest(
        new SuggestBuilder().addSuggestion("",
        SuggestBuilders.completionSuggestion("field").size(10).prefix("s").skipDuplicates(true)))
  • 结果解析
    参考结果的JSON,从外到内,逐层解析。需要注意两个:
    • 聚合时,聚合结果要转型 Aggregation --> Terms、Stats
    • 补全时,补全结果要转型:Suggestion --> CompletionSuggestion

使用Nacos时:
- 依赖: Nacos-Discovery
- yaml文件中的nacos地址
使用Feign:
- 依赖:OpenFeign
- 启动类注解@EnableFeignClients
- 编写Feign客户端
使用Gateway:
- 依赖:gateway、Nacos-Discovery
- yaml配置:路由、nacos地址

ElasticSearch

上一篇:算法基础二:渐增型算法---序列的划分


下一篇:java -- 数组常用方法