コード例 #1
0
ファイル: CustomScoreQuery.cs プロジェクト: vernon016/mono
            private float[] vScores;             // reused in score() to avoid allocating this array for each doc

            // constructor
            internal CustomScorer(CustomScoreQuery enclosingInstance, Similarity similarity, IndexReader reader, CustomWeight w, Scorer subQueryScorer, Scorer[] valSrcScorers) : base(similarity)
            {
                InitBlock(enclosingInstance);
                this.weight         = w;
                this.qWeight        = w.GetValue();
                this.subQueryScorer = subQueryScorer;
                this.valSrcScorers  = valSrcScorers;
                this.reader         = reader;
                this.vScores        = new float[valSrcScorers.Length];
                this.provider       = this.Enclosing_Instance.GetCustomScoreProvider(reader);
            }
コード例 #2
0
ファイル: CustomScoreQuery.cs プロジェクト: vernon016/mono
 public CustomWeight(CustomScoreQuery enclosingInstance, Searcher searcher)
 {
     InitBlock(enclosingInstance);
     this.similarity     = Enclosing_Instance.GetSimilarity(searcher);
     this.subQueryWeight = Enclosing_Instance.subQuery.Weight(searcher);
     this.valSrcWeights  = new Weight[Enclosing_Instance.valSrcQueries.Length];
     for (int i = 0; i < Enclosing_Instance.valSrcQueries.Length; i++)
     {
         this.valSrcWeights[i] = Enclosing_Instance.valSrcQueries[i].CreateWeight(searcher);
     }
     this.qStrict = Enclosing_Instance.strict;
 }
コード例 #3
0
 protected internal virtual void  ProcessPayload(Similarity similarity)
 {
     if (positions.IsPayloadAvailable())
     {
         payload      = positions.GetPayload(payload, 0);
         payloadScore = Enclosing_Instance.Enclosing_Instance.function.CurrentScore(doc, Enclosing_Instance.Enclosing_Instance.term.Field(), spans.Start(), spans.End(), payloadsSeen, payloadScore, similarity.ScorePayload(doc, Enclosing_Instance.Enclosing_Instance.term.Field(), spans.Start(), spans.End(), payload, 0, positions.GetPayloadLength()));
         payloadsSeen++;
     }
     else
     {
         // zero out the payload?
     }
 }
コード例 #4
0
ファイル: SpanScorer.cs プロジェクト: carrie901/mono
		protected internal SpanScorer(Spans spans, Weight weight, Similarity similarity, byte[] norms):base(similarity)
		{
			this.spans = spans;
			this.norms = norms;
			this.weight = weight;
			this.value_Renamed = weight.GetValue();
			if (this.spans.Next())
			{
				doc = - 1;
			}
			else
			{
				doc = NO_MORE_DOCS;
				more = false;
			}
		}
コード例 #5
0
ファイル: SpanScorer.cs プロジェクト: vernon016/mono
 protected internal SpanScorer(Spans spans, Weight weight, Similarity similarity, byte[] norms) : base(similarity)
 {
     this.spans         = spans;
     this.norms         = norms;
     this.weight        = weight;
     this.value_Renamed = weight.GetValue();
     if (this.spans.Next())
     {
         doc = -1;
     }
     else
     {
         doc  = NO_MORE_DOCS;
         more = false;
     }
 }
コード例 #6
0
ファイル: NormsWriterPerField.cs プロジェクト: vernon016/mono
 internal override void  Finish()
 {
     System.Diagnostics.Debug.Assert(docIDs.Length == norms.Length);
     if (fieldInfo.isIndexed && !fieldInfo.omitNorms)
     {
         if (docIDs.Length <= upto)
         {
             System.Diagnostics.Debug.Assert(docIDs.Length == upto);
             docIDs = ArrayUtil.Grow(docIDs, 1 + upto);
             norms  = ArrayUtil.Grow(norms, 1 + upto);
         }
         float norm = docState.similarity.ComputeNorm(fieldInfo.name, fieldState);
         norms[upto]  = Similarity.EncodeNorm(norm);
         docIDs[upto] = docState.docID;
         upto++;
     }
 }
コード例 #7
0
                public /*protected internal*/ override bool SetFreqCurrentDoc()
                {
                    if (!more)
                    {
                        return(false);
                    }
                    doc          = spans.Doc();
                    freq         = 0.0f;
                    payloadScore = 0;
                    payloadsSeen = 0;
                    Similarity similarity1 = GetSimilarity();

                    while (more && doc == spans.Doc())
                    {
                        int matchLength = spans.End() - spans.Start();

                        freq += similarity1.SloppyFreq(matchLength);
                        ProcessPayload(similarity1);

                        more = spans.Next();                         // this moves positions to the next match in this
                        // document
                    }
                    return(more || (freq != 0));
                }
コード例 #8
0
ファイル: PayloadTermQuery.cs プロジェクト: carrie901/mono
				public PayloadTermSpanScorer(PayloadTermWeight enclosingInstance, TermSpans spans, Weight weight, Similarity similarity, byte[] norms):base(spans, weight, similarity, norms)
				{
					InitBlock(enclosingInstance);
					positions = spans.GetPositions();
				}
コード例 #9
0
 internal AnonymousClassSimilarityDelegator(BooleanQuery enclosingInstance, Mono.Lucene.Net.Search.Similarity Param1) : base(Param1)
 {
     InitBlock(enclosingInstance);
 }
コード例 #10
0
ファイル: PayloadNearQuery.cs プロジェクト: carrie901/mono
			protected internal PayloadNearSpanScorer(PayloadNearQuery enclosingInstance, Mono.Lucene.Net.Search.Spans.Spans spans, Weight weight, Similarity similarity, byte[] norms):base(spans, weight, similarity, norms)
			{
				InitBlock(enclosingInstance);
				this.spans = spans;
			}
コード例 #11
0
ファイル: SpanScorer.cs プロジェクト: vernon016/mono
        public override float Score()
        {
            float raw = GetSimilarity().Tf(freq) * value_Renamed;             // raw score

            return(norms == null?raw:raw *Similarity.DecodeNorm(norms[doc])); // normalize
        }
コード例 #12
0
ファイル: FilteredQuery.cs プロジェクト: vernon016/mono
 internal AnonymousClassScorer(Mono.Lucene.Net.Search.Scorer scorer, Mono.Lucene.Net.Search.DocIdSetIterator docIdSetIterator, AnonymousClassWeight enclosingInstance, Mono.Lucene.Net.Search.Similarity Param1) : base(Param1)
 {
     InitBlock(scorer, docIdSetIterator, enclosingInstance);
 }
コード例 #13
0
ファイル: PayloadTermQuery.cs プロジェクト: carrie901/mono
				protected internal virtual void  ProcessPayload(Similarity similarity)
				{
					if (positions.IsPayloadAvailable())
					{
						payload = positions.GetPayload(payload, 0);
						payloadScore = Enclosing_Instance.Enclosing_Instance.function.CurrentScore(doc, Enclosing_Instance.Enclosing_Instance.term.Field(), spans.Start(), spans.End(), payloadsSeen, payloadScore, similarity.ScorePayload(doc, Enclosing_Instance.Enclosing_Instance.term.Field(), spans.Start(), spans.End(), payload, 0, positions.GetPayloadLength()));
						payloadsSeen++;
					}
					else
					{
						// zero out the payload?
					}
				}
コード例 #14
0
ファイル: FilteredQuery.cs プロジェクト: vernon016/mono
 private void  InitBlock(Mono.Lucene.Net.Search.Weight weight, Mono.Lucene.Net.Search.Similarity similarity, FilteredQuery enclosingInstance)
 {
     this.weight            = weight;
     this.similarity        = similarity;
     this.enclosingInstance = enclosingInstance;
 }
コード例 #15
0
ファイル: FilteredQuery.cs プロジェクト: vernon016/mono
 public AnonymousClassWeight(Mono.Lucene.Net.Search.Weight weight, Mono.Lucene.Net.Search.Similarity similarity, FilteredQuery enclosingInstance)
 {
     InitBlock(weight, similarity, enclosingInstance);
 }
コード例 #16
0
ファイル: DocumentsWriter.cs プロジェクト: carrie901/mono
		internal DocumentsWriter(Directory directory, IndexWriter writer, IndexingChain indexingChain)
		{
			InitBlock();
			this.directory = directory;
			this.writer = writer;
			this.similarity = writer.GetSimilarity();
			flushedDocCount = writer.MaxDoc();
			
			consumer = indexingChain.GetChain(this);
			if (consumer is DocFieldProcessor)
			{
				docFieldProcessor = (DocFieldProcessor) consumer;
			}
		}
コード例 #17
0
 internal AnonymousClassConjunctionScorer(int requiredNrMatchers, BooleanScorer2 enclosingInstance, Mono.Lucene.Net.Search.Similarity Param1, System.Collections.ICollection Param2) : base(Param1, Param2)
 {
     InitBlock(requiredNrMatchers, enclosingInstance);
 }
コード例 #18
0
 protected internal PayloadNearSpanScorer(PayloadNearQuery enclosingInstance, Mono.Lucene.Net.Search.Spans.Spans spans, Weight weight, Similarity similarity, byte[] norms) : base(spans, weight, similarity, norms)
 {
     InitBlock(enclosingInstance);
     this.spans = spans;
 }
コード例 #19
0
 public PayloadTermSpanScorer(PayloadTermWeight enclosingInstance, TermSpans spans, Weight weight, Similarity similarity, byte[] norms) : base(spans, weight, similarity, norms)
 {
     InitBlock(enclosingInstance);
     positions = spans.GetPositions();
 }
コード例 #20
0
ファイル: CustomScoreQuery.cs プロジェクト: carrie901/mono
			private float[] vScores; // reused in score() to avoid allocating this array for each doc 
			
			// constructor
			internal CustomScorer(CustomScoreQuery enclosingInstance, Similarity similarity, IndexReader reader, CustomWeight w, Scorer subQueryScorer, Scorer[] valSrcScorers):base(similarity)
			{
				InitBlock(enclosingInstance);
				this.weight = w;
				this.qWeight = w.GetValue();
				this.subQueryScorer = subQueryScorer;
				this.valSrcScorers = valSrcScorers;
				this.reader = reader;
				this.vScores = new float[valSrcScorers.Length];
                this.provider = this.Enclosing_Instance.GetCustomScoreProvider(reader);
			}
コード例 #21
0
ファイル: CustomScoreQuery.cs プロジェクト: carrie901/mono
			public CustomWeight(CustomScoreQuery enclosingInstance, Searcher searcher)
			{
				InitBlock(enclosingInstance);
				this.similarity = Enclosing_Instance.GetSimilarity(searcher);
				this.subQueryWeight = Enclosing_Instance.subQuery.Weight(searcher);
				this.valSrcWeights = new Weight[Enclosing_Instance.valSrcQueries.Length];
				for (int i = 0; i < Enclosing_Instance.valSrcQueries.Length; i++)
				{
					this.valSrcWeights[i] = Enclosing_Instance.valSrcQueries[i].CreateWeight(searcher);
				}
				this.qStrict = Enclosing_Instance.strict;
			}
コード例 #22
0
ファイル: DocumentsWriter.cs プロジェクト: carrie901/mono
		internal void  SetSimilarity(Similarity similarity)
		{
			lock (this)
			{
				this.similarity = similarity;
				for (int i = 0; i < threadStates.Length; i++)
					threadStates[i].docState.similarity = similarity;
			}
		}
コード例 #23
0
ファイル: NormsWriter.cs プロジェクト: vernon016/mono
 static NormsWriter()
 {
     defaultNorm = Similarity.EncodeNorm(1.0f);
 }
コード例 #24
0
ファイル: IndexWriter.cs プロジェクト: carrie901/mono
		/// <summary>Expert: Set the Similarity implementation used by this IndexWriter.
		/// 
		/// </summary>
		/// <seealso cref="Similarity.SetDefault(Similarity)">
		/// </seealso>
		public virtual void  SetSimilarity(Similarity similarity)
		{
			EnsureOpen();
			this.similarity = similarity;
			docWriter.SetSimilarity(similarity);
		}