public SearchRequest search(String query, int rankingDepth) { System.err.println("Running search for '"+query+"' to depth "+rankingDepth); StringBuffer sb = new StringBuffer(); sb.append(query); Manager queryingManager = ManagerFactory.from(memIndex.getIndexRef()); SearchRequest srq = queryingManager.newSearchRequest("query", sb.toString()); srq.setOriginalQuery(sb.toString()); srq.setControl("decorate", "on"); queryingManager.runSearchRequest(srq); System.err.println("Returned "+srq.getResults().size()+" documents"); return srq; }
public SearchRequest search(String query, int rankingDepth) { System.err.println("Running search for '"+query+"' to depth "+rankingDepth); StringBuffer sb = new StringBuffer(); sb.append(query); Manager queryingManager = ManagerFactory.from(memIndex.getIndexRef()); SearchRequest srq = queryingManager.newSearchRequest("query", sb.toString()); srq.setOriginalQuery(sb.toString()); srq.setControl("decorate", "on"); queryingManager.runSearchRequest(srq); System.err.println("Returned "+srq.getResults().size()+" documents"); return srq; }
SearchRequest performQuery(Manager m, String query) { SearchRequest srq = m.newSearchRequest("test", query); srq.setControl(SearchRequest.CONTROL_WMODEL, TF_IDF.class.getName()); m.runSearchRequest(srq); return srq; }
/** * According to the given parameters, it sets up the correct matching class. * @param queryId String the query identifier to use. * @param query String the query to process. */ public SearchRequest processQuery(String queryId, String query) { SearchRequest srq = queryingManager.newSearchRequest(queryId, query); if (matchopQl) { srq.setControl("parsecontrols", "off"); srq.setControl("parseql", "off"); srq.setControl("terrierql", "off"); srq.setControl("matchopql", "on"); } this.controls.forEach((k,v) -> srq.setControl(k, v)); matchingCount++; queryingManager.runSearchRequest(srq); return srq; }
/** * According to the given parameters, it sets up the correct matching class. * @param queryId String the query identifier to use. * @param query String the query to process. */ public SearchRequest processQuery(String queryId, String query) { SearchRequest srq = queryingManager.newSearchRequest(queryId, query); if (matchopQl) { srq.setControl("parsecontrols", "off"); srq.setControl("parseql", "off"); srq.setControl("terrierql", "off"); srq.setControl("matchopql", "on"); } this.controls.forEach((k,v) -> srq.setControl(k, v)); matchingCount++; queryingManager.runSearchRequest(srq); return srq; }
printSettings(queryingManager.newSearchRequest(""), querySource.getInfo(), "# run started at: " + startTime
public ResultSet retrieve(String query) { StringBuffer sb = new StringBuffer(); sb.append(query); Manager queryingManager = new LocalManager((Index)index); SearchRequest srq = queryingManager.newSearchRequest("query", sb.toString()); srq.setControl(SearchRequest.CONTROL_WMODEL,"DirichletLM"); srq.setOriginalQuery(sb.toString()); queryingManager.runSearchRequest(srq); return ((Request) srq).getResultSet(); }
printSettings(queryingManager.newSearchRequest(""), querySource.getInfo(), "# run started at: " + startTime
SearchRequest srq = queryingManager.newSearchRequest(queryId, query); if (super.matchopQl)
SearchRequest srq = queryingManager.newSearchRequest(queryId, query); if (super.matchopQl)
@Test public void testCountingQueryTerms() throws Exception { Index index = IndexTestUtils.makeIndex(new String[]{"doc1"}, new String[]{"The quick brown fox jumps over the lazy dog"}); Manager m = new LocalManager(index); SearchRequest srq; MatchingQueryTerms mqt; srq = m.newSearchRequest("testQuery", "fox fox dog"); srq.setControl(SearchRequest.CONTROL_WMODEL, PL2.class.getName()); m.runSearchRequest(srq); mqt = ((Request)srq).getMatchingQueryTerms(); assertEquals(1d, mqt.getTermWeight("fox"), 0.0d); assertEquals(0.5d, mqt.getTermWeight("dog"), 0.0d); srq = m.newSearchRequest("testQuery", "fox fox dog^1.3"); srq.setControl(SearchRequest.CONTROL_WMODEL, PL2.class.getName()); m.runSearchRequest(srq); mqt = ((Request)srq).getMatchingQueryTerms(); assertEquals(1d, mqt.getTermWeight("fox"), 0.0d); assertEquals(1.3d/2d, mqt.getTermWeight("dog"), 0.0d); }
public static ResultSet query(String query,Index index) { ApplicationSetup.setProperty("ignore.low.idf.terms", "false"); Manager mgr = new LocalManager(index); assertNotNull(mgr); SearchRequest srq = mgr.newSearchRequest(query, query); assertNotNull(srq); srq.setControl(SearchRequest.CONTROL_WMODEL, "TF_IDF"); mgr.runSearchRequest(srq); ResultSet result = ((Request) srq).getResultSet(); assertNotNull(result); return result; }
srq = m.newSearchRequest("test1", "dog"); srq.setControl(SearchRequest.CONTROL_WMODEL, PL2.class.getName()); srq.setControl(SearchRequest.CONTROL_MATCHING, getMatchingClass().getName()); srq = m.newSearchRequest("test2", "brown window"); srq.setControl(SearchRequest.CONTROL_WMODEL, PL2.class.getName()); srq.setControl(SearchRequest.CONTROL_MATCHING, getMatchingClass().getName()); srq = m.newSearchRequest("test3", "dog +window"); srq.setControl(SearchRequest.CONTROL_WMODEL, PL2.class.getName()); srq.setControl(SearchRequest.CONTROL_MATCHING, getMatchingClass().getName()); srq = m.newSearchRequest("test4", "dog -fox"); srq.setControl(SearchRequest.CONTROL_WMODEL, PL2.class.getName()); srq.setControl(SearchRequest.CONTROL_MATCHING, getMatchingClass().getName()); srq = m.newSearchRequest("test5", "+dog +fox"); srq.setControl(SearchRequest.CONTROL_WMODEL, PL2.class.getName()); srq.setControl(SearchRequest.CONTROL_MATCHING, getMatchingClass().getName());
@Test public void testSimpleRetrieval() throws Exception { Index index = IndexTestUtils.makeIndex(new String[]{"doc1"}, new String[]{"The quick brown fox jumps over the lazy dog"}); Manager m = new LocalManager(index); SearchRequest srq; srq = m.newSearchRequest("testQuery", "fox fox dog"); srq.setControl(SearchRequest.CONTROL_WMODEL, PL2.class.getName()); m.runSearchRequest(srq); assertNotNull(((Request) srq).getResultSet()); assertEquals(1, ((Request) srq).getResultSet().getResultSize()); assertEquals(0, ((Request) srq).getResultSet().getDocids()[0]); }
@Test public void testRequirementsFields() throws Exception { ApplicationSetup.setProperty("FieldTags.process", "title,content"); Index index = IndexTestUtils.makeIndexFields( new String[]{"doc1", "doc2"}, new String[]{ "<title>Animal</title><content>The quick brown fox jumps over the lazy dog</content>", //doc1 "<title>Dog</title><content>how much is that animal in the window</content>"}); //doc2 Manager m = new LocalManager(index); SearchRequest srq = null; //4, are documents retrieved: two terms, one of which is negative requirement srq = m.newSearchRequest("test1", "dog -title:Animal"); srq.setControl(SearchRequest.CONTROL_WMODEL, PL2.class.getName()); srq.setControl(SearchRequest.CONTROL_MATCHING, getMatchingClass().getName()); m.runSearchRequest(srq); //System.err.println(srq.getResultSet().getResultSize()); /*for (int i =0; i<srq.getResultSet().getDocids().length; i++) { System.err.println(" "+srq.getResultSet().getDocids()[i]+" "+srq.getResultSet().getScores()[i]); }*/ assertEquals(1, srq.getResults().size()); assertEquals(1, srq.getResults().get(0).getDocid()); }
@Test public void testOneDocument() throws Exception { Index index = createIndex(); Manager m = new LocalManager(index); SearchRequest srq = m.newSearchRequest("test", "fox"); srq.setControl(SearchRequest.CONTROL_WMODEL, TF_IDF.class.getName()); m.runSearchRequest(srq); ResultSet rs = ((Request) srq).getResultSet(); assertEquals(1, rs.getResultSize()); SimpleDecorate decorate = new SimpleDecorate(); decorate.new_query(m, srq, rs); decorate.filter(m, srq, rs, 0, rs.getDocids()[0]); assertEquals(1, rs.getMetaKeys().length); assertEquals("doc1", rs.getMetaItems("filename")[0]); }
ResultSet rs; SearchRequest search = matching.newSearchRequest("test", "dog +window"); search.setControl(SearchRequest.CONTROL_WMODEL, DPH.class.getName());
@Test public void testTwoDocuments() throws Exception { Index index = createIndex(); Manager m = new LocalManager(index); SearchRequest srq = m.newSearchRequest("test", "fox foxes"); srq.setControl(SearchRequest.CONTROL_WMODEL, TF_IDF.class.getName()); m.runSearchRequest(srq); ResultSet rs = ((Request) srq).getResultSet(); assertEquals(2, rs.getResultSize()); SimpleDecorate decorate = new SimpleDecorate(); decorate.new_query(m, srq, rs); decorate.filter(m, srq, rs, 0, rs.getDocids()[0]); decorate.filter(m, srq, rs, 1, rs.getDocids()[1]); assertEquals(1, rs.getMetaKeys().length); assertEquals("doc1", rs.getMetaItems("filename")[1]); assertEquals("doc2", rs.getMetaItems("filename")[0]); } }
protected ResultSet _testOneDocumentTwoTermsNegativeMatch() throws Exception { Index index = IndexTestUtils.makeIndex( new String[]{"doc1", "doc2"}, new String[]{ "The quick brown fox jumps over the lazy dog", "how much is that dog in the window"}); System.err.println("testTwoDocumentsNegativeMatch: " + index.toString()); assertNotNull(index); assertEquals(2, index.getCollectionStatistics().getNumberOfDocuments()); Manager matching = new LocalManager(index); assertNotNull(matching); ResultSet rs; SearchRequest search = matching.newSearchRequest("test", "dog -window"); search.setControl(SearchRequest.CONTROL_WMODEL, DPH.class.getName()); //search.addMatchingModel("Matching", "DPH"); search.setOriginalQuery("dog -window"); matching.runSearchRequest(search); rs = ((Request)search).getResultSet(); assertNotNull(rs); assertEquals(1, rs.getResultSize()); TIntHashSet docids = new TIntHashSet(rs.getDocids()); System.err.println("" + rs.getDocids()[0] + " "+ rs.getScores()[0]); assertTrue(docids.contains(0)); assertEquals(0, rs.getDocids()[0]); assertTrue(rs.getScores()[0] > 0); return rs; }
@Test public void testOneDocumentTwoKeys() throws Exception { Index index = createIndexAbstract(); Manager m = new LocalManager(index); SearchRequest srq = m.newSearchRequest("test", "fox"); srq.setControl(SearchRequest.CONTROL_WMODEL, TF_IDF.class.getName()); m.runSearchRequest(srq); ResultSet rs = ((Request) srq).getResultSet(); assertEquals(1, rs.getResultSize()); SimpleDecorate decorate = new SimpleDecorate(); decorate.new_query(m, srq, rs); decorate.filter(m, srq, rs, 0, rs.getDocids()[0]); assertEquals(2, rs.getMetaKeys().length); assertEquals("doc1", rs.getMetaItems("filename")[0]); assertEquals("The quick brown fox jumps over the lazy dog", StringTools.escape(ESCAPE.JAVA, rs.getMetaItems("abstract")[0])); ScoredDocList res2 = srq.getResults(); assertEquals(1, res2.size()); ScoredDoc doc1 = res2.get(0); assertEquals(0, doc1.getDocid()); assertEquals("doc1", doc1.getMetadata("filename")); assertEquals("The quick brown fox jumps over the lazy dog", doc1.getMetadata("abstract")); }