package querqy.solr; import org.apache.solr.SolrTestCaseJ4; import org.apache.solr.common.params.DisMaxParams; import org.apache.solr.request.SolrQueryRequest; import org.apache.solr.search.QueryParsing; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; @SolrTestCaseJ4.SuppressSSL public class DocumentFrequencyCorrectionTest extends SolrTestCaseJ4 { public void index() throws Exception { assertU(adoc("id", "1", "f1", "a")); assertU(commit()); assertU(adoc("id", "2", "f1", "a", "f2", "b")); assertU(adoc("id", "3", "f1", "a", "f2", "c")); assertU(adoc("id", "4", "f1", "a", "f2", "k")); assertU(commit()); assertU(adoc("id", "5", "f1", "a", "f2", "k")); assertU(adoc("id", "6", "f1", "a", "f2", "k")); assertU(adoc("id", "7", "f1", "a", "f2", "k")); assertU(commit()); } @BeforeClass public static void beforeTests() throws Exception { initCore("solrconfig-boost.xml", "schema.xml"); } @Override @Before public void setUp() throws Exception { super.setUp(); clearIndex(); index(); } @Test public void testDfGetsCorrectedForBoostUp() throws Exception { String q = "a c"; SolrQueryRequest req = req("q", q, DisMaxParams.QF, "f1 f2", QueryParsing.OP, "OR", DisMaxParams.TIE, "0.1", "defType", "querqy", "debugQuery", "true" ); assertQ("wrong df", req, "//str[@name='2'][contains(.,'7.0 = docFreq')]", "//str[@name='2'][not(contains(.,'1.0 = docFreq'))]", "//str[@name='7'][contains(.,'10.0 = docFreq')]", "//str[@name='7'][not(contains(.,'4.0 = docFreq'))]"); req.close(); } }