我这的 示例是json类型的,但是原理都一样的 。
这里的commit,可以理解为一个拼装起来的 get请求.当然你也可以用curl来直接请求。具体示例便是下文的curl请求。
关于具体语法问题原文如下:
Solr supports several modifiers that atomically update values of a document.
set – set or replace a particular value, or remove the value if null is specified as the new value
add – adds an additional value to a list
remove – removes a value (or a list of values) from a list
removeregex – removes from a list that match the given Java regular expression
inc – increments a numeric value by a specific amount (use a negative value to decrement)
具体示例原文如下:
Update Modifier Example
First, let’s add a document representing a book:
$ curl http://localhost:8983/solr/demo/update -d '
[
{"id" : "book1",
"title_t" : "Snow Crash", // text field
"copies_i" : 5,
"cat_ss" : "Science Fiction" // multi-valued string field
}
]
'
Now we can update that document, adding the author field, incrementing the number of copies we have, and adding an additional category:
Atomic Updates with SolrJ
Here is an example of how to do a partial update via Solr’s Java client, SolrJ:
// create the SolrJ client
HttpSolrClient client
= new HttpSolrClient("http://localhost:8983/solr");
// create the document
SolrInputDocument sdoc
= new SolrInputDocument();
sdoc.addField("id","book1");
Map
<String,Object> fieldModifier = new HashMap<>(1);
fieldModifier.put("
add","Cyberpunk");
sdoc.addField("cat", fieldModifier);
// add the map as the field value
client.
add( sdoc ); // send it to the solr server
client.
close(); // shutdown client before we exit
solr代码单值更新示例:
CloudSolrClient server = new CloudSolrClient(ZkHost); server.setParser(new XMLResponseParser());
SolrInputDocument doc
= new SolrInputDocument(); Map
<String, String> partialUpdate = new HashMap<String, String>(); partialUpdate.put("
set", memberType); doc.addField("ADDRESSID", addressId);
//主键 doc.addField("MEMBERTYPE", partialUpdate);
doc.addField("LATESTUSETIME", DateUtils.getNow());