有没有办法以编程方式更新单个产品 Sorl 索引?这是我的价格更新模块的一个片段。我需要在它之后运行索引更新:
$wrapper = entity_metadata_wrapper('commerce_product', $pid);
$wrapper->commerce_price->amount = $price * 100;
$wrapper->commerce_price->currency_code = $currency;
$wrapper->save();
有没有办法以编程方式更新单个产品 Sorl 索引?这是我的价格更新模块的一个片段。我需要在它之后运行索引更新:
$wrapper = entity_metadata_wrapper('commerce_product', $pid);
$wrapper->commerce_price->amount = $price * 100;
$wrapper->commerce_price->currency_code = $currency;
$wrapper->save();
我不知道您如何使用 Drupal 处理您的 solr。我自己用 curl 编程......但也许这对你有帮助......
你有两种方法:
第一种方法:删除旧产品并重新添加:
$json = '{"delete":{"query":"id:' . $articleId . '"},"commit":{}}'
$url = 'http://solrhost/solr/yourcore/update/json';
用curl处理url,json字符串就是你的post字段
$json = '{"add":' . $json_of_article . ',"commit":{}}';
$url = 'http://solrhost/solr/yourcore/update/json';
用curl处理url,json字符串就是你的post字段
第二种方式:更新一个产品中的字段
$data = json_encode(array('doc' => array('id' => $articleId, 'price' => array('set' => $newPrice))));
$json = '{"add":' . $data . ',"commit":{}}';
$url = 'http://solrhost/solr/yourcore/update/json';
我希望这有帮助...