コード例 #1
0
        public virtual void TestComplexNested()
        {
            PayloadNearQuery query;
            TopDocs          hits;

            // combine ordered and unordered spans with some nesting to make sure all payloads are counted

            SpanQuery q1 = NewPhraseQuery("field", "nine hundred", true, new AveragePayloadFunction());
            SpanQuery q2 = NewPhraseQuery("field", "ninety nine", true, new AveragePayloadFunction());
            SpanQuery q3 = NewPhraseQuery("field", "nine ninety", false, new AveragePayloadFunction());
            SpanQuery q4 = NewPhraseQuery("field", "hundred nine", false, new AveragePayloadFunction());

            SpanQuery[] clauses = new SpanQuery[] { new PayloadNearQuery(new SpanQuery[] { q1, q2 }, 0, true), new PayloadNearQuery(new SpanQuery[] { q3, q4 }, 0, false) };
            query = new PayloadNearQuery(clauses, 0, false);
            hits  = Searcher.Search(query, null, 100);
            Assert.IsTrue(hits != null, "hits is null and it shouldn't be");
            // should be only 1 hit - doc 999
            Assert.IsTrue(hits.ScoreDocs.Length == 1, "should only be one hit");
            // the score should be 3 - the average of all the underlying payloads
            ScoreDoc doc = hits.ScoreDocs[0];

            //    System.out.println("Doc: " + doc.toString());
            //    System.out.println("Explain: " + searcher.Explain(query, doc.Doc));
            Assert.IsTrue(doc.Score == 3, doc.Score + " does not equal: " + 3);
        }
コード例 #2
0
ファイル: PayloadNearQuery.cs プロジェクト: ywscr/lucenenet
#pragma warning disable IDE0060 // Remove unused parameter
            protected internal PayloadNearSpanScorer(PayloadNearQuery outerInstance, Spans spans, Weight weight, Similarity similarity, Similarity.SimScorer docScorer)
#pragma warning restore IDE0060 // Remove unused parameter
                : base(spans, weight, docScorer)
            {
                this.outerInstance = outerInstance;
                this.spans         = spans;
            }
コード例 #3
0
		public override System.Object Clone()
		{
			int sz = clauses.Count;
			SpanQuery[] newClauses = new SpanQuery[sz];
			
			for (int i = 0; i < sz; i++)
			{
				newClauses[i] = clauses[i];
			}
			PayloadNearQuery boostingNearQuery = new PayloadNearQuery(newClauses, internalSlop, inOrder);
			boostingNearQuery.Boost = Boost;
			return boostingNearQuery;
		}
コード例 #4
0
        public override object Clone()
        {
            int sz = clauses.Count;
            SpanQuery[] newClauses = new SpanQuery[sz];

            for (int i = 0; i < sz; i++)
            {
                newClauses[i] = (SpanQuery)clauses[i].Clone();
            }
            PayloadNearQuery boostingNearQuery = new PayloadNearQuery(newClauses, slop, inOrder, Function);
            boostingNearQuery.Boost = Boost;
            return boostingNearQuery;
        }
コード例 #5
0
		public override System.Object Clone()
		{
			int sz = clauses.Count;
			SpanQuery[] newClauses = new SpanQuery[sz];
			
			for (int i = 0; i < sz; i++)
			{
				SpanQuery clause = (SpanQuery) clauses[i];
				newClauses[i] = (SpanQuery) clause.Clone();
			}
			PayloadNearQuery boostingNearQuery = new PayloadNearQuery(newClauses, slop, inOrder);
			boostingNearQuery.SetBoost(GetBoost());
			return boostingNearQuery;
		}
コード例 #6
0
        public override object Clone()
        {
            int sz = clauses.Count;

            SpanQuery[] newClauses = new SpanQuery[sz];

            for (int i = 0; i < sz; i++)
            {
                newClauses[i] = clauses[i];
            }
            PayloadNearQuery boostingNearQuery = new PayloadNearQuery(newClauses, internalSlop, inOrder);

            boostingNearQuery.Boost = Boost;
            return(boostingNearQuery);
        }
コード例 #7
0
        public override object Clone()
        {
            int sz = m_clauses.Count;

            SpanQuery[] newClauses = new SpanQuery[sz];

            for (int i = 0; i < sz; i++)
            {
                newClauses[i] = (SpanQuery)m_clauses[i].Clone();
            }
            PayloadNearQuery boostingNearQuery = new PayloadNearQuery(newClauses, m_slop, m_inOrder, m_function);

            boostingNearQuery.Boost = Boost;
            return(boostingNearQuery);
        }
コード例 #8
0
        public override System.Object Clone()
        {
            int sz = clauses.Count;

            SpanQuery[] newClauses = new SpanQuery[sz];

            for (int i = 0; i < sz; i++)
            {
                SpanQuery clause = (SpanQuery)clauses[i];
                newClauses[i] = (SpanQuery)clause.Clone();
            }
            PayloadNearQuery boostingNearQuery = new PayloadNearQuery(newClauses, slop, inOrder);

            boostingNearQuery.SetBoost(GetBoost());
            return(boostingNearQuery);
        }
コード例 #9
0
        // @Override
        public override bool Equals(System.Object obj)
        {
            if (this == obj)
            {
                return(true);
            }
            if (!base.Equals(obj))
            {
                return(false);
            }
            if (GetType() != obj.GetType())
            {
                return(false);
            }
            PayloadNearQuery other = (PayloadNearQuery)obj;

            if (fieldName == null)
            {
                if (other.fieldName != null)
                {
                    return(false);
                }
            }
            else if (!fieldName.Equals(other.fieldName))
            {
                return(false);
            }
            if (function == null)
            {
                if (other.function != null)
                {
                    return(false);
                }
            }
            else if (!function.Equals(other.function))
            {
                return(false);
            }
            return(true);
        }
コード例 #10
0
        public override bool Equals(object obj)
        {
            if (this == obj)
            {
                return(true);
            }
            if (!base.Equals(obj))
            {
                return(false);
            }
            if (this.GetType() != obj.GetType())
            {
                return(false);
            }
            PayloadNearQuery other = (PayloadNearQuery)obj;

            if (m_fieldName == null)
            {
                if (other.m_fieldName != null)
                {
                    return(false);
                }
            }
            else if (!m_fieldName.Equals(other.m_fieldName, StringComparison.Ordinal))
            {
                return(false);
            }
            if (m_function == null)
            {
                if (other.m_function != null)
                {
                    return(false);
                }
            }
            else if (!m_function.Equals(other.m_function))
            {
                return(false);
            }
            return(true);
        }
コード例 #11
0
        public virtual void  TestPayloadNear()
        {
            SpanNearQuery    q1, q2;
            PayloadNearQuery query;
            TopDocs          hits;

            // SpanNearQuery(clauses, 10000, false)
            q1 = SpanNearQuery_Renamed("field2", "twenty two");
            q2 = SpanNearQuery_Renamed("field2", "twenty three");
            SpanQuery[] clauses = new SpanQuery[2];
            clauses[0] = q1;
            clauses[1] = q2;
            query      = new PayloadNearQuery(clauses, 10, false);
            // System.out.println(query.toString());
            Assert.AreEqual(12, searcher.Search(query, null, 100).TotalHits);

            /*
             * System.out.println(hits.totalHits); for (int j = 0; j <
             * hits.scoreDocs.length; j++) { ScoreDoc doc = hits.scoreDocs[j];
             * System.out.println("doc: "+doc.doc+", score: "+doc.score); }
             */
        }
コード例 #12
0
 protected internal PayloadNearSpanScorer(PayloadNearQuery outerInstance, Spans spans, Weight weight, Similarity similarity, Similarity.SimScorer docScorer)
     : base(spans, weight, docScorer)
 {
     this.outerInstance = outerInstance;
     this.spans         = spans;
 }
コード例 #13
0
 public PayloadNearSpanWeight(PayloadNearQuery outerInstance, SpanQuery query, IndexSearcher searcher)
     : base(query, searcher)
 {
     this.OuterInstance = outerInstance;
 }
コード例 #14
0
 private static void VisitQuery(PayloadNearQuery query, AzureQueryLogger.IndentedTextWriter writer)
 {
     writer.WriteLine("IsInOrder: {0}", (query.IsInOrder ? 1 : 0));
     writer.WriteLine("Slop: {0}", (object)query.Slop);
 }
コード例 #15
0
 public PayloadNearSpanWeight(PayloadNearQuery outerInstance, SpanQuery query, IndexSearcher searcher)
     : base(query, searcher)
 {
     this.outerInstance = outerInstance;
 }
コード例 #16
0
 protected internal PayloadNearSpanScorer(PayloadNearQuery enclosingInstance, Lucene.Net.Search.Spans.Spans spans, Weight weight, Similarity similarity, byte[] norms) : base(spans, weight, similarity, norms)
 {
     InitBlock(enclosingInstance);
     this.spans = spans;
 }
コード例 #17
0
 protected internal PayloadNearSpanScorer(PayloadNearQuery enclosingInstance, Lucene.Net.Search.Spans.Spans spans, Weight weight, Similarity similarity, byte[] norms)
     : base(spans, weight, similarity, norms)
 {
     InitBlock(enclosingInstance);
     this.spans = spans;
 }
コード例 #18
0
 public PayloadNearSpanWeight(PayloadNearQuery enclosingInstance, SpanQuery query, Searcher searcher) : base(query, searcher)
 {
     InitBlock(enclosingInstance);
 }
コード例 #19
0
 private void  InitBlock(PayloadNearQuery enclosingInstance)
 {
     this.enclosingInstance = enclosingInstance;
     similarity             = GetSimilarity();
 }
コード例 #20
0
 private void InitBlock(PayloadNearQuery enclosingInstance)
 {
     this.enclosingInstance = enclosingInstance;
     similarity = GetSimilarity();
 }
コード例 #21
0
 private void  InitBlock(PayloadNearQuery enclosingInstance)
 {
     this.enclosingInstance = enclosingInstance;
 }
コード例 #22
0
 public PayloadNearSpanWeight(PayloadNearQuery enclosingInstance, SpanQuery query, Searcher searcher)
     : base(query, searcher)
 {
     InitBlock(enclosingInstance);
 }
コード例 #23
0
 private void InitBlock(PayloadNearQuery enclosingInstance)
 {
     this.enclosingInstance = enclosingInstance;
 }
コード例 #24
0
 protected internal PayloadNearSpanScorer(PayloadNearQuery outerInstance, Spans spans, Weight weight, Similarity similarity, Similarity.SimScorer docScorer)
     : base(spans, weight, docScorer)
 {
     this.OuterInstance = outerInstance;
     this.Spans = spans;
 }
コード例 #25
0
 public virtual void TestPayloadNear()
 {
     SpanNearQuery q1, q2;
     PayloadNearQuery query;
     //SpanNearQuery(clauses, 10000, false)
     q1 = SpanNearQuery("field2", "twenty two");
     q2 = SpanNearQuery("field2", "twenty three");
     SpanQuery[] clauses = new SpanQuery[2];
     clauses[0] = q1;
     clauses[1] = q2;
     query = new PayloadNearQuery(clauses, 10, false);
     //System.out.println(query.toString());
     Assert.AreEqual(12, Searcher.Search(query, null, 100).TotalHits);
     /*
     System.out.println(hits.TotalHits);
     for (int j = 0; j < hits.ScoreDocs.Length; j++) {
       ScoreDoc doc = hits.ScoreDocs[j];
       System.out.println("doc: "+doc.Doc+", score: "+doc.Score);
     }
     */
 }
コード例 #26
0
        public virtual void TestComplexNested()
        {
            PayloadNearQuery query;
            TopDocs hits;

            // combine ordered and unordered spans with some nesting to make sure all payloads are counted

            SpanQuery q1 = NewPhraseQuery("field", "nine hundred", true, new AveragePayloadFunction());
            SpanQuery q2 = NewPhraseQuery("field", "ninety nine", true, new AveragePayloadFunction());
            SpanQuery q3 = NewPhraseQuery("field", "nine ninety", false, new AveragePayloadFunction());
            SpanQuery q4 = NewPhraseQuery("field", "hundred nine", false, new AveragePayloadFunction());
            SpanQuery[] clauses = new SpanQuery[] { new PayloadNearQuery(new SpanQuery[] { q1, q2 }, 0, true), new PayloadNearQuery(new SpanQuery[] { q3, q4 }, 0, false) };
            query = new PayloadNearQuery(clauses, 0, false);
            hits = Searcher.Search(query, null, 100);
            Assert.IsTrue(hits != null, "hits is null and it shouldn't be");
            // should be only 1 hit - doc 999
            Assert.IsTrue(hits.ScoreDocs.Length == 1, "should only be one hit");
            // the score should be 3 - the average of all the underlying payloads
            ScoreDoc doc = hits.ScoreDocs[0];
            //    System.out.println("Doc: " + doc.toString());
            //    System.out.println("Explain: " + searcher.Explain(query, doc.Doc));
            Assert.IsTrue(doc.Score == 3, doc.Score + " does not equal: " + 3);
        }