@Override public Document toDocument() { Document document = Document.newBuilder() .setId(id) .addField(Field.newBuilder().setName(ComentarioFields.id.name()).setText(id)) .addField( Field.newBuilder().setName(ComentarioFields.conteudo.name()).setText(conteudo)) .addField(Field.newBuilder().setName(ComentarioFields.usuario.name()).setText(usuario)) .build(); return document; }
// Index the geo location private void indexProduct(DProduct dProduct) { if (null != dProduct.getLocation()) { GeoPoint geoPoint = new GeoPoint(dProduct.getLocation().getLatitude(), dProduct.getLocation().getLongitude()); int averageRating = (null != dProduct.getRatingAverage()) ? dProduct.getRatingAverage().getRating() : -1; Document.Builder locationBuilder = Document.newBuilder() .setId(dProduct.getProductId()) .addField(Field.newBuilder().setName("location").setGeoPoint(geoPoint)) .addField(Field.newBuilder().setName("averageRating").setNumber(averageRating)) .addField(Field.newBuilder().setName("likeCount").setNumber(dProduct.getLikeCount())) .addField(Field.newBuilder().setName("thumbsUp").setNumber(dProduct.getThumbsUp())); getLocationIndex().add(locationBuilder.build()); } }
<F> Field buildField(SearchMetadata<T, K> metadata, String field, Object value) { com.google.appengine.api.search.Field.Builder fieldBuilder = Field.newBuilder().setName(metadata.getEncodedFieldName(field)); IndexType indexType = metadata.getIndexType(field); FieldMediator<F> fieldMediator = fieldMediators.get(indexType); F normalised = fieldMediator.normalise(transformerManager, value); fieldMediator.setValue(fieldBuilder, normalised); return fieldBuilder.build(); }