首先说下问题  本来搜索是按关键字的匹配次数排序的  但是那边用户要求按时间降序排序  试了好久  还是不行
  首先贴出封装的存储类
  
@Searchable
public class SearchableTopic {
/** 新闻ID */
@SearchableId
private String newsId;
/** 稿件标题 */
@SearchableProperty(index = Index.ANALYZED, store = Store.YES, name = "newsTitle")
private String newsTitle;
/** 稿件正文 */
@SearchableProperty(index = Index.ANALYZED, store = Store.YES , name = "newsContent")
private String newsContent;
/** 稿件发表时间 */
@SearchableProperty(index = Index.NOT_ANALYZED, store = Store.YES, format = "yyyy-MM-dd HH:mm")
private Date submitTime;
/** 稿件发表栏目 */
@SearchableProperty(index = Index.NOT_ANALYZED, store = Store.YES, name = "columnName")
private String columnName;

public SearchableTopic() {
} 省略getter/setter方法   这是需要存储的几个属性  在搜索的时候我需要按时间排序
}
  
   在另一个类中我封装了构建CompassQuery对象public CompassQuery buildCompassQuery(CompassQueryBuilder queryBuilder) {
     CompassBooleanQueryBuilder boolQueryBuilder = queryBuilder.bool().
                                    addMust(queryBuilder.alias(SearchableTopic.class.getSimpleName()));    if(searchType == 0){
//在文章的标题和内容中进行查询  queryString查询关键字
boolQueryBuilder.addMust(queryBuilder.term("newsTitle", queryString))
       .addMust(queryBuilder.term("shortTitle", queryString))
       .addMust(queryBuilder.term("newsContent", queryString));
   } else if(searchType == 1){
//查询指定部门的文章
CompassQuery deptQuery = queryBuilder.term("departmentName", queryString);
boolQueryBuilder.addMust(deptQuery);
   } else if(searchType == 2){
//查询指定栏目的文章
CompassQuery columnQuery = queryBuilder.term("columnName", queryString);
boolQueryBuilder.addMust(columnQuery);
   } else {
//查询指定作者发表的文章
CompassQuery authorQuery = queryBuilder.term("authorName", queryString);
boolQueryBuilder.addMust(authorQuery);
   }
      //默认是指定按时间排序
      if(sortType == 0){
boolQueryBuilder.toQuery()
               .addSort("submitTime", CompassQuery.SortPropertyType.INT,CompassQuery.SortDirection.REVERSE);
        }
return boolQueryBuilder.toQuery();
}最后就是通过CompassQuery得到CompassHits就可以遍历得到结果了
最主要的代码还是在构建CompassQuery那段代码中  最后我用了addSort还是不行  不知道这跟每一条新闻的索引存储顺序是否有关   跪求大神指点指点  到底按时间(submitTime)排序该怎么写