Commit bcd27ed3 by 段启岩

搜索服务更新

parent 55b73c24
...@@ -15,6 +15,7 @@ import org.springframework.util.StringUtils; ...@@ -15,6 +15,7 @@ import org.springframework.util.StringUtils;
import org.springframework.validation.BindingResult; import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.validation.Valid; import javax.validation.Valid;
...@@ -37,7 +38,7 @@ public class SearchApi { ...@@ -37,7 +38,7 @@ public class SearchApi {
@Anonymous @Anonymous
@GetMapping("") @GetMapping("")
@ApiOperation("搜索") @ApiOperation("搜索")
public Response<?> search(@Valid PageForm pageForm, String keywords, String itemType, BindingResult bindingResult) { public Response<?> search(@Valid PageForm pageForm, String keywords, @RequestParam(value = "type", required = false) String itemType, BindingResult bindingResult) {
if (bindingResult.hasErrors()) { if (bindingResult.hasErrors()) {
return Response.fieldError(bindingResult.getFieldError()); return Response.fieldError(bindingResult.getFieldError());
} }
......
...@@ -27,6 +27,7 @@ import cn.meteor.beyondclouds.modules.user.exception.UserServiceException; ...@@ -27,6 +27,7 @@ import cn.meteor.beyondclouds.modules.user.exception.UserServiceException;
import cn.meteor.beyondclouds.modules.user.service.IUserService; import cn.meteor.beyondclouds.modules.user.service.IUserService;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.elasticsearch.index.query.BoolQueryBuilder;
import org.elasticsearch.index.query.DisMaxQueryBuilder; import org.elasticsearch.index.query.DisMaxQueryBuilder;
import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.index.query.QueryBuilder;
import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.index.query.QueryBuilders;
...@@ -102,14 +103,15 @@ public class SearchServiceImpl implements ISearchService { ...@@ -102,14 +103,15 @@ public class SearchServiceImpl implements ISearchService {
disMaxQueryBuilder.add(descriptionQueryBuilder); disMaxQueryBuilder.add(descriptionQueryBuilder);
disMaxQueryBuilder.add(contentQueryBuilder); disMaxQueryBuilder.add(contentQueryBuilder);
QueryBuilder queryBuilder BoolQueryBuilder boolQueryBuilder
= QueryBuilders = QueryBuilders
.boolQuery() .boolQuery()
.must(QueryBuilders.constantScoreQuery(QueryBuilders.matchPhraseQuery("itemType", itemType)))
.must(disMaxQueryBuilder); .must(disMaxQueryBuilder);
if (null != itemType) {
return searchRepository.search(queryBuilder, PageRequest.of(pageNumber, pageSize)); boolQueryBuilder.must(QueryBuilders.constantScoreQuery(QueryBuilders.matchPhraseQuery("itemType", itemType)));
}
return searchRepository.search(boolQueryBuilder, PageRequest.of(pageNumber, pageSize));
} }
@Override @Override
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment