/** * 文章全文检索 * * @param search * @return */ @SuppressWarnings("unchecked") public List<Articles> searchAtl(String search) { List<Articles> list = Collections.EMPTY_LIST; try { search = urlDecode(search); logger.info("全文检索内容:" + search); if (search != null && !search.equals("")) { list = atlFullTextManager.queryContent("title", getSearchParam(search)); } } catch (ParseException e) { logger.error("全文检索失败:" + e.toString()); } return list; }
public void testRange() throws IOException, InvalidGeoException { double k1 = 2.0d; double b = 0.75d; double epslon = 0.05d; QueryConfiguration queryConfiguration = new QueryConfiguration(); queryConfiguration.setProperty("bm25.idf.policy", "floor_epslon"); queryConfiguration.setProperty("bm25.idf.epslon", "" + epslon); queryConfiguration.setProperty("bm25.k1", "" + k1); queryConfiguration.setProperty("bm25.b", "" + b); LgteIndexSearcherWrapper searcher = new LgteIndexSearcherWrapper(Model.OkapiBM25Model, pathUnique); IndexReader readerMulti1 = LgteIndexManager.openReader(pathMulti1, Model.OkapiBM25Model); IndexReader readerMulti2 = LgteIndexManager.openReader(pathMulti2, Model.OkapiBM25Model); Map<String, IndexReader> readers = new HashMap<String, IndexReader>(); readers.put("contents1", readerMulti1); readers.put("contents2", readerMulti2); LgteIndexSearcherWrapper searcherMulti = new LgteIndexSearcherWrapper(Model.OkapiBM25Model, new LgteIsolatedIndexReader(readers)); try { LgteQuery lgteQuery = LgteQueryParser.parseQuery( "contents1:(word2 word67 word1*) contents2:(word1* word2 word67)", searcher, queryConfiguration); LgteHits lgteHits = searcher.search(lgteQuery); LgteQuery lgteQueryMulti = LgteQueryParser.parseQuery( "contents1:(word1* word2 word67) contents2:(word1* word2 word67)", searcherMulti, queryConfiguration); LgteHits lgteHitsMulti = searcherMulti.search(lgteQueryMulti); System.out.println("EXPECTED"); System.out.println( "doc:" + lgteHits.doc(0).get(Globals.DOCUMENT_ID_FIELD) + ":" + lgteHits.score(0)); System.out.println( "doc:" + lgteHits.doc(1).get(Globals.DOCUMENT_ID_FIELD) + ":" + lgteHits.score(1)); System.out.println( "doc:" + lgteHits.doc(2).get(Globals.DOCUMENT_ID_FIELD) + ":" + lgteHits.score(2)); System.out.println("RETURN:"); System.out.println( "doc:" + lgteHitsMulti.doc(0).get(Globals.DOCUMENT_ID_FIELD) + ":" + lgteHitsMulti.score(0)); System.out.println( "doc:" + lgteHitsMulti.doc(1).get(Globals.DOCUMENT_ID_FIELD) + ":" + lgteHitsMulti.score(1)); System.out.println( "doc:" + lgteHitsMulti.doc(2).get(Globals.DOCUMENT_ID_FIELD) + ":" + lgteHitsMulti.score(2)); assertEquals( lgteHits.doc(0).get(Globals.DOCUMENT_ID_FIELD), lgteHitsMulti.doc(0).get(Globals.DOCUMENT_ID_FIELD)); assertEquals( lgteHits.doc(1).get(Globals.DOCUMENT_ID_FIELD), lgteHitsMulti.doc(1).get(Globals.DOCUMENT_ID_FIELD)); assertEquals( lgteHits.doc(2).get(Globals.DOCUMENT_ID_FIELD), lgteHitsMulti.doc(2).get(Globals.DOCUMENT_ID_FIELD)); assertEquals(lgteHits.score(0), lgteHitsMulti.score(0)); assertEquals(lgteHits.score(1), lgteHitsMulti.score(1)); assertEquals(lgteHits.score(2), lgteHitsMulti.score(2)); } catch (ParseException e) { fail(e.toString()); } searcher.close(); }