使用scala + solrj。我需要从solr中读取文档,向其中添加字段,然后将其放回服务器中。
我使用了类似下面的代码(如上所述,代码在scala中):
val doc = client.getById(docId) // can be as result of query also
val inputDoc = ClientUtils.toSolrInputDocument(doc)
inputDoc.setField("_version_",0)
inputDoc.setField("new_field","new value")
client.add(inputDoc)
client.commit
由于不推荐使用solr 5.5 ClientUnits.toSolrInputDocument。我现在应该怎么做?
非常感谢。
答案 0 :(得分:0)
我建议创建一个映射文档结构的pojo(如果可以,请查看schema.xml):
import org.apache.solr.client.solrj.beans.Field;
public class MyDocument {
@Field("id")
private Long id;
@Field("site")
private Integer site;
@Field("key")
private String key;
@Field("suggestions") // Multivalue field
private List<String> suggestions;
@Field("rank")
private Float rankBoost;
... // add getter and setter
然后创建一个List<MyDocument> docQueue
列表,您可以在其中放置所有数据。
MyDocument doc = new MyDocument();
doc.setKey("test");
docQueue.add(doc);
client.addBeans(docQueue);
docQueue.clear();
client.commit();
如果你有很多文件我还建议你加入500/1000组。选择适合您环境的尺寸。