映射Solr的
一個POJO要做到這一點,你需要註釋的POJO的領域/接入的方法與org.apache.solr.client.solrj.beans.Field
-Annotation。
當然,這些字段需要通過名稱直接匹配schema.xml的字段,或者通過在字段註釋中指定名稱來指定Solr。
作爲示例,您在模式中具有以下fields
的定義。XML
<fields>
<field name="id" type="int" indexed="true" stored="true" multiValued="false" />
<field name="title" type="string" indexed="true" stored="true" multiValued="false" />
</fields>
然後你會喜歡這個
import org.apache.solr.client.solrj.beans.Field;
public class SampleDocument {
public SampleDocument() {
// required for solrj to make an instance
}
public SampleDocument(int id, String title) {
this.id = id;
this.title = title;
}
public String getTitle() {
return title;
}
@Field("title")
public void setTitle(String title) {
this.title = title;
}
}
一個POJO使用POJO更新Solr的指數
代碼索引這些POJO的是相當直接的。你可以使用solrj的SolrServer來達到這個目的。
// connect to your solr server
SolrServer server = new HttpSolrServer("http://HOST:8983/solr/");
// adding a single document
SampleDocument document = new SampleDocument(1, "title 1");
server.addBean(document);
// adding multiple documents
List<SampleDocument> documents = Arrays.asList(
new SampleDocument(2, "title 2"),
new SampleDocument(3, "title 3"));
server.addBeans(documents);
// commit changes
server.commit();
// query solr for something
QueryResponse response = server.query(new SolrQuery("*:*"));
// get the response as List of POJO type
List<SampleDocument> foundDocuments = response.getBeans(SampleDocument.class);
延伸閱讀
的結果是我們的代碼寫起來,以下引用