Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
wwwanlingxiao
mall
Commits
88a684c0
"vscode:/vscode.git/clone" did not exist on "f998e37ac3d7daa188e020691db58d5ca84bc11d"
Commit
88a684c0
authored
Apr 06, 2020
by
macro
Browse files
Update EsProductServiceImpl.java
parent
5890a3e3
Changes
1
Hide whitespace changes
Inline
Side-by-side
mall-search/src/main/java/com/macro/mall/search/service/impl/EsProductServiceImpl.java
View file @
88a684c0
...
@@ -178,16 +178,21 @@ public class EsProductServiceImpl implements EsProductService {
...
@@ -178,16 +178,21 @@ public class EsProductServiceImpl implements EsProductService {
filterFunctionBuilders
.
add
(
new
FunctionScoreQueryBuilder
.
FilterFunctionBuilder
(
QueryBuilders
.
matchQuery
(
"keywords"
,
keyword
),
filterFunctionBuilders
.
add
(
new
FunctionScoreQueryBuilder
.
FilterFunctionBuilder
(
QueryBuilders
.
matchQuery
(
"keywords"
,
keyword
),
ScoreFunctionBuilders
.
weightFactorFunction
(
2
)));
ScoreFunctionBuilders
.
weightFactorFunction
(
2
)));
filterFunctionBuilders
.
add
(
new
FunctionScoreQueryBuilder
.
FilterFunctionBuilder
(
QueryBuilders
.
matchQuery
(
"brandId"
,
brandId
),
filterFunctionBuilders
.
add
(
new
FunctionScoreQueryBuilder
.
FilterFunctionBuilder
(
QueryBuilders
.
matchQuery
(
"brandId"
,
brandId
),
ScoreFunctionBuilders
.
weightFactorFunction
(
10
)));
ScoreFunctionBuilders
.
weightFactorFunction
(
5
)));
filterFunctionBuilders
.
add
(
new
FunctionScoreQueryBuilder
.
FilterFunctionBuilder
(
QueryBuilders
.
matchQuery
(
"productCategoryId"
,
productCategoryId
),
filterFunctionBuilders
.
add
(
new
FunctionScoreQueryBuilder
.
FilterFunctionBuilder
(
QueryBuilders
.
matchQuery
(
"productCategoryId"
,
productCategoryId
),
ScoreFunctionBuilders
.
weightFactorFunction
(
6
)));
ScoreFunctionBuilders
.
weightFactorFunction
(
3
)));
FunctionScoreQueryBuilder
.
FilterFunctionBuilder
[]
builders
=
new
FunctionScoreQueryBuilder
.
FilterFunctionBuilder
[
filterFunctionBuilders
.
size
()];
FunctionScoreQueryBuilder
.
FilterFunctionBuilder
[]
builders
=
new
FunctionScoreQueryBuilder
.
FilterFunctionBuilder
[
filterFunctionBuilders
.
size
()];
filterFunctionBuilders
.
toArray
(
builders
);
filterFunctionBuilders
.
toArray
(
builders
);
FunctionScoreQueryBuilder
functionScoreQueryBuilder
=
QueryBuilders
.
functionScoreQuery
(
builders
)
FunctionScoreQueryBuilder
functionScoreQueryBuilder
=
QueryBuilders
.
functionScoreQuery
(
builders
)
.
scoreMode
(
FunctionScoreQuery
.
ScoreMode
.
SUM
)
.
scoreMode
(
FunctionScoreQuery
.
ScoreMode
.
SUM
)
.
setMinScore
(
2
);
.
setMinScore
(
2
);
//用于过滤掉相同的商品
BoolQueryBuilder
boolQueryBuilder
=
new
BoolQueryBuilder
();
boolQueryBuilder
.
mustNot
(
QueryBuilders
.
termQuery
(
"id"
,
id
));
//构建查询条件
NativeSearchQueryBuilder
builder
=
new
NativeSearchQueryBuilder
();
NativeSearchQueryBuilder
builder
=
new
NativeSearchQueryBuilder
();
builder
.
withQuery
(
functionScoreQueryBuilder
);
builder
.
withQuery
(
functionScoreQueryBuilder
);
builder
.
withFilter
(
boolQueryBuilder
);
builder
.
withPageable
(
pageable
);
builder
.
withPageable
(
pageable
);
NativeSearchQuery
searchQuery
=
builder
.
build
();
NativeSearchQuery
searchQuery
=
builder
.
build
();
LOGGER
.
info
(
"DSL:{}"
,
searchQuery
.
getQuery
().
toString
());
LOGGER
.
info
(
"DSL:{}"
,
searchQuery
.
getQuery
().
toString
());
...
@@ -212,12 +217,12 @@ public class EsProductServiceImpl implements EsProductService {
...
@@ -212,12 +217,12 @@ public class EsProductServiceImpl implements EsProductService {
//聚合搜索商品属性,去除type=1的属性
//聚合搜索商品属性,去除type=1的属性
AbstractAggregationBuilder
aggregationBuilder
=
AggregationBuilders
.
nested
(
"allAttrValues"
,
"attrValueList"
)
AbstractAggregationBuilder
aggregationBuilder
=
AggregationBuilders
.
nested
(
"allAttrValues"
,
"attrValueList"
)
.
subAggregation
(
AggregationBuilders
.
filter
(
"productAttrs"
,
QueryBuilders
.
termQuery
(
"attrValueList.type"
,
1
))
.
subAggregation
(
AggregationBuilders
.
filter
(
"productAttrs"
,
QueryBuilders
.
termQuery
(
"attrValueList.type"
,
1
))
.
subAggregation
(
AggregationBuilders
.
terms
(
"attrIds"
)
.
subAggregation
(
AggregationBuilders
.
terms
(
"attrIds"
)
.
field
(
"attrValueList.productAttributeId"
)
.
field
(
"attrValueList.productAttributeId"
)
.
subAggregation
(
AggregationBuilders
.
terms
(
"attrValues"
)
.
subAggregation
(
AggregationBuilders
.
terms
(
"attrValues"
)
.
field
(
"attrValueList.value"
))
.
field
(
"attrValueList.value"
))
.
subAggregation
(
AggregationBuilders
.
terms
(
"attrNames"
)
.
subAggregation
(
AggregationBuilders
.
terms
(
"attrNames"
)
.
field
(
"attrValueList.name"
))));
.
field
(
"attrValueList.name"
))));
builder
.
addAggregation
(
aggregationBuilder
);
builder
.
addAggregation
(
aggregationBuilder
);
NativeSearchQuery
searchQuery
=
builder
.
build
();
NativeSearchQuery
searchQuery
=
builder
.
build
();
return
elasticsearchTemplate
.
query
(
searchQuery
,
response
->
{
return
elasticsearchTemplate
.
query
(
searchQuery
,
response
->
{
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment