public void TestFuzzyLikeThisQueryEquals() { Analyzer analyzer = new MockAnalyzer(Random); FuzzyLikeThisQuery fltq1 = new FuzzyLikeThisQuery(10, analyzer); fltq1.AddTerms("javi", "subject", 0.5f, 2); FuzzyLikeThisQuery fltq2 = new FuzzyLikeThisQuery(10, analyzer); fltq2.AddTerms("javi", "subject", 0.5f, 2); assertEquals("FuzzyLikeThisQuery with same attributes is not equal", fltq1, fltq2); }
public void TestNonExistingField() { FuzzyLikeThisQuery flt = new FuzzyLikeThisQuery(10, analyzer); flt.AddTerms("jonathin smoth", "name", 0.3f, 1); flt.AddTerms("jonathin smoth", "this field does not exist", 0.3f, 1); // don't fail here just because the field doesn't exits Query q = flt.Rewrite(searcher.IndexReader); HashSet <Term> queryTerms = new HashSet <Term>(); q.ExtractTerms(queryTerms); assertTrue("Should have variant jonathan", queryTerms.contains(new Term("name", "jonathan"))); assertTrue("Should have variant smith", queryTerms.contains(new Term("name", "smith"))); TopDocs topDocs = searcher.Search(flt, 1); ScoreDoc[] sd = topDocs.ScoreDocs; assertTrue("score docs must match 1 doc", (sd != null) && (sd.Length > 0)); Document doc = searcher.Doc(sd[0].Doc); assertEquals("Should match most similar when using 2 words", "2", doc.Get("id")); }
public void TestNoMatchFirstWordBug() { FuzzyLikeThisQuery flt = new FuzzyLikeThisQuery(10, analyzer); flt.AddTerms("fernando smith", "name", 0.3f, 1); Query q = flt.Rewrite(searcher.IndexReader); HashSet <Term> queryTerms = new HashSet <Term>(); q.ExtractTerms(queryTerms); assertTrue("Should have variant smith", queryTerms.contains(new Term("name", "smith"))); TopDocs topDocs = searcher.Search(flt, 1); ScoreDoc[] sd = topDocs.ScoreDocs; assertTrue("score docs must match 1 doc", (sd != null) && (sd.Length > 0)); Document doc = searcher.Doc(sd[0].Doc); assertEquals("Should match most similar when using 2 words", "2", doc.Get("id")); }
public void TestClosestEditDistanceMatchComesFirst() { FuzzyLikeThisQuery flt = new FuzzyLikeThisQuery(10, analyzer); flt.AddTerms("smith", "name", 0.3f, 1); Query q = flt.Rewrite(searcher.IndexReader); ISet <Term> queryTerms = new JCG.HashSet <Term>(); q.ExtractTerms(queryTerms); assertTrue("Should have variant smythe", queryTerms.contains(new Term("name", "smythe"))); assertTrue("Should have variant smith", queryTerms.contains(new Term("name", "smith"))); assertTrue("Should have variant smyth", queryTerms.contains(new Term("name", "smyth"))); TopDocs topDocs = searcher.Search(flt, 1); ScoreDoc[] sd = topDocs.ScoreDocs; assertTrue("score docs must match 1 doc", (sd != null) && (sd.Length > 0)); Document doc = searcher.Doc(sd[0].Doc); assertEquals("Should match most similar not most rare variant", "2", doc.Get("id")); }