2

エラスティックサーチ サーバーからキーワード候補のクエリを実行しようとしています。

次のコードは私が試みているものです:

    //curl -X GET http://localhost:9200/{INDEX}/{TYPE}/_suggest?q= ...
function suggest($type, $q, $size=5) {

    $suggestion = array('my-suggestion' => array('text' => $q,'term' => array('size' => $size, 'field' => 'title')));
    return $this->call($type . '/_suggest?' . http_build_query(array('suggest' => $suggestion)));

}

これは 404 エラーを返します。構築する URL の例を次に示します。

http://localhost:9200/{index}/{type}/_suggest?suggest%5Bmy-suggestion%5D%5Btext%5D=test&suggest%5Bmy-suggestion%5D%5Bterm%5D%5Bsize%5D=5&suggest%5Bmy-suggestion%5D%5Bterm%5D%5Bfield%5D=title

提案クエリの詳細は、 http ://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-suggesters.html で概説されています。

同じライブラリの次のものは正しく機能します。

    //curl -X GET http://localhost:9200/{INDEX}/{TYPE}/_search?q= ...
function query($type, $q, $start=0, $limit=10, $sort=null) {
    if ($sort){
        $sort = json_encode($sort);
        return $this->call($type . '/_search?' . http_build_query(array('q' => $q, 'from' => $start, 'size' => $limit,"sort" => $sort)));
    }
    else
        return $this->call($type . '/_search?' . http_build_query(array('q' => $q, 'from' => $start, 'size' => $limit)));
}
4

0 に答える 0