Examples of SenseiResult


Examples of com.senseidb.search.req.SenseiResult

  public void testSenseiResultParsing()
      throws Exception
  {
    SenseiRequest aRequest = createNonRandomSenseiRequest();
    SenseiResult aResult = createMockResultFromRequest(aRequest);
    JSONObject resultJSONObj = DefaultSenseiJSONServlet.buildJSONResult(aRequest, aResult);
    SenseiResult bResult = HttpRestSenseiServiceImpl.buildSenseiResult(resultJSONObj);
    assertEquals(aResult, bResult);
  }
View Full Code Here

Examples of com.senseidb.search.req.SenseiResult

    SenseiResult bResult = HttpRestSenseiServiceImpl.buildSenseiResult(resultJSONObj);
    assertEquals(aResult, bResult);
  }

  private SenseiResult createMockResultFromRequest(SenseiRequest request) {
    SenseiResult result = new SenseiResult();

    result.setParsedQuery("This is my parsed query value");
    result.setTime(Long.MAX_VALUE / 2);
    result.setNumHits(Integer.MAX_VALUE / 2);
    result.setTid(1);
    result.setTotalDocs(512);
    result.setHits(createSenseiHits(10));
    result.addAll(createFacetAccessibleMap(request));

    return result;
  }
View Full Code Here

Examples of com.senseidb.search.req.SenseiResult

    facetSpec.getProperties().put(AttributesFacetHandler.MAX_FACETS_PER_KEY_PROP_NAME, "1");
    setspec(req, facetSpec);
    req.setCount(5);
    req.setFacetSpec("object_properties", facetSpec);
    //setspec(req, facetSpecall);
    SenseiResult res = broker.browse(req);
    List<BrowseFacet> facets = res.getFacetAccessor("object_properties").getFacets();
    assertTrue(facets.toString(),facets.size() > 8);
    assertTrue(facets.toString(), facets.size() <= 20);
   
 
  }
View Full Code Here

Examples of com.senseidb.search.req.SenseiResult

    facetSpec.getProperties().put(AttributesFacetHandler.MAX_FACETS_PER_KEY_PROP_NAME, "11");
    setspec(req, facetSpec);
    req.setCount(200);
    req.setFacetSpec("object_properties", facetSpec);
    //setspec(req, facetSpecall);
    SenseiResult res = broker.browse(req);
    List<BrowseFacet> facets = res.getFacetMap().get("object_properties").getFacets();
    assertEquals("" + facets.size(), 100, facets.size() )
  }
View Full Code Here

Examples of com.senseidb.search.req.SenseiResult

  {
    return "node";
  }
 
  private SenseiResult browse(SenseiRequest senseiRequest, MultiBoboBrowser browser, BrowseRequest req, SubReaderAccessor<BoboIndexReader> subReaderAccessor) throws BrowseException, IOException, Exception {
      final SenseiResult result = new SenseiResult();

      long start = System.currentTimeMillis();
      int offset = req.getOffset();
      int count = req.getCount();

      if (offset < 0 || count < 0)
      {
        throw new IllegalArgumentException("both offset and count must be > 0: " + offset + "/" + count);
      }

      final Collector collector = senseiRequest.buildCollector(req.getQuery());
      BrowseResult res = null;
      BrowseHit[] hits = null;

      ScoreDoc[] scoreDocs = null;
      float [][] features = null;
      int totalHits;

      if (collector == null) {

        if (senseiRequest.isSimpleRelevance())
        {
          browser.setSimilarity(new SimpleTFSimilarity());
        }
        res = browser.browse(req);
        hits = res.getHits();
      }
      else {
        Map<String, FacetAccessible> facetCollectors = new HashMap<String, FacetAccessible>();
        Weight w = req.getQuery().createWeight(browser);
        browser.browse(req, w, collector, facetCollectors, offset);

        try {
          /**
           * A custom collector must implement topDocs() method and a getHitsFeatures() method.
           */
          scoreDocs = (ScoreDoc[]) collector.getClass().getMethod(TOP_DOCS_METHOD).invoke(collector);
          features = (float[][]) collector.getClass().getMethod(GET_HITS_FEATURES_METHOD).invoke(collector);
          hits = new BrowseHit[scoreDocs.length];
          Map<String, FacetHandler<?>> facetHandlerMap = browser.getFacetHandlerMap();

          int i = 0;

          for (ScoreDoc doc : scoreDocs) {
            BrowseHit hit = new BrowseHit();
            hit.setScore(doc.score);
            hit.setDocid(doc.doc);

            Map<String,String[]> map = new HashMap<String,String[]>();
            Map<String,Object[]> rawMap = new HashMap<String,Object[]>();

            for (Map.Entry<String, FacetHandler<?>> entry : facetHandlerMap.entrySet()) {
              map.put(entry.getKey(), browser.getFieldVal(doc.doc, entry.getKey()));
              rawMap.put(entry.getKey(), browser.getRawFieldVal(doc.doc, entry.getKey()));
            }

            hit.setFieldValues(map);
            hit.setRawFieldValues(rawMap);
            hits[i++] = hit;
          }

          res = new BrowseResult();
          res.setHits(hits);
          res.addAll(facetCollectors);
          res.setTid(req.getTid());

          totalHits = (Integer) collector.getClass().getMethod(GET_TOTAL_HITS_METHOD).invoke(collector);
          res.setNumHits(totalHits);
          res.setNumGroups(totalHits);
        } catch (Exception e) {
          logger.error(e.getMessage(), e);
        }

      }

      if (req.getMapReduceWrapper() != null) {
        result.setMapReduceResult(req.getMapReduceWrapper().getResult());
      }

      SenseiHit[] senseiHits = new SenseiHit[hits.length];
      Set<String> selectSet = senseiRequest.getSelectSet();
      for (int i = 0; i < hits.length; i++)
      {
        BrowseHit hit = hits[i];
        SenseiHit senseiHit = new SenseiHit();

        int docid = hit.getDocid();
        SubReaderInfo<BoboIndexReader> readerInfo = subReaderAccessor.getSubReaderInfo(docid);
        Long uid = (Long)hit.getRawField(PARAM_RESULT_HIT_UID);
        if (uid == null)
          uid = ((ZoieIndexReader<BoboIndexReader>) readerInfo.subreader.getInnerReader()).getUID(readerInfo.subdocid);
        senseiHit.setUID(uid);
        senseiHit.setDocid(docid);
        senseiHit.setScore(hit.getScore());
        senseiHit.setComparable(hit.getComparable());
        if (selectSet != null && selectSet.size() != 0)
        {
          // Clear the data those are not used:
          if (hit.getFieldValues() != null)
          {
            Iterator<String> iter = hit.getFieldValues().keySet().iterator();
            while (iter.hasNext())
            {
              if (!selectSet.contains(iter.next()))
              {
                iter.remove();
              }
            }
          }
          if (hit.getRawFieldValues() != null)
          {
            Iterator<String> iter = hit.getRawFieldValues().keySet().iterator();
            while (iter.hasNext())
            {
              if (!selectSet.contains(iter.next()))
              {
                iter.remove();
              }
            }
          }
        }

        if (features != null) {
          senseiHit.setFeatures(features[i]);
        }

        senseiHit.setFieldValues(hit.getFieldValues());
        senseiHit.setRawFieldValues(hit.getRawFieldValues());
        senseiHit.setStoredFields(hit.getStoredFields());
        senseiHit.setExplanation(hit.getExplanation());
        senseiHit.setGroupField(hit.getGroupField());
        senseiHit.setGroupValue(hit.getGroupValue());
        senseiHit.setRawGroupValue(hit.getRawGroupValue());
        senseiHit.setGroupHitsCount(hit.getGroupHitsCount());
        senseiHit.setTermFreqMap(hit.getTermFreqMap());

        senseiHits[i] = senseiHit;
      }
      result.setHits(senseiHits);
      result.setNumHits(res.getNumHits());
      result.setNumGroups(res.getNumGroups());
      result.setGroupAccessibles(res.getGroupAccessibles());
      result.setSortCollector(res.getSortCollector());
      result.setTotalDocs(browser.numDocs());
     
      result.addAll(res.getFacetMap());
     
      // Defer the closing of facetAccessibles till result merging time.
     
      // Collection<FacetAccessible> facetAccessibles = facetMap.values();
      // for (FacetAccessible facetAccessible : facetAccessibles){
      //   facetAccessible.close();
      // }
     
      long end = System.currentTimeMillis();
      result.setTime(end - start);
      // set the transaction ID to trace transactions
      result.setTid(req.getTid());

      Query parsedQ = req.getQuery();
      if (parsedQ != null)
      {
        result.setParsedQuery(parsedQ.toString());
      } else
      {
        result.setParsedQuery("*:*");
      }
      return result;
    }
View Full Code Here

Examples of com.senseidb.search.req.SenseiResult

              SenseiMapFunctionWrapper mapWrapper = new SenseiMapFunctionWrapper(request.getMapReduceFunction(), _core.getSystemInfo().getFacetInfos());
              breq.setMapReduceWrapper(mapWrapper);
            }
            SubReaderAccessor<BoboIndexReader> subReaderAccessor =
                ZoieIndexReader.getSubReaderAccessor(validatedSegmentReaders);
            SenseiResult res = browse(request, browser, breq, subReaderAccessor);
            int totalDocs = res.getTotalDocs()+skipDocs.get();
            res.setTotalDocs(totalDocs);

            // For debugging serialization issues:
//            byte[] responseBytes = getSerializer().responseToBytes(res);
//            SenseiResult response2 = getSerializer().responseFromBytes(responseBytes);
//            if(!res.equals(response2)) {
//              throw new IllegalArgumentException("Cant serialize response");
//            }

            return res;
          }
          else{
            return new SenseiResult();
          }
      } catch (Exception e)
      {
        logger.error(e.getMessage(), e);
        throw e;
View Full Code Here

Examples of com.senseidb.search.req.SenseiResult

    }
  }

  @Override
  public SenseiResult getEmptyResultInstance(Throwable error) {
    return new SenseiResult();
  }
View Full Code Here

Examples of com.senseidb.search.req.SenseiResult

  }

  public static void main(String[] args) throws Exception{
    File idxDir = new File("/tmp/sensei-example-cars/node1/shard0");
    SenseiService svc = new LocalQueryOnlySenseiServiceImpl(idxDir);
    SenseiResult res = svc.doQuery(new SenseiRequest());
    System.out.println(res.getTotalDocs());
    svc.shutdown();
  }
View Full Code Here

Examples of com.senseidb.search.req.SenseiResult

  }

  private static void waitTillServerStarts() throws Exception {

    SenseiRequest req = new SenseiRequest();
    SenseiResult res = null;
    int count = 0;
    do
    {
      Thread.sleep(500);
      res = broker.browse(req);
      System.out.println(""+res.getNumHits()+" loaded...");
      ++count;
    } while (count < 200 && res.getNumHits() < 15000);

  }
View Full Code Here

Examples of com.senseidb.search.req.SenseiResult

  public void testSortByAsc() throws Exception
      SenseiRequest req = new SenseiRequest();
      String field = "groupid";
      req.setCount(11);
      req.addSortField(new SortField("groupid", SortField.LONG, false));
      SenseiResult res = broker.browse(req);
      long[] groupdIDs = extractFieldValues(field, res);
      assertTrue(Arrays.toString(groupdIDs) + " is not the expected output", Arrays.equals(new long[] {-15000L, -14000L, -13000L, -12000L, -11000L, -10000L, -9000L, -8000L, -7000L, 0L, 10L}, groupdIDs));
  }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.