List of usage examples for com.mongodb DBCursor size
public int size()
From source file:com.ikanow.infinit.e.harvest.enrichment.legacy.alchemyapi.AlchemyEntityGeoCleanser.java
License:Open Source License
public boolean cleanseGeoInDocu(DocumentPojo doc) { boolean bChangedAnything = false; Map<String, Candidate> dubiousLocations = new HashMap<String, Candidate>(); Set<String> otherRegions = new HashSet<String>(); Set<String> otherCountries = new HashSet<String>(); Set<String> otherCountriesOrRegionsReferenced = new HashSet<String>(); //Debug//w w w.j a v a 2s . co m if (_nDebugLevel >= 2) { System.out.println( "+++++++ Doc: " + doc.getTitle() + " / " + doc.getId() + " / " + doc.getEntities().size()); } // 1] First off, let's find anything location-based and also determine if it's bad or not if (null != doc.getEntities()) for (EntityPojo ent : doc.getEntities()) { boolean bStrongCandidate = false; // People: decompose names if (EntityPojo.Dimension.Where == ent.getDimension()) { // So locations get disambiguated to one of: // "<city-etc>, <region-or-country>", or "<region-or-country>" // though can also just be left as they are. String sActualName = ent.getActual_name().toLowerCase(); if (!ent.getDisambiguatedName().toLowerCase().equals(sActualName)) { // It's been disambiguated //Debug if (_nDebugLevel >= 3) { System.out.println("disambiguous candidate: " + ent.getDisambiguatedName() + " VS " + ent.getActual_name() + " (" + ((null != ent.getSemanticLinks()) ? ent.getSemanticLinks().size() : 0) + ")"); } // OK next step, is it a disambiguation to a US town? String splitMe[] = ent.getDisambiguatedName().split(", "); if (2 == splitMe.length) { String stateOrCountry = splitMe[1]; Matcher m = _statesRegex.matcher(stateOrCountry); if (m.find()) { // This is a US disambiguation - high risk case // Short cut if state is already directly mentioned? stateOrCountry = stateOrCountry.toLowerCase(); if (!otherRegions.contains(stateOrCountry)) { // See list below - no need to go any further // OK next step - is it a possible ambiguity: ArrayList<BasicDBObject> x = new ArrayList<BasicDBObject>(); BasicDBObject inner0_0 = new BasicDBObject(MongoDbManager.not_, Pattern.compile("US")); BasicDBObject inner1_0 = new BasicDBObject("country_code", inner0_0); x.add(inner1_0); BasicDBObject inner0_1 = new BasicDBObject(MongoDbManager.gte_, 400000); BasicDBObject inner1_1 = new BasicDBObject("population", inner0_1); x.add(inner1_1); BasicDBObject dbo = new BasicDBObject(); dbo.append("search_field", sActualName); dbo.append(MongoDbManager.or_, x); DBCursor dbc = _georefDB.find(dbo); if (dbc.size() >= 1) { // Problems! //Create list of candidates Type listType = new TypeToken<LinkedList<GeoFeaturePojo>>() { }.getType(); LinkedList<GeoFeaturePojo> grpl = new Gson() .fromJson(dbc.toArray().toString(), listType); //Debug if (_nDebugLevel >= 2) { System.out.println("\tERROR CANDIDATE: " + ent.getDisambiguatedName() + " VS " + ent.getActual_name() + " (" + dbc.count() + ")"); if (_nDebugLevel >= 3) { for (GeoFeaturePojo grp : grpl) { System.out.println("\t\tCandidate:" + grp.getCity() + " / " + grp.getRegion() + " / " + grp.getCountry()); } } } Candidate candidate = new Candidate(ent, grpl, stateOrCountry); dubiousLocations.put(ent.getIndex(), candidate); bStrongCandidate = true; } // if strong candidate } //TESTED ("reston, virginia" after "virginia/stateorcounty" mention) // (end if can't shortcut past all this) } // end if a US town } // end if in the format "A, B" } // if weak candidate //TESTED if (!bStrongCandidate) { // Obv can't count on a disambiguous candidate: String type = ent.getType().toLowerCase(); if (type.equals("stateorcounty")) { String disName = ent.getDisambiguatedName().toLowerCase(); if (_abbrStateRegex.matcher(disName).matches()) { otherRegions.add(getStateFromAbbr(disName)); } else { otherRegions.add(ent.getDisambiguatedName().toLowerCase()); } otherCountriesOrRegionsReferenced.add("united states"); } //TESTED: "mich./stateorcounty" else if (type.equals("country")) { String disName = ent.getDisambiguatedName().toLowerCase(); // Translation of known badly transcribed countries: // (England->UK) if (disName.equals("england")) { otherCountries.add("united kingdom"); } //TESTED else { otherCountries.add(ent.getDisambiguatedName().toLowerCase()); } } else if (type.equals("region")) { otherRegions.add(ent.getDisambiguatedName().toLowerCase()); } else if (type.equals("city")) { String splitMe[] = ent.getDisambiguatedName().split(",\\s*"); if (2 == splitMe.length) { otherCountriesOrRegionsReferenced.add(splitMe[1].toLowerCase()); if (this._statesRegex.matcher(splitMe[1]).find()) { otherCountriesOrRegionsReferenced.add("united states"); } //TESTED: "lexingon, kentucky/city" } } } //TESTED: just above clauses } // if location } // (end loop over entities) // Debug: if ((_nDebugLevel >= 3) && (!dubiousLocations.isEmpty())) { for (String s : otherRegions) { System.out.println("Strong region: " + s); } for (String s : otherCountries) { System.out.println("Strong countries: " + s); } for (String s : otherCountriesOrRegionsReferenced) { System.out.println("Weak regionscountries: " + s); } } // 2] The requirements and algorithm are discussed in // http://ikanow.jira.com/wiki/display/INF/Beta...+improving+AlchemyAPI+extraction+%28geo%29 // Canonical cases: // Darfur -> Darfur, MN even though Sudan and sometimes Darfur, Sudan are present // Shanghai -> Shanghai, WV even though China is mentioned (and not WV) // Manchester -> Manchester village, NY (not Manchester, UK) // Philadelphia -> Philadelphia (village), NY (though NY is mentioned and not PA) // We're generating the following order // 10] Sitting tenant with strong direct // 15] Large city with strong direct // 20] Region with direct // 30] Large city with strong indirect // 40] Sitting tenant with strong indirect // 50] Region with indirect // 60] Another foreign possibility with strong direct // 70] Large city with weak direct // 72] Large city with weak indirect // 75] Large city with no reference // 78] Another foreign possibility with strong indirect (>100K population - ie not insignificant) // 80] Sitting tenant with any weak (US) direct or indirect // 90] Another foreign possibility with strong indirect // 100] Another foreign possibility with weak direct // 110] Another foreign possibility with weak indirect // 120] Region with no reference, if there is only 1 // 130] Sitting tenant with none of the above (ie default) // 140] Anything else! for (Map.Entry<String, Candidate> pair : dubiousLocations.entrySet()) { EntityPojo ent = pair.getValue().entity; Candidate candidate = pair.getValue(); // 2.1] Let's analyse the "sitting tenant" int nPrio = 130; GeoFeaturePojo currLeader = null; int nCase = 0; // (just for debugging, 0=st, 1=large city, 2=region, 3=other) if (otherRegions.contains(candidate.state)) { // Strong direct ref, winner! nPrio = 10; // winner! } //TESTED: "san antonio, texas/city" vs "texas" else if (otherCountriesOrRegionsReferenced.contains(candidate.state)) { // Indirect ref nPrio = 40; // good, but beatable... } //TESTED: "philadelphia (village), new york/city" else if (otherCountries.contains("united states")) { // Weak direct ref nPrio = 80; // better than nothing... } //TESTED: "apache, oklahoma/city" else if (otherCountriesOrRegionsReferenced.contains("united states")) { // Weak indirect ref nPrio = 80; // better than nothing... } //TESTED: "washington, d.c." have DC as stateorcounty, but US in countries list // Special case: we don't like "village": if ((80 != nPrio) && ent.getDisambiguatedName().contains("village") && !ent.getActual_name().contains("village")) { nPrio = 80; } //TESTED: "Downvoted: Philadelphia (village), New York from Philadelphia" // Debug if (_nDebugLevel >= 2) { System.out.println(pair.getKey() + " SittingTenantScore=" + nPrio); } // Alternatives if (nPrio > 10) { LinkedList<GeoFeaturePojo> geos = pair.getValue().candidates; for (GeoFeaturePojo geo : geos) { int nAltPrio = 140; int nAltCase = -1; String city = (null != geo.getCity()) ? geo.getCity().toLowerCase() : null; String region = (null != geo.getRegion()) ? geo.getRegion().toLowerCase() : null; String country = (null != geo.getCountry()) ? geo.getCountry().toLowerCase() : null; // 2.2] CASE 1: I'm a city with pop > 1M (best score 15) // 15] Large city with strong direct // 30] Large city with strong indirect // 70] Large city with weak direct // 72] Large city with weak indirect // 75] Large city with no reference if ((null != city) && (geo.getPopulation() >= 400000) && (nPrio > 15)) { nAltCase = 1; if ((null != region) && (otherRegions.contains(region))) { nAltPrio = 15; // strong direct } //TESTED: "dallas / Texas / United States = 15" else if ((null != region) && (otherCountriesOrRegionsReferenced.contains(region))) { nAltPrio = 30; // strong indirect } //TESTED: "sacramento / California / United State" else if ((null != country) && (otherCountries.contains(country))) { nAltPrio = 70; // weak direct } //TESTED: "berlin, germany", with "germany" directly mentioned else if ((null != country) && (otherCountriesOrRegionsReferenced.contains(country))) { nAltPrio = 72; // weak indirect } //TESTED: "los angeles / California / United States = 72" else { nAltPrio = 75; // just for being big! } //TESTED: "barcelona, spain" } // 2.3] CASE 2: I'm a region (best score=20, can beat current score) // 20] Region with direct // 50] Region with indirect // 120] Region with no reference, if there is only 1 else if ((null == city) && (nPrio > 20)) { nAltCase = 2; if ((null != country) && (otherCountries.contains(country))) { nAltPrio = 20; // strong direct } //TESTED: (region) "Berlin, Germany" with "Germany" mentioned else if ((null != country) && (otherCountriesOrRegionsReferenced.contains(country))) { nAltPrio = 50; // strong indirect } //(haven't seen, but we'll live) else { nAltPrio = 120; // (just for being there) } //TESTED: "null / Portland / Jamaica = 120", also "Shanghai / China" } // 2.4] CASE 3: I'm any foreign possibility (best score=60) // 60] Another foreign possibility with strong direct // 78] Another foreign possibility with strong indirect (>100K population - ie not insignificant) // 90] Another foreign possibility with strong indirect // 100] Another foreign possibility with weak direct // 110] Another foreign possibility with weak indirect else if (nPrio > 60) { nAltCase = 3; if ((null != region) && (otherRegions.contains(region))) { nAltPrio = 60; // strong direct // Double check we're not falling into the trap below: if (!geo.getCountry_code().equals("US")) { Matcher m = this._statesRegex.matcher(geo.getRegion()); if (m.matches()) { // non US state matching against (probably) US state, disregard) nAltPrio = 140; } } //TESTED (same clause as below) } //TESTED: lol "philadelphia / Maryland / Liberia = 60" (before above extra clause) if (nAltPrio > 60) { // (may need to re-run test) if ((null != country) && (otherCountries.contains(country))) { if (geo.getPopulation() < 100000) { nAltPrio = 90; // strong indirect } //TESTED: "washington / Villa Clara / Cuba" else { nAltPrio = 78; // strong indirect, with boost! } //TESTED: "geneva, Geneve, Switzerland", pop 180K } else if ((null != region) && (otherCountriesOrRegionsReferenced.contains(region))) { nAltPrio = 100; // weak direct } //TESTED: "lincoln / Lincolnshire / United Kingdom = 100" else if ((null != country) && (otherCountriesOrRegionsReferenced.contains(country))) { nAltPrio = 110; // weak indirect } //(haven't seen, but we'll live) } } // Debug: if ((_nDebugLevel >= 2) && (nAltPrio < 140)) { System.out.println("----Alternative: " + geo.getCity() + " / " + geo.getRegion() + " / " + geo.getCountry() + " score=" + nAltPrio); } // Outcome of results: if (nAltPrio < nPrio) { currLeader = geo; nPrio = nAltPrio; nCase = nAltCase; } } // end loop over alternativse if (null != currLeader) { // Need to change if (1 == nCase) { this._nMovedToLargeCity++; //(Cities are lower case in georef DB for some reason) String city = WordUtils.capitalize(currLeader.getCity()); if (currLeader.getCountry_code().equals("US")) { // Special case: is this just the original? String region = currLeader.getRegion(); if (region.equals("District of Columbia")) { // Special special case region = "D.C."; } String sCandidate = city + ", " + region; if (!sCandidate.equals(ent.getDisambiguatedName())) { ent.setDisambiguatedName(sCandidate); ent.setIndex(ent.getDisambiguatedName() + "/city"); ent.setSemanticLinks(null); bChangedAnything = true; } //TESTED (lots, eg "Philadelphia (village), New York" -> "Philadelphia, PA"; Wash, Ill. -> Wash DC) else { this._nMovedToLargeCity--; _nStayedWithOriginal++; } //TESTED ("Washington DC", "San Juan, Puerto Rico") } //TESTED (see above) else { ent.setDisambiguatedName(city + ", " + currLeader.getCountry()); ent.setIndex(ent.getDisambiguatedName() + "/city"); ent.setSemanticLinks(null); bChangedAnything = true; } //TESTED: "london, california/city to London, United Kingdom" } else if (2 == nCase) { this._nMovedToRegion++; ent.setDisambiguatedName(currLeader.getRegion() + ", " + currLeader.getCountry()); ent.setIndex(ent.getDisambiguatedName() + "/region"); ent.setSemanticLinks(null); bChangedAnything = true; } //TESTED: "Moved madrid, new york/city to Madrid, Spain" (treats Madrid as region, like Berlin see above) else { //(Cities are lower case in georef DB for some reason) String city = WordUtils.capitalize(currLeader.getCity()); this._nMovedToForeignCity++; ent.setDisambiguatedName(city + ", " + currLeader.getCountry()); ent.setIndex(ent.getDisambiguatedName() + "/city"); ent.setSemanticLinks(null); bChangedAnything = true; } //TESTED: "Moved geneva, new york/city to Geneva, Switzerland" if ((_nDebugLevel >= 1) && (null == ent.getSemanticLinks())) { System.out.println("++++ Moved " + pair.getKey() + " to " + ent.getDisambiguatedName()); } } else { _nStayedWithOriginal++; } } // (if sitting tenant not holder) } // (end loop over candidates) if ((_nDebugLevel >= 1) && bChangedAnything) { System.out.println("\t(((Doc: " + doc.getTitle() + " / " + doc.getId() + " / " + doc.getUrl() + ")))"); } return bChangedAnything; }
From source file:com.ikanow.infinit.e.processing.generic.GenericProcessingController.java
License:Open Source License
public void InitializeIndex(boolean bDeleteDocs, boolean bDeleteEntityFeature, boolean bDeleteEventFeature, boolean bRebuildDocsIndex) { try { //create elasticsearch indexes if (!ElasticSearchManager.pingIndex(null, null)) { throw new RuntimeException("Index is red, disable indexing operations"); } //TESTED PropertiesManager pm = new PropertiesManager(); if (!pm.getAggregationDisabled()) { boolean languageNormalization = pm.getNormalizeEncoding(); Builder localSettingsEvent = ImmutableSettings.settingsBuilder(); localSettingsEvent.put("number_of_shards", 10).put("number_of_replicas", 2); localSettingsEvent.put("index.analysis.analyzer.suggestAnalyzer.tokenizer", "standard"); if (languageNormalization) { localSettingsEvent.putArray("index.analysis.analyzer.suggestAnalyzer.filter", "icu_normalizer", "icu_folding", "standard", "lowercase"); } else { localSettingsEvent.putArray("index.analysis.analyzer.suggestAnalyzer.filter", "standard", "lowercase"); }/*from w ww . j a va 2 s .co m*/ Builder localSettingsGaz = ImmutableSettings.settingsBuilder(); localSettingsGaz.put("number_of_shards", 10).put("number_of_replicas", 2); localSettingsGaz.put("index.analysis.analyzer.suggestAnalyzer.tokenizer", "standard"); if (languageNormalization) { localSettingsGaz.putArray("index.analysis.analyzer.suggestAnalyzer.filter", "icu_normalizer", "icu_folding", "standard", "lowercase"); } else { localSettingsGaz.putArray("index.analysis.analyzer.suggestAnalyzer.filter", "standard", "lowercase"); } //event feature String eventGazMapping = new Gson().toJson(new AssociationFeaturePojoIndexMap.Mapping(), AssociationFeaturePojoIndexMap.Mapping.class); ElasticSearchManager eventIndex = IndexManager.createIndex( AssociationFeaturePojoIndexMap.indexName_, null, false, null, eventGazMapping, localSettingsEvent); if (null == eventIndex) { // (if has been previously referenced in this process space) eventIndex = IndexManager.getIndex(AssociationFeaturePojoIndexMap.indexName_); } eventIndex.createAlias(AssociationFeaturePojoIndexMap.indexCollectionName_); if (bDeleteEventFeature) { eventIndex.deleteMe(); eventIndex = IndexManager.createIndex(AssociationFeaturePojoIndexMap.indexName_, null, false, null, eventGazMapping, localSettingsEvent); } //entity feature String gazMapping = new Gson().toJson(new EntityFeaturePojoIndexMap.Mapping(), EntityFeaturePojoIndexMap.Mapping.class); ElasticSearchManager entityIndex = IndexManager.createIndex(EntityFeaturePojoIndexMap.indexName_, null, false, null, gazMapping, localSettingsGaz); if (null == entityIndex) { // (if has been previously referenced in this process space) entityIndex = IndexManager.getIndex(EntityFeaturePojoIndexMap.indexName_); } entityIndex.createAlias(EntityFeaturePojoIndexMap.indexCollectionName_); if (bDeleteEntityFeature) { entityIndex.deleteMe(); entityIndex = IndexManager.createIndex(EntityFeaturePojoIndexMap.indexName_, null, false, null, gazMapping, localSettingsGaz); } } //DOCS - much more complicated than anything else boolean bPingMainIndexFailed = !ElasticSearchManager .pingIndex(DocumentPojoIndexMap.globalDocumentIndex_); // (ie if main doc index doesn't exist then always rebuild all indexes) if (bPingMainIndexFailed) { // extra level of robustness... sleep for a minute then double check the index is really missing... try { Thread.sleep(60000); } catch (Exception e) { } bPingMainIndexFailed = !ElasticSearchManager.pingIndex(DocumentPojoIndexMap.globalDocumentIndex_); } bRebuildDocsIndex |= bPingMainIndexFailed; // check the main index has the "collection" alias - if not then rebuild everything if (!bPingMainIndexFailed && (null == _aliasInfo)) { ElasticSearchManager docIndex = ElasticSearchManager .getIndex(DocumentPojoIndexMap.globalDocumentIndex_); ClusterStateResponse clusterState = docIndex.getRawClient().admin().cluster() .state(new ClusterStateRequest()).actionGet(); _aliasInfo = CrossVersionImmutableMapOfImmutableMaps .getAliases(clusterState.getState().getMetaData()); if (!_aliasInfo.containsKey(DocumentPojoIndexMap.globalDocumentIndexCollection_)) { bRebuildDocsIndex = true; } } //TESTED createCommunityDocIndex(DocumentPojoIndexMap.globalDocumentIndex_, null, false, true, bDeleteDocs); createCommunityDocIndex(DocumentPojoIndexMap.manyGeoDocumentIndex_, null, false, false, bDeleteDocs); // Some hardwired dummy communities createCommunityDocIndex("4e3706c48d26852237078005", null, true, false, bDeleteDocs); // (admin) createCommunityDocIndex("4e3706c48d26852237079004", null, true, false, bDeleteDocs); // (test user) // (create dummy index used to keep personal group aliases) if (bRebuildDocsIndex || bDeleteDocs) { // OK, going to have different shards for different communities: // Get a list of all the communities: BasicDBObject query = new BasicDBObject(); BasicDBObject fieldsToDrop = new BasicDBObject("members", 0); fieldsToDrop.put("communityAttributes", 0); fieldsToDrop.put("userAttributes", 0); DBCursor dbc = DbManager.getSocial().getCommunity().find(query, fieldsToDrop); List<DBObject> tmparray = dbc.toArray(); // (brings the entire thing into memory so don't get cursor timeouts) int i = 0; System.out.println("Initializing " + dbc.size() + " indexes:"); for (int j = 0; j < 2; ++j) { for (DBObject dbotmp : tmparray) { if ((++i % 100) == 0) { System.out.println("Initialized " + i + " indexes."); } BasicDBObject dbo = (BasicDBObject) dbotmp; // OK, going to see if there are any sources with this group id, create a new index if so: // (Don't use CommunityPojo data model here for performance reasons.... // (Also, haven't gotten round to porting CommunityPojo field access to using static fields)) ObjectId communityId = (ObjectId) dbo.get("_id"); boolean bPersonalGroup = dbo.getBoolean("isPersonalCommunity", false); boolean bSystemGroup = dbo.getBoolean("isSystemCommunity", false); ObjectId parentCommunityId = (ObjectId) dbo.get("parentId"); createCommunityDocIndex(communityId.toString(), parentCommunityId, bPersonalGroup, bSystemGroup, bDeleteDocs, j == 0); } //end loop over communities } // end loop over communities - first time parents only } // (end if need to do big loop over all sources) } catch (Exception e) { //DEBUG //e.printStackTrace(); throw new RuntimeException(e.getMessage()); } }
From source file:com.linuxbox.enkive.archiver.mongodb.MongoArchivingService.java
License:Open Source License
private boolean attachmentReferencedByMultipleMessages(String attachmentId) { BasicDBObject attachmentQuery = new BasicDBObject(ATTACHMENT_ID_LIST, attachmentId); DBCursor results = messageColl.find(attachmentQuery); return (results.size() > 1); }
From source file:com.linuxbox.enkive.archiver.mongodb.MongoArchivingService.java
License:Open Source License
private boolean messageReferencedAsNestedMessage(String messageId) { BasicDBObject nestedMessageQuery = new BasicDBObject(NESTED_MESSAGE_ID_LIST, messageId); DBCursor results = messageColl.find(nestedMessageQuery); return (results.size() > 0); }
From source file:com.linuxbox.enkive.permissions.message.MongoMessagePermissionsService.java
License:Open Source License
@Override public boolean canReadAttachment(Collection<String> addresses, String attachmentId) { BasicDBObject query = new BasicDBObject(); // Needs to match MAIL_FROM OR FROM BasicDBList addressQuery = new BasicDBList(); for (String address : addresses) { addressQuery.add(new BasicDBObject(MAIL_FROM, address)); addressQuery.add(new BasicDBObject(FROM, address)); addressQuery.add(new BasicDBObject(RCPT_TO, address)); addressQuery.add(new BasicDBObject(TO, address)); addressQuery.add(new BasicDBObject(CC, address)); }// w ww . j a v a 2 s . c om query.put("$or", addressQuery); query.put(ATTACHMENT_ID_LIST, attachmentId); DBCursor results = messageCollection.find(query); if (results.size() > 0) return true; else return false; }
From source file:com.mysema.query.mongodb.MongodbQuery.java
License:Apache License
@Override public List<K> list() { try {/* w w w . ja va 2 s .c o m*/ DBCursor cursor = createCursor(); List<K> results = new ArrayList<K>(cursor.size()); for (DBObject dbObject : cursor) { results.add(transformer.apply(dbObject)); } return results; } catch (NoResults ex) { return Collections.emptyList(); } }
From source file:com.redhat.lightblue.crud.mongo.BasicDocFinder.java
License:Open Source License
@Override public long find(CRUDOperationContext ctx, DBCollection coll, DBObject mongoQuery, DBObject mongoSort, Long from, Long to) { LOGGER.debug("Submitting query"); DBCursor cursor = new FindCommand(null, coll, mongoQuery, null).execute(); LOGGER.debug("Query evaluated"); if (mongoSort != null) { cursor = cursor.sort(mongoSort); LOGGER.debug("Result set sorted"); }/*from ww w . jav a 2 s . co m*/ long ret = cursor.size(); LOGGER.debug("Applying limits: {} - {}", from, to); if (from != null) { cursor.skip(from.intValue()); } if (to != null) { cursor.limit(to.intValue() - (from == null ? 0 : from.intValue()) + 1); } LOGGER.debug("Retrieving results"); List<DBObject> mongoResults = cursor.toArray(); LOGGER.debug("Retrieved {} results", mongoResults.size()); List<JsonDoc> jsonDocs = translator.toJson(mongoResults); ctx.addDocuments(jsonDocs); for (DocCtx doc : ctx.getDocuments()) { doc.setOperationPerformed(Operation.FIND); } LOGGER.debug("Translated DBObjects to json"); return ret; }
From source file:com.setronica.ucs.storage.MongoListStorage.java
License:LGPL
@Override public void open() throws IOException { DB db = mongoClient.getDB(mongoDbName); collection = db.getCollection(mongoCollectionName); if (collection == null) { collection = db.createCollection(mongoCollectionName, null); }//from w ww.jav a 2 s. c om collection.setWriteConcern(WriteConcern.ACKNOWLEDGED); DBCursor cursor = collection.find(); data = new ArrayList<E>(cursor.size()); for (DBObject entry : cursor) { Integer index = (Integer) entry.get("_id"); while (index >= data.size()) { data.add(null); } data.set(index, (E) readObject((byte[]) entry.get("element"))); } }
From source file:com.setronica.ucs.storage.MongoMapStorage.java
License:LGPL
@Override public void open() throws IOException { DB db = mongoClient.getDB(mongoDbName); collection = db.getCollection(mongoCollectionName); if (collection == null) { collection = db.createCollection(mongoCollectionName, null); }//from ww w . j av a2s . c om collection.setWriteConcern(WriteConcern.ACKNOWLEDGED); DBCursor cursor = collection.find(); data = new HashMap<K, E>(cursor.size()); for (DBObject entry : cursor) { data.put((K) readObject(entry.get("_id")), (E) readObject(entry.get("value"))); } }
From source file:controllers.FilterController.java
License:Apache License
private static Graph getSturgesHistogramm(Filter f, String property) { BasicDBObject query = Application.getFilterQuery(f); DBCursor cursor = Configurator.getDefaultConfigurator().getPersistence().find(Constants.TBL_ELEMENTS, query);//from w w w.j a v a2 s . c o m int n = cursor.size(); int bins = (int) ((Math.log(n) / Math.log(2)) + 1); MapReduceJob job = new NumericAggregationJob(f.getCollection(), property); job.setFilterquery(query); MapReduceOutput output = job.execute(); List<BasicDBObject> results = (List<BasicDBObject>) output.getCommandResult().get("results"); Graph g = null; if (!results.isEmpty()) { BasicDBObject aggregation = (BasicDBObject) results.get(0).get("value"); long max = aggregation.getLong("max"); int width = (int) (max / bins); Map<String, String> config = new HashMap<String, String>(); config.put("bin_width", width + ""); job = new HistogramJob(f.getCollection(), property); job.setFilterquery(query); job.setConfig(config); output = job.execute(); List<String> keys = new ArrayList<String>(); List<String> values = new ArrayList<String>(); calculateNumericHistogramResults(output, keys, values, width); g = new Graph(property, keys, values); } return g; }