@Override protected SimilarItem getSentinelObject() { return new SimilarItem(SENTINEL_ID, Double.MIN_VALUE); } }
@Override public Iterator<SimilarItem> iterator() { return new SimilarItemsIterator(); } };
@Override protected boolean lessThan(SimilarItem one, SimilarItem two) { return one.getSimilarity() < two.getSimilarity(); }
@Override public void add(SimilarItems similarItems) throws IOException { String itemID = String.valueOf(similarItems.getItemID()); for (SimilarItem similarItem : similarItems.getSimilarItems()) { writer.write(itemID); writer.write(','); writer.write(String.valueOf(similarItem.getItemID())); writer.write(','); writer.write(String.valueOf(similarItem.getSimilarity())); writer.newLine(); } }
@Override public SimilarItem next() { if (!hasNext()) { throw new NoSuchElementException(); } index++; return new SimilarItem(similarItemIDs[index], similarities[index]); } }
@Override public void run() { while (numActiveWorkers.get() != 0) { try { List<SimilarItems> similarItemsOfABatch = results.poll(10, TimeUnit.MILLISECONDS); if (similarItemsOfABatch != null) { for (SimilarItems similarItems : similarItemsOfABatch) { writer.add(similarItems); numSimilaritiesProcessed += similarItems.numSimilarItems(); } } } catch (Exception e) { throw new RuntimeException(e); } } } }
public SimilarItem(long itemID, double similarity) { set(itemID, similarity); }
@Override public void add(SimilarItems similarItems) throws IOException { String itemID = String.valueOf(similarItems.getItemID()); for (SimilarItem similarItem : similarItems.getSimilarItems()) { writer.write(itemID); writer.write(','); writer.write(String.valueOf(similarItem.getItemID())); writer.write(','); writer.write(String.valueOf(similarItem.getSimilarity())); writer.newLine(); } }
@Override public SimilarItem next() { if (!hasNext()) { throw new NoSuchElementException(); } index++; return new SimilarItem(similarItemIDs[index], similarities[index]); } }
@Override public void run() { while (numActiveWorkers.get() != 0 || !results.isEmpty()) { try { List<SimilarItems> similarItemsOfABatch = results.poll(10, TimeUnit.MILLISECONDS); if (similarItemsOfABatch != null) { for (SimilarItems similarItems : similarItemsOfABatch) { writer.add(similarItems); numSimilaritiesProcessed += similarItems.numSimilarItems(); } } } catch (Exception e) { throw new RuntimeException(e); } } } }
@Override protected SimilarItem getSentinelObject() { return new SimilarItem(SENTINEL_ID, Double.MIN_VALUE); } }
@Override public Iterator<SimilarItem> iterator() { return new SimilarItemsIterator(); } };
@Override protected boolean lessThan(SimilarItem one, SimilarItem two) { return one.getSimilarity() < two.getSimilarity(); }
public SimilarItem(long itemID, double similarity) { set(itemID, similarity); }
@Override public void add(SimilarItems similarItems) throws IOException { String itemID = String.valueOf(similarItems.getItemID()); for (SimilarItem similarItem : similarItems.getSimilarItems()) { writer.write(itemID); writer.write(','); writer.write(String.valueOf(similarItem.getItemID())); writer.write(','); writer.write(String.valueOf(similarItem.getSimilarity())); writer.newLine(); } }
@Override public SimilarItem next() { if (!hasNext()) { throw new NoSuchElementException(); } index++; return new SimilarItem(similarItemIDs[index], similarities[index]); } }
@Override protected SimilarItem getSentinelObject() { return new SimilarItem(SENTINEL_ID, Double.MIN_VALUE); } }
@Override public Iterator<SimilarItem> iterator() { return new SimilarItemsIterator(); } };
@Override protected boolean lessThan(SimilarItem one, SimilarItem two) { return one.getSimilarity() < two.getSimilarity(); }
public SimilarItem(long itemID, double similarity) { set(itemID, similarity); }