Spring Elasticsearch,创建应用趋势请求

问题描述

在我的elasticsearch中,我列出了带有类别应用程序和游戏以及大量元数据的apk列表。 我必须返回按类别分类的顶级交易apk列表。我的请求必须考虑并按以下各项的最佳组合进行排序:

  1. 本周下载次数最多的apk(应用或游戏)
  2. 最受好评
  3. 评论最多

请问我该怎么做? 我使用spring 2.2和spring弹性搜索3.2.4。

@Data
@NoArgsConstructor
@ToString
@Document(indexName = "apk")
public class Apk {

    @Id //The unique id
    private Long id;

    @Field(type = FieldType.nested,includeInParent = true)
    private rating rating = new rating();

    @Field(type = FieldType.nested,includeInParent = true)
    private List<Review> userReview = new ArrayList<>();

    @Field(type = FieldType.nested,includeInParent = true)
    private Category category;

    @Field(type = FieldType.nested,includeInParent = true)
    private SubCategory subCategory;

    private ApkStatus status = ApkStatus.INITIATED;

    private Set<String> dependencies = new HashSet<>();

    private Set<String> permissions = new HashSet<>();
    private String changes;
    private Long companyId;
    private String description;
    private String displayName;

    private String packageName = "unkNown";
    private BigDecimal price = new BigDecimal(0);
    private String shortDescription;
    private String versionName = "unkNown";
    private String videoUrl;
    private Boolean containsAds;
    private Boolean isFree=false;
    private long versionCode = 0;
    private String minSdkVersion;
    private String targetSdkVersion;
    private String maxsdkVersion;
    private long installs;
    private long unInstalls;
    private long size;
    private String apkName;
    private String repositoryGeneratedId;

    private String iconPath;  

    private String iconDownloadUrl;
    
    private String apkPath;  

    private String apkDownloadUrl;

    private String installHistoryString;
    private String unInstallHistoryString;
    
    @Transient
    private NavigableMap<String,Integer> installHistory = new TreeMap<>();
    @Transient
    private NavigableMap<String,Integer> unInstallHistory = new TreeMap<>();

    private Map<String,TranslatedMetadata> translatedMetadataList = new TreeMap<>();
    
    LocalizedLanguage defaultLanguage;
    
    private Date updateDate = new Date();
    private Date createDate = new Date();

预先感谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)