elasticsearch解决某一字段值等于某字符串时优先排序问题,这个很让我困扰,数据库中source字段为qyer时排在前面,对,就是这样用script完成这个排序
public Map<String, Object> findByQuestion(String content,int page){
Map<String, Object> results=new HashMap<>();
MatchQueryBuilder matchQueryBuilder=new MatchQueryBuilder("contents", content);
matchQueryBuilder.analyzer("ik");
TermQueryBuilder termQueryType=new TermQueryBuilder("type", "question");
Page<QA> questionQa=qaRepository.search(new NativeSearchQueryBuilder()
.withQuery(new AndQueryBuilder().add(matchQueryBuilder).add(termQueryType))
.withPageable(new PageRequest(page, 10))
.withSort(new ScoreSortBuilder().order(SortOrder.DESC))
.withSort(new ScriptSortBuilder("'qyer'==doc['source'].value?0:('mafengwo'==doc['source'