From f47d658ac66575ab0d6c5bf516cefff7f43833fc Mon Sep 17 00:00:00 2001
From: peng <peng.com>
Date: 星期三, 06 八月 2025 09:40:51 +0800
Subject: [PATCH] 调整商品可以进行排序

---
 framework/src/main/java/cn/lili/modules/search/serviceimpl/EsGoodsSearchServiceImpl.java |   20 ++++++++++++--------
 1 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/framework/src/main/java/cn/lili/modules/search/serviceimpl/EsGoodsSearchServiceImpl.java b/framework/src/main/java/cn/lili/modules/search/serviceimpl/EsGoodsSearchServiceImpl.java
index 0a53f77..b0a4a72 100644
--- a/framework/src/main/java/cn/lili/modules/search/serviceimpl/EsGoodsSearchServiceImpl.java
+++ b/framework/src/main/java/cn/lili/modules/search/serviceimpl/EsGoodsSearchServiceImpl.java
@@ -103,6 +103,7 @@
         NativeSearchQuery searchQuery = searchQueryBuilder.build();
         searchQuery.setTrackTotalHits(true);
         log.info("searchGoods DSL:{}", searchQuery.getQuery().toString());
+        log.info("searchGoods sort:{}", searchQuery.getElasticsearchSorts().toString());
         SearchHits<EsGoodsIndex> search = restTemplate.search(searchQuery, EsGoodsIndex.class);
         return SearchHitSupport.searchPageFor(search, searchQuery.getPageable());
     }
@@ -455,12 +456,15 @@
                 filterFunctionBuilders.toArray(builders);
                 FunctionScoreQueryBuilder functionScoreQueryBuilder = QueryBuilders.functionScoreQuery(QueryBuilders.matchAllQuery(), builders)
                         .scoreMode(FunctionScoreQuery.ScoreMode.SUM);
-                if (CharSequenceUtil.isNotEmpty(searchDTO.getPromotionsId()) && CharSequenceUtil.isNotEmpty(searchDTO.getPromotionType())) {
-                    functionScoreQueryBuilder.setMinScore(0);
-                }else {
-                    functionScoreQueryBuilder.setMinScore(2);
-
-                }
+                functionScoreQueryBuilder.setMinScore(0);
+//                if (CharSequenceUtil.isNotEmpty(searchDTO.getPromotionsId()) && CharSequenceUtil.isNotEmpty(searchDTO.getPromotionType())) {
+//                    functionScoreQueryBuilder.setMinScore(0);
+//                }else if (cn.lili.common.utils.StringUtils.isNotBlank(searchDTO.getCategoryId())){
+//                    functionScoreQueryBuilder.setMinScore(0);
+//                }
+//                else {
+//                    functionScoreQueryBuilder.setMinScore(2);
+//                }
                 //鑱氬悎鎼滅储鍒欏皢缁撴灉鏀惧叆杩囨护鏉′欢
                 filterBuilder.must(functionScoreQueryBuilder);
             } else {
@@ -473,7 +477,7 @@
 
 
             if (pageVo != null && CharSequenceUtil.isNotEmpty(pageVo.getOrder()) && CharSequenceUtil.isNotEmpty(pageVo.getSort())) {
-                nativeSearchQueryBuilder.withSort(SortBuilders.fieldSort(pageVo.getSort()).order(SortOrder.valueOf(pageVo.getOrder().toUpperCase())));
+                nativeSearchQueryBuilder.withSort(SortBuilders.fieldSort(pageVo.getSort()).order(SortOrder.valueOf(pageVo.getOrder().toUpperCase())).missing("_last"));
             } else {
                 nativeSearchQueryBuilder.withSort(SortBuilders.scoreSort().order(SortOrder.DESC));
             }
@@ -669,7 +673,7 @@
         filterFunctionBuilders.toArray(builders);
         FunctionScoreQueryBuilder functionScoreQueryBuilder = QueryBuilders.functionScoreQuery(goodsNameMatchQuery, builders)
                 .scoreMode(FunctionScoreQuery.ScoreMode.SUM)
-                .setMinScore(2);
+                .setMinScore(0);
         //鑱氬悎鎼滅储鍒欏皢缁撴灉鏀惧叆杩囨护鏉′欢
         filterBuilder.must(functionScoreQueryBuilder);
         filterBuilder.should(QueryBuilders.boolQuery().should(QueryBuilders.matchPhraseQuery("goodsName", keyword).boost(10)));

--
Gitblit v1.8.0