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