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); }
// 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); } } }
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); }