2016-08-18 2 views
1

あり、同社のウェブサイトからSolrの中にユニークな数を取得する方法のための完璧な答えは、だhttp://yonik.com/solr-count-distinct/、これからSOに答える:How to select distinct field values using Solr?数のcURL

私の問題は、私は理解していないということです私はコーディングてるものですPHP、にこのcURLの構文を変換する方法

公式の例では、このコード視点で何が起こっているかから従うことは十分に簡単そうです:。

$ curl http://localhost:8983/solr/techproducts/query -d ' 
q=*:*& 
json.facet={ 
    x : "unique(manu_exact)" // manu_exact is the manufacturer indexed as a single string 
}' 

しかし、PHPを使用してサーバにsolrクエリを送信する2つの方法に慣れているだけです。 、最初の直接URL使用:

$url = "localhost:8983/solr/asdf/select?q=*:*"; 
$Q = curl_init();  
curl_setopt($Q, CURLOPT_RETURNTRANSFER, true);   
curl_setopt($Q, CURLOPT_URL, $url); 
$rawData = curl_exec($Q); 
$data = json_decode($rawData,true); 

または値を掲示スルー:

$url  = "localhost:8983/solr/asdf/select"; 
$solr_q = "q=date_range:[2016+TO+*]&fq=title:manager&wt=json&indent=true"; 

$ch  = curl_init(); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $solr_q); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);   
curl_setopt($ch, CURLOPT_URL, $url); 
$rawData = curl_exec($ch); 
$json = json_decode($rawData,true); 

私はSolrの5.4.1を実行しているので、私は、私は、JSONのファセットを行う能力を持って知っているが、私は、コマンドラインのカールを使って公式の例の外でリクエストを行う方法を知らない。このjson.facetを私が現在PHPでsolrを利用しているのと同じ方法でどのように利用すればよいですか?

答えて

0

いつものように - あなたが答えを見つけるので、投稿をした直後です。誰かがまだ多分に私はこれを実行されるためのより良い方法をいくつかの光を当てることができれば私は非常に感謝される - が、これは技術的に直接URLとして動作します。

http://localhost:8983/solr/asdf/select?q=*:*&json.facet.x="unique(field)"&wt=json&indent=true&rows=0 

または私はで使用される構文を使用してOP:私が代わりに&json.facet=と01の&json.facet.x=(、JSONファセットに名前を付ける必要があった

  1. ... 
    $url = "http://localhost:8983/solr/asdf/select"; 
        $post = "q=*:*&json.facet.x=\"unique(field)\"&rows=0&wt=json&indent=true"; 
    ... 
    

    私が行方不明になった事があるということクエリがURLまたはPOSTリクエストとして機能するには、文字を引用符で置き換える必要があります(" ")。それは.....今程度の月の終わりに

    私をイライラされているように、私は本当にこれが誰かの役に立てば幸い