package eu.europeana.cloud.service.dps.index.structure;
import java.util.ArrayList;
import java.util.List;
/**
* Object representation of search result.
* @author Pavel Kefurt <Pavel.Kefurt@gmail.com>
*/
public class SearchResult
{
private final long totalHits;
private final float maxScore;
private final long tookTime; //ms
private Object query;
private String scrollId;
private final List<SearchHit> hits;
/**
* Construct object without scroll.
* @param hits found documents
* @param totalHits total number of results
* @param maxScore best score
* @param tookTime execute time in milliseconds
*/
public SearchResult(List<SearchHit> hits, long totalHits, float maxScore, long tookTime)
{
this(hits, totalHits, maxScore, tookTime, null);
}
/**
* Construct object with scroll.
* @param hits found documents
* @param totalHits total number of results
* @param maxScore best score
* @param tookTime execute time in milliseconds
* @param scrollId scroll id for next page
*/
public SearchResult(List<SearchHit> hits, long totalHits, float maxScore, long tookTime, String scrollId)
{
this.totalHits = totalHits;
this.maxScore = maxScore;
this.tookTime = tookTime;
if(hits != null)
{
this.hits = hits;
}
else
{
this.hits = new ArrayList<>();
}
this.query = null;
this.scrollId = scrollId;
}
public long getTotalHits()
{
return totalHits;
}
public long getTookTime()
{
return tookTime;
}
public List<SearchHit> getHits()
{
return hits;
}
public float getMaxScore()
{
return maxScore;
}
public String getScrollId()
{
return scrollId;
}
public void setScrollId(String id)
{
this.scrollId = id;
}
public Object getQuery()
{
return query;
}
public void setQuery(Object query)
{
this.query = query;
}
}