Package proj.zoie.service.api

Examples of proj.zoie.service.api.SearchResult


  public boolean subTransaction1(TestQuery dummy) throws Exception
  {
    boolean result = true;
    TestQuery tq = (TestQuery) _queries.next();
    long beginTime = System.currentTimeMillis();
    SearchResult sres;
    try
    {
      sres = _service.search(tq.getRequest());
    }
    catch (Exception e)
    {
      if (_logger != null)
      {
        _logger.info("FAILURE-INFO: Query Failed: " + tq.getQueryText() + " : "
            + (System.currentTimeMillis() - beginTime));
      }
      throw e;
    }
    long diff = System.currentTimeMillis() - beginTime;
    if (sres == null)
    {
      result = false;
    }
    if (result)
    {
      _logger.info("TIME-TAKEN: " + tq.getQueryText() + " : " + sres.getTotalHits()
          + " : " + diff);
    }
    else
    {
      if (_logger != null)
View Full Code Here


  public SearchResult search(SearchRequest req) throws ZoieException{
    String queryString=req.getQuery();
    Analyzer analyzer=_idxReaderFactory.getAnalyzer();
    QueryParser qparser=new QueryParser(Version.LUCENE_CURRENT,"content",analyzer);
   
    SearchResult result=new SearchResult();
   
    List<ZoieIndexReader<R>> readers=null;

    MultiReader multiReader=null;
    Searcher searcher = null;
    try
    {
      Query q=null;
      if (queryString == null || queryString.length() ==0)
      {
        q = new MatchAllDocsQuery();
      }
      else
      {
        q = qparser.parse(queryString);
      }
      readers=_idxReaderFactory.getIndexReaders();
      multiReader=new MultiReader(readers.toArray(new IndexReader[readers.size()]), false);
      searcher=new IndexSearcher(multiReader);
     
      long start=System.currentTimeMillis();
      TopDocs docs=searcher.search(q, null, 10);
      long end=System.currentTimeMillis();
     
      result.setTime(end-start);
      result.setTotalDocs(multiReader.numDocs());
      result.setTotalHits(docs.totalHits);
     

      ScoreDoc[] scoreDocs=docs.scoreDocs;
      ArrayList<SearchHit> hitList=new ArrayList<SearchHit>(scoreDocs.length);
      for (ScoreDoc scoreDoc : scoreDocs)
      {
        SearchHit hit=new SearchHit();
        hit.setScore(scoreDoc.score);
        int docid=scoreDoc.doc;
       
        Document doc=multiReader.document(docid);
        String content=doc.get("content");
       
        Scorer qs=new QueryScorer(q);
       
        SimpleHTMLFormatter formatter=new SimpleHTMLFormatter("<span class=\"hl\">","</span>");
        Highlighter hl=new Highlighter(formatter,qs);
        String[] fragments=hl.getBestFragments(analyzer, "content",content, 1);
       
        Map<String,String[]> fields=convert(doc);
        fields.put("fragment",fragments);
        hit.setFields(fields);
        hitList.add(hit);
      }
     
      result.setHits(hitList.toArray(new SearchHit[hitList.size()]));
      return result;
    }
    catch(Exception e)
    {
      log.error(e.getMessage(),e);
View Full Code Here

  long start = System.nanoTime();
    String queryString=req.getQuery();
  Analyzer analyzer=_idxReaderFactory.getAnalyzer();
  QueryParser qparser=new QueryParser(Version.LUCENE_CURRENT,"content",analyzer);
 
  SearchResult result=new SearchResult();
 
  List<R> readers=null;
  Searcher searcher = null;
  MultiReader multiReader=null;
  try
  {
    Query q=null;
    if (queryString == null || queryString.length() ==0)
    {
      q = new MatchAllDocsQuery();
    }
    else
    {
      q = qparser.parse(queryString);
    }
    readers=_idxReaderFactory.getIndexReaders();
    multiReader=new MultiReader(readers.toArray(new IndexReader[readers.size()]));
    searcher=new IndexSearcher(multiReader);
    TopDocs hits = searcher.search(q,10);
    result.setTotalDocs(multiReader.numDocs());
    result.setTotalHits(hits.totalHits);
    long end = System.nanoTime();
    long latency = (end-start)/NANOS_IN_MILLI;
    result.setTime(latency);
   
    int count = _numSearches.get();
    int index = count%SAMPLE_SIZE;
   
    _sum+=latency;
   
    if (count>SAMPLE_SIZE){
      _sum-=_latencies[index];
    }
//      countQuery((end / 1000 * NANOS_IN_MILLI));
//      now = end - now;
//      _latencies.add( (int)(now / NANOS_IN_MILLI));
//      _numHits.add(hits.totalHits);
    _latencies[index]=(int)latency;
    _numHits[index]=hits.totalHits;
   
    log.info("search=[query=" + req.getQuery() + "]" + ", searchResult=[numSearchResults=" + result.getTotalHits() + ";numTotalDocs=" + result.getTotalDocs() + "]" + "in " + result.getTime() + "ms");
      _numSearches.incrementAndGet();
      return result;
  }
  catch(Exception e)
  {
View Full Code Here

      final ZoieSearchService svc = (ZoieSearchService) (factoryBean.getObject());
     
      SearchRequest req = new SearchRequest();
     // req.setQuery("java");
      SearchResult res = svc.search(req);

      System.out.println("hits: "+res.getTotalHits()+" time: "+res.getTime());
  }
View Full Code Here

  public SearchResult search(SearchRequest req) throws ZoieException {
    String queryString = req.getQuery();
    Analyzer analyzer = _idxReaderFactory.getAnalyzer();
    QueryParser qparser = new QueryParser(Version.LUCENE_43, "content", analyzer);

    SearchResult result = new SearchResult();

    List<ZoieMultiReader<R>> readers = null;

    MultiReader multiReader = null;
    IndexSearcher searcher = null;
    try {
      Query q = null;
      if (queryString == null || queryString.length() == 0) {
        q = new MatchAllDocsQuery();
      } else {
        q = qparser.parse(queryString);
      }
      readers = _idxReaderFactory.getIndexReaders();
      multiReader = new MultiReader(readers.toArray(new IndexReader[readers.size()]), false);
      searcher = new IndexSearcher(multiReader);

      long start = System.currentTimeMillis();
      TopDocs docs = searcher.search(q, null, 10);
      long end = System.currentTimeMillis();

      result.setTime(end - start);
      result.setTotalDocs(multiReader.numDocs());
      result.setTotalHits(docs.totalHits);

      ScoreDoc[] scoreDocs = docs.scoreDocs;
      ArrayList<SearchHit> hitList = new ArrayList<SearchHit>(scoreDocs.length);
      for (ScoreDoc scoreDoc : scoreDocs) {
        SearchHit hit = new SearchHit();
        hit.setScore(scoreDoc.score);
        int docid = scoreDoc.doc;

        Document doc = multiReader.document(docid);
        String content = doc.get("content");

        Scorer qs = new QueryScorer(q);

        SimpleHTMLFormatter formatter = new SimpleHTMLFormatter("<span class=\"hl\">", "</span>");
        Highlighter hl = new Highlighter(formatter, qs);
        String[] fragments = hl.getBestFragments(analyzer, "content", content, 1);

        Map<String, String[]> fields = convert(doc);
        fields.put("fragment", fragments);
        hit.setFields(fields);
        hitList.add(hit);
      }

      result.setHits(hitList.toArray(new SearchHit[hitList.size()]));
      return result;
    } catch (Exception e) {
      log.error(e.getMessage(), e);
      throw new ZoieException(e.getMessage(), e);
    } finally {
View Full Code Here

TOP

Related Classes of proj.zoie.service.api.SearchResult

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.