static private GetFilter ( Query query ) : Filter | ||
query | Query | |
return | Filter |
internal static Filter GetFilter(Query query)
{
var scoreQuery = query as ConstantScoreQuery;
if (scoreQuery != null)
{
ConstantScoreQuery csq = scoreQuery;
Filter filter = csq.Filter;
if (filter != null)
{
return filter;
}
else
{
return GetFilter(csq.Query);
}
}
else
{
return null;
}
}
public override Weight CreateWeight(IndexSearcher searcher) { Weight baseWeight = baseQuery.CreateWeight(searcher); object[] drillDowns = new object[drillDownQueries.Length]; for (int dim = 0; dim < drillDownQueries.Length; dim++) { Query query = drillDownQueries[dim]; Filter filter = DrillDownQuery.GetFilter(query); if (filter != null) { drillDowns[dim] = filter; } else { // TODO: would be nice if we could say "we will do no // scoring" here.... drillDowns[dim] = searcher.Rewrite(query).CreateWeight(searcher); } } return(new WeightAnonymousInnerClassHelper(this, baseWeight, drillDowns)); }