|
@@ -89,39 +89,42 @@ public class QueryUserPersionalFactorBean { |
|
@@ -89,39 +89,42 @@ public class QueryUserPersionalFactorBean { |
89
|
|
89
|
|
90
|
//3、获取页面中存在的所有的key
|
90
|
//3、获取页面中存在的所有的key
|
91
|
Set<String> pageSortBrandKeys = new HashSet<>();
|
91
|
Set<String> pageSortBrandKeys = new HashSet<>();
|
92
|
- Set<String> filterSortBrandKeys = new HashSet<>();
|
|
|
93
|
for (SortBrand pageSortBrand : pageFactor.getSortBrandList()) {
|
92
|
for (SortBrand pageSortBrand : pageFactor.getSortBrandList()) {
|
94
|
pageSortBrandKeys.add(pageSortBrand.key());
|
93
|
pageSortBrandKeys.add(pageSortBrand.key());
|
95
|
}
|
94
|
}
|
96
|
- //4、构造实时【品类+品牌】
|
95
|
+
|
|
|
96
|
+ //4、构造临时过滤对象
|
|
|
97
|
+ Set<String> filterSortBrandKeys = new HashSet<>();
|
|
|
98
|
+
|
|
|
99
|
+ //5、构造实时【品类+品牌】
|
97
|
int recSortBrandCount = recallConfigService.querySortBrandConfigCount(pageId, SortBrandType.REC_SORT_BRAND, 12);
|
100
|
int recSortBrandCount = recallConfigService.querySortBrandConfigCount(pageId, SortBrandType.REC_SORT_BRAND, 12);
|
98
|
- List<SortBrand> realTimeSortBrandList = this.getSortBrandListWithSort(pageSortBrandKeys, filterSortBrandKeys, userFactor.getRealTimeSortBrandList(), recSortBrandCount);
|
101
|
+ List<SortBrand> realTimeSortBrandList = this.queryRealTimeSortBrandList(pageSortBrandKeys, filterSortBrandKeys, userFactor.getRealTimeSortBrandList(), recSortBrandCount);
|
99
|
//realTimeSortBrandList = Arrays.asList(new SortBrand(63,28));
|
102
|
//realTimeSortBrandList = Arrays.asList(new SortBrand(63,28));
|
100
|
for (SortBrand existSortBrand : realTimeSortBrandList) {
|
103
|
for (SortBrand existSortBrand : realTimeSortBrandList) {
|
101
|
filterSortBrandKeys.add(existSortBrand.key());
|
104
|
filterSortBrandKeys.add(existSortBrand.key());
|
102
|
}
|
105
|
}
|
103
|
- //5、构造基于RNN向量的【品牌+品牌】,去除实时的品类和品牌
|
106
|
+ //6、构造基于RNN向量的【品牌+品牌】,去除实时的品类和品牌
|
104
|
int vectorRNNSortBrandCount = recallConfigService.querySortBrandConfigCount(pageId, SortBrandType.VEC_RNN_SORT_BRAND, 0);
|
107
|
int vectorRNNSortBrandCount = recallConfigService.querySortBrandConfigCount(pageId, SortBrandType.VEC_RNN_SORT_BRAND, 0);
|
105
|
List<SortBrand> vectorRnnSortBrandList = sortBrandVectorComponent.queryVectorSortBrandList(pageFactor, filterSortBrandKeys, userFactor.getBrandVector(), userFactor.getSortBrandVector(), true, vectorRNNSortBrandCount);
|
108
|
List<SortBrand> vectorRnnSortBrandList = sortBrandVectorComponent.queryVectorSortBrandList(pageFactor, filterSortBrandKeys, userFactor.getBrandVector(), userFactor.getSortBrandVector(), true, vectorRNNSortBrandCount);
|
106
|
//vectorRnnSortBrandList = Arrays.asList(new SortBrand(59,199));
|
109
|
//vectorRnnSortBrandList = Arrays.asList(new SortBrand(59,199));
|
107
|
for (SortBrand existSortBrand : vectorRnnSortBrandList) {
|
110
|
for (SortBrand existSortBrand : vectorRnnSortBrandList) {
|
108
|
filterSortBrandKeys.add(existSortBrand.key());
|
111
|
filterSortBrandKeys.add(existSortBrand.key());
|
109
|
}
|
112
|
}
|
110
|
- //6、构造基于W2V向量的【品牌+品牌】,去除实时的品类和品牌
|
113
|
+ //7、构造基于W2V向量的【品牌+品牌】,去除实时的品类和品牌
|
111
|
int vecW2vSortBrandCount = recallConfigService.querySortBrandConfigCount(pageId, SortBrandType.VEC_W2V_SORT_BRAND, 12);
|
114
|
int vecW2vSortBrandCount = recallConfigService.querySortBrandConfigCount(pageId, SortBrandType.VEC_W2V_SORT_BRAND, 12);
|
112
|
List<SortBrand> vectorW2vSortBrandList = sortBrandVectorComponent.queryVectorSortBrandList(pageFactor, filterSortBrandKeys, userFactor.getBrandVectorW2v(), userFactor.getSortBrandVectorW2v(), false, vecW2vSortBrandCount);
|
115
|
List<SortBrand> vectorW2vSortBrandList = sortBrandVectorComponent.queryVectorSortBrandList(pageFactor, filterSortBrandKeys, userFactor.getBrandVectorW2v(), userFactor.getSortBrandVectorW2v(), false, vecW2vSortBrandCount);
|
113
|
//vectorW2vSortBrandList = Arrays.asList(new SortBrand(266,105));
|
116
|
//vectorW2vSortBrandList = Arrays.asList(new SortBrand(266,105));
|
114
|
for (SortBrand existSortBrand : vectorW2vSortBrandList) {
|
117
|
for (SortBrand existSortBrand : vectorW2vSortBrandList) {
|
115
|
filterSortBrandKeys.add(existSortBrand.key());
|
118
|
filterSortBrandKeys.add(existSortBrand.key());
|
116
|
}
|
119
|
}
|
117
|
- //7、构造基于配置的【品牌+品牌】,去除其他类型的品类和品牌
|
120
|
+ //8、构造基于配置的【品牌+品牌】,去除其他类型的品类和品牌
|
118
|
int configSortBrandCount = recallConfigService.querySortBrandConfigCount(pageId, SortBrandType.CONFIG_SORT_BRAND, 0);
|
121
|
int configSortBrandCount = recallConfigService.querySortBrandConfigCount(pageId, SortBrandType.CONFIG_SORT_BRAND, 0);
|
119
|
- List<SortBrand> configSortBrandList = recallConfigService.queryConfigSortBrandList(pageFactor, filterSortBrandKeys, configSortBrandCount);
|
|
|
120
|
- //8、返回最终结果
|
122
|
+ List<SortBrand> configSortBrandList = recallConfigService.queryConfigSortBrandList(pageFactor,pageSortBrandKeys, filterSortBrandKeys, configSortBrandCount);
|
|
|
123
|
+ //9、返回最终结果
|
121
|
return new UserPersonalFactor(recommendSknList, realTimeSimilarSknList, sortPriceAreasList, realTimeSortBrandList, vectorRnnSortBrandList, vectorW2vSortBrandList, configSortBrandList);
|
124
|
return new UserPersonalFactor(recommendSknList, realTimeSimilarSknList, sortPriceAreasList, realTimeSortBrandList, vectorRnnSortBrandList, vectorW2vSortBrandList, configSortBrandList);
|
122
|
}
|
125
|
}
|
123
|
|
126
|
|
124
|
- private List<SortBrand> getSortBrandListWithSort(Set<String> pageSortBrandKeys, Set<String> filterSortBrandKeys, List<SortBrand> userSortBrands, int maxCount) {
|
127
|
+ private List<SortBrand> queryRealTimeSortBrandList(Set<String> pageSortBrandKeys, Set<String> filterSortBrandKeys, List<SortBrand> userSortBrands, int maxCount) {
|
125
|
List<SortBrand> results = new ArrayList<>();
|
128
|
List<SortBrand> results = new ArrayList<>();
|
126
|
if (pageSortBrandKeys == null || pageSortBrandKeys.isEmpty() || userSortBrands == null || userSortBrands.isEmpty()) {
|
129
|
if (pageSortBrandKeys == null || pageSortBrandKeys.isEmpty() || userSortBrands == null || userSortBrands.isEmpty()) {
|
127
|
return results;
|
130
|
return results;
|