예제 #1
0
        /// <summary> Expert: Constructs and initializes a Weight for a top-level query.</summary>
        public virtual Weight Weight(Searcher searcher)
        {
            Query  query  = searcher.Rewrite(this);
            Weight weight = query.CreateWeight(searcher);
            float  sum    = weight.GetSumOfSquaredWeights();
            float  norm   = GetSimilarity(searcher).QueryNorm(sum);

            if (float.IsInfinity(norm) || float.IsNaN(norm))
            {
                norm = 1.0f;
            }
            weight.Normalize(norm);
            return(weight);
        }
예제 #2
0
		/// <summary> Expert: Constructs and initializes a Weight for a top-level query.</summary>
		public virtual Weight Weight(Searcher searcher)
		{
			Query query = searcher.Rewrite(this);
			Weight weight = query.CreateWeight(searcher);
		    float sum = weight.GetSumOfSquaredWeights();
            float norm = GetSimilarity(searcher).QueryNorm(sum);
            if (float.IsInfinity(norm) || float.IsNaN(norm))
                norm = 1.0f;
			weight.Normalize(norm);
			return weight;
		}