2016-05-26 7 views
0

私はsolr 6.0バージョンを使用しています。solr 6.0でドキュメントを更新するには?

これは、私はIDごとに文書上のデータを更新したい私のデータ

{ 
    "id" : "14", 
    "solrid" : "solr|school|14", 
    "name" : "test update solr 14", 
    "status" : "pending", 
    "state" : "Andhra Pradesh", 
    "board" : "CISCE", 
    "updated" : "2016-05-26T02:24:25Z", 
    "pincode" : "0" 
} 

です。 の例では、私は名前

$doc = $update->createDocument(); 


    $doc["id"] =$id; 
      $doc["name"]="school"; 
      $update->addDocument($doc); 
      $update->addCommit(); 
      $client->update($update); 

このコードが正しいかを変更したいですか?または、私は他の流れを使いたい。 PHPソラリウムコード。

答えて

0

はい、基本的にフローは正しいです。あなたはいつでもhttps://gist.github.com/basdenooijer/894286でsolarimの例を確認することができます。

はまた、あなたがこのような何かを行うことができます。

$update = $client->createUpdate(); 
$document = $update->createDocument(); 
$document->setKey('id', $id); 
foreach ($data as $field => $value) { 
    if ($field == 'id') { 
     continue; 
    } 
    $document->setField($field, $value, null, 'set'); 
} 
$update->addDocument($document, true, 1500); 
$result = $client->update($update); 
+0

このエラー{ "responseHeader" 取得しています:{ "ステータス":400、 "QTIME":4}、 "エラー":{ "メタデータ": msg ":"無効な日付文字列 ["error-class"、 "org.apache.solr.common .SolrException"、 "root-error-class"、 "org.apache.solr.common.SolrException"] : '2016-05-30 12:07:12' "、" code ":400}} –

+0

しかし、私は特定のファイルを更新したい他のファイルデータを失った。 –

+0

datetimeをUTC形式で渡します:http://stackoverflow.com/questions/18831782/so​​lr-invalid-date-string-exceptionおよびhttp://lucene.apache.org/solr/4_4_0/ solr-core/org/apache/solr/schema/DateField.html –

関連する問題