Package com.senseidb.search.req

Examples of com.senseidb.search.req.SenseiHit


  private SenseiHit[] createSenseiHits(int count) {
    List<SenseiHit> hits = new ArrayList<SenseiHit>();

    for (int i = 0; i < count; i++) {
      SenseiHit sh = new SenseiHit();
      sh.setUID(i);
      sh.setDocid(100 + i);
      sh.setExplanation(createExplanation(i, i));
      sh.setFieldValues(i % 2 == 0 ? createFieldValues(i) : null);
      sh.setRawFieldValues(i % 2 == 0 ? createRawFieldValues(i) : null);
      sh.setStoredFields(createSenseiHitDocument());
      hits.add(sh);
    }

    return hits.toArray(new SenseiHit[hits.size()]);
  }
View Full Code Here


      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());
View Full Code Here

    SenseiHit[] result = new SenseiHit[hitsArrayLength];

    for (int i = 0; i < hitsArrayLength; i++) {
      JSONObject hitObj = (JSONObject)hitsArray.get(i);

      SenseiHit hit = new SenseiHit();
      Iterator keys = hitObj.keys();
      Map<String,String[]> fieldMap = null;
      Map<String,Object[]> rawFieldMap = null;
      while(keys.hasNext()){
        String key = (String)keys.next();
        if (SenseiSearchServletParams.PARAM_RESULT_HIT_UID.equals(key)){
          hit.setUID(Long.parseLong(hitObj.getString(SenseiSearchServletParams.PARAM_RESULT_HIT_UID)));
        }
        else if (SenseiSearchServletParams.PARAM_RESULT_HIT_DOCID.equals(key)){
          hit.setDocid(hitObj.getInt(SenseiSearchServletParams.PARAM_RESULT_HIT_DOCID));
        }
        else if (SenseiSearchServletParams.PARAM_RESULT_HIT_SCORE.equals(key)){
          hit.setScore((float) hitObj.getDouble(SenseiSearchServletParams.PARAM_RESULT_HIT_SCORE));
        }
        else if (SenseiSearchServletParams.PARAM_RESULT_HIT_SRC_DATA.equals(key)){
          hit.setSrcData(hitObj.getString(SenseiSearchServletParams.PARAM_RESULT_HIT_SRC_DATA));
        }
        else if (SenseiSearchServletParams.PARAM_RESULT_HIT_STORED_FIELDS.equals(key)){
          hit.setStoredFields(convertStoredFields(hitObj.optJSONArray(SenseiSearchServletParams.PARAM_RESULT_HIT_STORED_FIELDS)));
        }
        else if (SenseiSearchServletParams.PARAM_RESULT_HIT_GROUPFIELD.equals(key)){
          hit.setGroupValue(hitObj.getString(SenseiSearchServletParams.PARAM_RESULT_HIT_GROUPFIELD));
        }
        else if (SenseiSearchServletParams.PARAM_RESULT_HIT_GROUPVALUE.equals(key)){
          hit.setGroupValue(hitObj.getString(SenseiSearchServletParams.PARAM_RESULT_HIT_GROUPVALUE));
        }
        else if (SenseiSearchServletParams.PARAM_RESULT_HIT_GROUPHITSCOUNT.equals(key)){
          hit.setGroupHitsCount(hitObj.getInt(SenseiSearchServletParams.PARAM_RESULT_HIT_GROUPHITSCOUNT));
        }
        else if (SenseiSearchServletParams.PARAM_RESULT_HIT_EXPLANATION.equals(key)){
          hit.setExplanation(convertToExplanation(hitObj.optJSONObject(SenseiSearchServletParams.PARAM_RESULT_HIT_EXPLANATION)));
        }
        else if (SenseiSearchServletParams.PARAM_RESULT_HIT_GROUPHITS.equals(key)) {
          hit.setGroupHits(convertHitsArray(hitObj.getJSONArray(SenseiSearchServletParams.PARAM_RESULT_HIT_GROUPHITS)));
        }
        else {
          JSONArray array = hitObj.optJSONArray(key);
          if (array!=null) {
            String [] arr = new String[array.length()];
            Object [] rawArr = new Object[array.length()];
            for (int k=0;k<arr.length;++k){
              arr[k]=array.getString(k);
              rawArr[k] = array.get(k);
            }
            if(fieldMap == null) {
              fieldMap = new HashMap<String, String[]>();
            }
            if(rawFieldMap == null) {
              rawFieldMap = new HashMap<String, Object[]>();
            }

            fieldMap.put(key, arr);
            rawFieldMap.put(key, rawArr);
          }
        }
      }
     
      hit.setFieldValues(fieldMap);
      hit.setRawFieldValues(rawFieldMap);

      result[i] = hit;
    }

    return result;
View Full Code Here

            Iterator<SenseiHit> groupMergedIter = ListMerger.mergeLists(hwg.iterList
                .toArray(new Iterator[hwg.iterList.size()]), comparator);
            List<SenseiHit> mergedList = new ArrayList<SenseiHit>(req.getMaxPerGroup());
            while (mergedList.size() < req.getMaxPerGroup() && groupMergedIter.hasNext())
            {
              SenseiHit hit = groupMergedIter.next();
              if (distinctSets == null || !checkDuplicate(hit,
                  distinctSets,
                  req.getDistinct(),
                  distinctValues,
                  distinctValueType,
View Full Code Here

    Set<Object>[] groupSets = new Set[1];
    groupSets[0] = new HashSet<Object>(topHits);
    while(mergedIter.hasNext())
    {

      SenseiHit hit = mergedIter.next();
      firstRawGroupValue = null;
      int i=0;
      for (; i<groupSets.length; ++i)
      {
        //rawGroupValue = hit.getRawField(req.getGroupBy()[i]);
View Full Code Here

      groupHitMaps[i] = new HashMap<Object, SenseiHit>(topHits);
    }

    while(mergedIter.hasNext())
    {
      SenseiHit hit = mergedIter.next();
      Object rawGroupValue = extractRawGroupValue(rawGroupValueType, hit.getGroupPosition(), primitiveLongArrayWrapperTmp, hit);

      SenseiHit pre = groupHitMaps[hit.getGroupPosition()].get(rawGroupValue);
      if (pre != null)
      {
        if (offsetLeft <= 0) {
          pre.setGroupHitsCount(pre.getGroupHitsCount()+hit.getGroupHitsCount());
        }
      }
      else
      {
        if (offsetLeft > 0)
View Full Code Here

      this.reader = reader;
    }

    SenseiHit getSenseiHit(SenseiRequest req)
    {
      SenseiHit hit = new SenseiHit();
      if (req.isFetchStoredFields() || req.isFetchStoredValue())
      {
        if (req.isFetchStoredFields())
        {
          try
          {
            hit.setStoredFields(reader.document(doc));
          }
          catch(Exception e)
          {
            logger.error(e.getMessage(),e);
          }
        }
        try
        {
          IndexReader innerReader = reader.getInnerReader();
          if (innerReader instanceof ZoieIndexReader)
          {
            hit.setStoredValue(
                ((ZoieIndexReader)innerReader).getStoredValue(
                    ((ZoieIndexReader)innerReader).getUID(doc)));
          }
        }
        catch(Exception e)
        {
        }
      }

      List<FacetHandler<?>> facetHandlers= new ArrayList<FacetHandler<?>>(reader.getFacetHandlerMap().values());
      if (reader.getRuntimeFacetHandlerMap() != null)
      {
        facetHandlers.addAll(reader.getRuntimeFacetHandlerMap().values());
      }
      Map<String,String[]> map = new HashMap<String,String[]>();
      Map<String,Object[]> rawMap = new HashMap<String,Object[]>();
      Set<String> selectSet = req.getSelectSet();
      for (FacetHandler<?> facetHandler : facetHandlers)
      {
        if (selectSet == null ||
            selectSet.size() == 0 ||
            selectSet.contains(facetHandler.getName()))
        {
          map.put(facetHandler.getName(),facetHandler.getFieldValues(reader,doc));
          rawMap.put(facetHandler.getName(),facetHandler.getRawFieldValues(reader,doc));
        }
      }
      hit.setFieldValues(map);
      hit.setRawFieldValues(rawMap);
      hit.setUID(((ZoieIndexReader<BoboIndexReader>)reader.getInnerReader()).getUID(doc));
      hit.setDocid(finalDoc);
      hit.setScore(score);
      hit.setComparable(sortValue);
      hit.setGroupPosition(groupPos);
      String[] groupBy = req.getGroupBy();
      if (groupBy != null && groupBy.length > groupPos && groupBy[groupPos] != null)
      {
        hit.setGroupField(groupBy[groupPos]);
        hit.setGroupValue(hit.getField(groupBy[groupPos]));
        hit.setRawGroupValue(hit.getRawField(groupBy[groupPos]));
      }
      return hit;
    }
View Full Code Here

TOP

Related Classes of com.senseidb.search.req.SenseiHit

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.