è possibile ordinare utilizzando i campi
consideri un esempio:
Se si dispone di 5 facce e contare ad esso associati. Quindi è possibile ordinare utilizzando i COUNTS di ciascun campo.
Può essere applicabile ai campi normali/senza sfaccettature.
public class FacetBean implements Category,Serializable {
private String facetName; //getter , setters
private long facetCount; // getter , setters
public FacetBean(String facetName, long count,) {
this.facetName = facetName;
this.count = count;
}}
tuo metodo di chiamata dovrebbe essere così
private List<FacetBean> getFacetFieldsbyCount(QueryResponse queryResponse)
{
List<FacetField> flds = queryResponse.getFacetFields();
List<FacetBean> facetList = new ArrayList<FacetBean>();
FacetBean facet = null;
if (flds != null) {
for (FacetField fld : flds) {
facet = new FacetBean();
facet.setFacetName(fld.getName());
List<Count> counts = fld.getValues();
if (counts != null) {
for (Count count : counts) {
facet.setFacetCount(count.getCount());
}
}
facetList.add(facet);
}
}
Collections.sort(facetList,new Comparator<FacetBean>() {
public int compare(FacetBean obj1, FacetBean obj2) {
if(obj1.getFacetCount() > obj2.getFacetCount()) {
return (int)obj1.getFacetCount();
} else {
return (int)obj2.getFacetCount();
}
}
});
return facetList;
}
nella stessa URL Hanno detto qualcosa di simile.
sorta -> es: per esempio, sorta = popolarità disc farà sì che i gruppi siano ordinati in base alla più alta popolarità doc
group.sort -> è possibile applicare il campo qui .
Spero che aiuti.
fonte
2013-07-05 08:45:38