Exemple #1
0
        public virtual void Test()
        {
            Term      allTerm   = new Term(FIELD, "all");
            TermQuery termQuery = new TermQuery(allTerm);

            Weight weight = IndexSearcher.CreateNormalizedWeight(termQuery);

            Assert.IsTrue(IndexSearcher.TopReaderContext is AtomicReaderContext);
            AtomicReaderContext context = (AtomicReaderContext)IndexSearcher.TopReaderContext;
            BulkScorer          ts      = weight.GetBulkScorer(context, true, (context.AtomicReader).LiveDocs);
            // we have 2 documents with the term all in them, one document for all the
            // other values
            IList <TestHit> docs = new List <TestHit>();

            // must call next first

            ts.Score(new CollectorAnonymousInnerClassHelper(this, context, docs));
            Assert.IsTrue(docs.Count == 2, "docs Size: " + docs.Count + " is not: " + 2);
            TestHit doc0 = docs[0];
            TestHit doc5 = docs[1];

            // The scores should be the same
            Assert.IsTrue(doc0.Score == doc5.Score, doc0.Score + " does not equal: " + doc5.Score);

            /*
             * Score should be (based on Default Sim.: All floats are approximate tf = 1
             * numDocs = 6 docFreq(all) = 2 idf = ln(6/3) + 1 = 1.693147 idf ^ 2 =
             * 2.8667 boost = 1 lengthNorm = 1 //there is 1 term in every document coord
             * = 1 sumOfSquaredWeights = (idf * boost) ^ 2 = 1.693147 ^ 2 = 2.8667
             * queryNorm = 1 / (sumOfSquaredWeights)^0.5 = 1 /(1.693147) = 0.590
             *
             * score = 1 * 2.8667 * 1 * 1 * 0.590 = 1.69
             */
            Assert.IsTrue(doc0.Score == 1.6931472f, doc0.Score + " does not equal: " + 1.6931472f);
        }
Exemple #2
0
    // Update is called once per frame
    void Update()
    {
        RaycastHit hit;

        if (Physics.Raycast(transform.position, -Vector3.forward, out hit))
        {
            Debug.Log(hit.collider.gameObject.name);
            TestHit test = hit.transform.gameObject.GetComponent <TestHit>();
            if (test)
            {
                test.HitByRay(parent);
            }
        }
    }
Exemple #3
0
        public virtual void  Test()
        {
            Term      allTerm   = new Term(FIELD, "all");
            TermQuery termQuery = new TermQuery(allTerm);

            Weight weight = termQuery.Weight(indexSearcher);

            TermScorer ts = new TermScorer(weight, indexReader.TermDocs(allTerm), indexSearcher.GetSimilarity(), indexReader.Norms(FIELD));

            //we have 2 documents with the term all in them, one document for all the other values
            System.Collections.IList docs = new System.Collections.ArrayList();
            //must call next first


            ts.Score(new AnonymousClassCollector(docs, this));
            Assert.IsTrue(docs.Count == 2, "docs Size: " + docs.Count + " is not: " + 2);
            TestHit doc0 = (TestHit)docs[0];
            TestHit doc5 = (TestHit)docs[1];

            //The scores should be the same
            Assert.IsTrue(doc0.score == doc5.score, doc0.score + " does not equal: " + doc5.score);

            /*
             * Score should be (based on Default Sim.:
             * All floats are approximate
             * tf = 1
             * numDocs = 6
             * docFreq(all) = 2
             * idf = ln(6/3) + 1 = 1.693147
             * idf ^ 2 = 2.8667
             * boost = 1
             * lengthNorm = 1 //there is 1 term in every document
             * coord = 1
             * sumOfSquaredWeights = (idf * boost) ^ 2 = 1.693147 ^ 2 = 2.8667
             * queryNorm = 1 / (sumOfSquaredWeights)^0.5 = 1 /(1.693147) = 0.590
             *
             * score = 1 * 2.8667 * 1 * 1 * 0.590 = 1.69
             *
             */
            Assert.IsTrue(doc0.score == 1.6931472f, doc0.score + " does not equal: " + 1.6931472f);
        }