@Override public int getNumberOfDocumentsAfterFiltering() { return results.size(); }
@Override public int getNumberOfDocumentsAfterFiltering() { return results.size(); }
public default double getMaxScore(){ return this.size() > 0 ? this.get(0).score : 0d; }
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; }
@Test public void itWorksBlocksFeatures() throws Exception { Index index = IndexTestUtils.makeIndexBlocks(new String[]{"doc1"}, new String[]{"token1 token2 token3"}); // String path = ((IndexOnDisk)index).getPath(); // String prefix = ((IndexOnDisk)index).getPrefix(); int port = new Random().nextInt(65536-1024)+1024; System.err.println("itWorksBlocksFeatures: Index is " + index.getIndexRef().toString()); String uri = "http://127.0.0.1:"+port+"/"; HttpServer server = makeServer(index, uri); SearchResource.reinit(); index.close(); ApplicationSetup.setProperty("fat.featured.scoring.matching.features", "WMODEL:BM25;WMODEL:PL2;DSM:"+DFRDependenceScoreModifier.class.getSimpleName()); Manager restManager = ManagerFactory.from(IndexRef.of(uri)); assertNotNull(restManager); SearchRequest srq = restManager.newSearchRequestFromQuery("\"token1 token2\""); srq.setControl(SearchRequest.CONTROL_MATCHING, FatFeaturedScoringMatching.class.getName() + "," + FatFull.class.getName() ); restManager.runSearchRequest(srq); assertEquals(1, srq.getResults().size()); assertEquals("doc1", srq.getResults().get(0).getMetadata("docno")); server.shutdown().get(); //IndexUtil.deleteIndex(path, prefix); }
@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 itWorks() throws Exception { Index index = IndexTestUtils.makeIndex(new String[]{"doc1"}, new String[]{"token1 token2 token3"}); // String path = ((IndexOnDisk)index).getPath(); // String prefix = ((IndexOnDisk)index).getPrefix(); int port = new Random().nextInt(65536-1024)+1024; String uri = "http://127.0.0.1:"+port+"/"; System.err.println("itWorks: Index is " + index.getIndexRef().toString()); HttpServer server = makeServer(index, uri); SearchResource.reinit(); index.close(); Manager restManager = ManagerFactory.from(IndexRef.of(uri)); assertNotNull(restManager); SearchRequest srq = restManager.newSearchRequestFromQuery("token1"); restManager.runSearchRequest(srq); assertEquals(1, srq.getResults().size()); assertEquals("doc1", srq.getResults().get(0).getMetadata("docno")); server.shutdown().get(); //IndexUtil.deleteIndex(path, prefix); }
@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")); }