我遇到了Solr select查询的问题。你能帮帮我吗?
我想在POST方法中转换此GET方法查询:
http://localhost:8983/solr/french_2/select/?q=**&facet.field=field001&facet.field=field002&fq=(website_id:"1") AND (product_status:"1")&sort=field001 asc
这是我的新查询。第一部分工作正常。问题是我尝试设置facet.field,facet.range,stats.field参数。
http://localhost:8983/solr/french_2/select
$postFields['q'] = '**';
$postFields['fq'] = '(website_id:"1") AND (product_status:"1") AND (instock_int:"1") AND (filter_visibility_int:"3" OR filter_visibility_int:"4") AND (category_id:"203" OR category_id:"203")';
$postFields['sort'] = '203_position_decimal asc';
$sh = curl_init($url);
curl_setopt($sh, CURLOPT_HEADER, 0);
if(is_array($postFields)) {
curl_setopt($sh, CURLOPT_POST, true);
curl_setopt($sh, CURLOPT_POSTFIELDS, $postFields);
}
curl_setopt($sh, CURLOPT_RETURNTRANSFER, 1);
curl_setopt( $sh, CURLOPT_FOLLOWLOCATION, true );
if ($type == 'json') {
curl_setopt( $sh, CURLOPT_HEADER, true );
}
if (isset($_GET['user_agent']) || isset($_SERVER['HTTP_USER_AGENT'])) {
curl_setopt( $sh, CURLOPT_USERAGENT, isset($_GET['user_agent']) ? $_GET['user_agent'] : $_SERVER['HTTP_USER_AGENT'] );
}
$this->setupSolrAuthenticate($sh);
if ($type == 'json') {
list( $header, $contents ) = @preg_split( '/([\r\n][\r\n])\\1/', curl_exec($sh), 2 );
$output = preg_split( '/[\r\n]+/', $contents );
}else{
$output = curl_exec($sh);
$output = json_decode($output,true);
}
curl_close($sh);
return $output;
如何设置facet.field =“field001,field002”或类似的内容?
非常感谢。
答案 0 :(得分:0)
您面临的问题是什么?
您必须设置:
面=上
facet.field = field001
facet.field = field002