Browse Source

sort by cmp_code, pr_pcmpcode, etc if final sort ends

sunyj 8 years ago
parent
commit
95ad7be3bf

+ 21 - 3
mall-search/src/main/java/com/uas/search/service/impl/SearchServiceImpl.java

@@ -894,8 +894,20 @@ public class SearchServiceImpl implements SearchService {
 			fieldsToLoad.add(SearchConstants.GOODS_GO_ID_FIELD);
 			ScoreDoc[] scoreDocs = hits.scoreDocs;
 			for (ScoreDoc scoreDoc : scoreDocs) {
-				Document document = indexSearcher.doc(scoreDoc.doc, fieldsToLoad);
-				String cmpId = document.get(SearchConstants.GOODS_CMP_ID_FIELD);
+//				Document document = indexSearcher.doc(scoreDoc.doc, fieldsToLoad);
+                Document document = indexSearcher.doc(scoreDoc.doc);
+                logger.info(document.get(SearchConstants.GOODS_GO_MINPRICERMB_FIELD)
+                        + "\t" + document.get(SearchConstants.GOODS_GO_MINPRICEUSD_FIELD)
+                        + "\t" + document.get(SearchConstants.GOODS_GO_RESERVE_FIELD)
+                        + "\t" + document.get(SearchConstants.GOODS_GO_MINDELIVERY_FIELD)
+                        + "\t" + scoreDoc.score
+                        + "\t" + document.get(SearchConstants.GOODS_CMP_CODE_FIELD)
+                        + "\t" + document.get(SearchConstants.GOODS_PR_PCMPCODE_FIELD)
+                        + "\t" + document.get(SearchConstants.GOODS_BR_NAME_EN_UNTOKENIZED_FIELD)
+                        + "\t" + document.get(SearchConstants.GOODS_BR_NAME_CN_UNTOKENIZED_FIELD)
+                        + "\t" + document.get(SearchConstants.GOODS_KI_NAME_CN_UNTOKENIZED_FIELD)
+                        + "\t" + document.get(SearchConstants.GOODS_GO_UPDATE_DATE_FIELD));
+                String cmpId = document.get(SearchConstants.GOODS_CMP_ID_FIELD);
 				cmpIds.add(StringUtils.isEmpty(cmpId) ? null : Long.valueOf(cmpId));
 				String goId = document.get(SearchConstants.GOODS_GO_ID_FIELD);
 				goIds.add(StringUtils.isEmpty(goId) ? null : Long.valueOf(goId));
@@ -1051,7 +1063,13 @@ public class SearchServiceImpl implements SearchService {
                 new SortField(SearchConstants.GOODS_BR_NAME_EN_UNTOKENIZED_FIELD, new StringFieldComparatorSource(keyword, true)),
                 new SortField(SearchConstants.GOODS_BR_NAME_CN_UNTOKENIZED_FIELD, new StringFieldComparatorSource(keyword, true)),
                 new SortField(SearchConstants.GOODS_KI_NAME_CN_UNTOKENIZED_FIELD, new StringFieldComparatorSource(keyword, true)),
-                sortField(SearchConstants.GOODS_GO_UPDATE_DATE_FIELD, Type.LONG, true, Long.MIN_VALUE)
+                sortField(SearchConstants.GOODS_GO_UPDATE_DATE_FIELD, Type.LONG, true, Long.MIN_VALUE),
+                // 如果仍然无法得到正确结果,就根据按照型号等顺序严格排列
+                new SortField(SearchConstants.GOODS_CMP_CODE_FIELD, new StringFieldComparatorSource(keyword, false)),
+                new SortField(SearchConstants.GOODS_PR_PCMPCODE_FIELD, new StringFieldComparatorSource(keyword, false)),
+                new SortField(SearchConstants.GOODS_BR_NAME_EN_UNTOKENIZED_FIELD, new StringFieldComparatorSource(keyword, false)),
+                new SortField(SearchConstants.GOODS_BR_NAME_CN_UNTOKENIZED_FIELD, new StringFieldComparatorSource(keyword, false)),
+                new SortField(SearchConstants.GOODS_KI_NAME_CN_UNTOKENIZED_FIELD, new StringFieldComparatorSource(keyword, false))
         ));
         SortField[] sortFields = new SortField[sortFieldList.size()];
         sortFieldList.toArray(sortFields);