前台搜索完成了哪些查詢?
關鍵字 :boolQueryBuilder.must(QueryBuilders.match) (去除全部空格,分詞查詢)
分類:boolQueryBuilder.filter(QueryBuilders.term) (term精確匹配)
品牌:boolQueryBuilder.filter(QueryBuilders.term) (term精確匹配,支持多品牌查詢,對品牌進行聚合分組)
規格:boolQueryBuilder.filter(QueryBuilders.term) (動態多值,使用“Object”對象類型存儲,精確匹配,對規格進行分組聚合)
價格區間 :boolQueryBuilder.filter(QueryBuilders.range) (數值類型、數值大小、最大最小值位置)
排序 :nativeSearchQueryBuilder.withSort (只有價格是兩種順序,其他都是一種)
分組聚合:nativeSearchQueryBuilder.withHighlightFields (為了獲取搜索面板數據)
高亮:nativeSearchQueryBuilder.addAggregation
分頁:nativeSearchQueryBuilder.withPageable
封裝返回的結果:
搜索面板、結果列表(高亮)、分頁、搜索條件
1)用戶在網站首頁“搜索框searchBox”輸入關鍵字,點擊“搜索”按鈕,攜帶搜索“關鍵字”跳轉到搜索頁面
2)搜索頁面接收”關鍵字“
2.1)關鍵字回顯
2.2)根據關鍵字進行“搜索”,並獲取相應結果:搜索面板數據、當前頁結果集、分頁數據
3)根據自身需要,添加搜索條件“品牌、規格(多個)、價格區間、排序”
3.1)搜索條件回顯
3.2)根據“選則的搜索條件(多個條件)”進行“搜索”,並獲取相應結果:搜索面板數據、當前頁結果集、分頁數據
1)搭建ES服務器(單機、集群)
2)創建映射,建立實體和索引庫的映射關系,使用spring-data-elasticsearch
//ES提供的接口,可以對索引庫進行CRUD操作;T建立了和索引庫映射關系的對象、ID為T對象中的主鍵類型
ElasticsearchRepository<T,ID>
//操作索引庫
ElasticSearchTemplate
3)索引庫維護(初始化數據導入全量索引、增量索引、索引同步、定時索引(全量索引、增量索引),手動索引)