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