Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Elasticsearch来;随机化;PHP中的搜索结果?_Php_Search_Random_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch - Fatal编程技术网 elasticsearch,Php,Search,Random,elasticsearch" /> elasticsearch,Php,Search,Random,elasticsearch" />

如何使用Elasticsearch来;随机化;PHP中的搜索结果?

如何使用Elasticsearch来;随机化;PHP中的搜索结果?,php,search,random,elasticsearch,Php,Search,Random,elasticsearch,我试图使用Elasticsearch的功能评分,但也邀请了其他方法 我现有的搜索结果如下所示: $searchParams['body']['query']['filtered']['query']["match_all"] = array("boost" => 1); 如何将函数\ U分数添加到此搜索?这是我现在拥有的 $randomScore = new \stdClass(); // will be date or userid in the future $randomScore

我试图使用Elasticsearch的功能评分,但也邀请了其他方法

我现有的搜索结果如下所示:

$searchParams['body']['query']['filtered']['query']["match_all"] = array("boost" => 1);
如何将函数\ U分数添加到此搜索?这是我现在拥有的

$randomScore = new \stdClass();
// will be date or userid in the future
$randomScore->seed = 5; 
$functionScore = array(
            array("random_score" => $randomScore)
        );
$searchParams['body']['query']['function_score']['functions'] = $functionScore;
$queryResponse = $client->search($searchParams);

这似乎非常接近正确。我只是需要更多的脑力。

你需要做两件事:

  • 将查询嵌套在“函数\分数”数组中
  • 这些函数需要嵌套在一个额外的数组[]中
  • 以下内容适用于我,请根据您的需要进行相应更改:

        $params = array();
    
        $params['body']['size'] = 10;
        $params['body']['from'] = 0;
    
        $random = new \stdClass();
        $random->seed = time(); //change this to make randomization consistent, e.g. user id
        $params['body']['query']['function_score']['functions'][]['random_score'] = $random;
        $params['body']['query']['function_score']['query']['bool']['must_not'] = array(
            'term' => array(
                '_id' => $this->get('currentPageId'),
             )
        );
        $params['body']['query']['function_score']['query']['bool']['must'] = array(
            'term' => array(
                'isAlias' => false
             )
        );