Note: I used Solr 4.4 (and SolrJ 4.4) when creating this example.
I created a POJO named SampleDoc that maps a number of fields to the example solr schema:
package org.codecognition; import org.apache.solr.client.solrj.beans.Field; public class SampleDoc { @Field("id") private String id; @Field("sku") private String sku; @Field("name") private String name; @Field("title") private String title; @Field("price") private float price; @Field("inStock") private boolean inStock; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getSku() { return sku; } public void setSku(String sku) { this.sku = sku; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public float getPrice() { return price; } public void setPrice(float price) { this.price = price; } public boolean isInStock() { return inStock; } public void setInStock(boolean inStock) { this.inStock = inStock; } }
The POJO can then be indexed using the HttpSolrServer.addBeans() method:
package org.codecognition; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.impl.HttpSolrServer; import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Random; import java.util.UUID; public class SolrJWithAddBeansExample { public static void main(String[] args) { try { HttpSolrServer server = new HttpSolrServer("http://localhost:8983/solr"); server.addBeans(makeTestRecords(100)); server.commit(); } catch (SolrServerException | IOException e) { e.printStackTrace(); } } private static List<SampleDoc> makeTestRecords(int numRecords) { List<SampleDoc> sampleDocs = new ArrayList<SampleDoc>(numRecords); Random random = new Random(); for (int i = 0; i < numRecords; i++) { SampleDoc sampleDoc = new SampleDoc(); sampleDoc.setId((UUID.randomUUID().toString())); sampleDoc.setInStock(true); sampleDoc.setName(String.format("test%s", random.nextInt(10000))); sampleDoc.setPrice(random.nextFloat()); sampleDoc.setSku("somesku"); sampleDoc.setTitle(String.format("test title %s", random.nextInt(10000))); sampleDocs.add(sampleDoc); } return sampleDocs; } }
No comments:
Post a Comment