我一直在使用 https://github.com/babenkoivan/scout-elasticsearch-driver 并且我希望将“track_total_hits”设置为 true,以便我可以获得总结果。
我不确定如何获取该点的数组值?
谢谢。
您使用的包没有实现
track_total_hits
(对存储库内容的搜索将确认这一点)。但是,如果需要,您可以分叉存储库并自行添加功能。
我遇到了同样的问题,为了解决这个问题,我使用回调闭包创建了自己的实现来包含
track_total_hits
等等……。
SearchRequestFactory
use ElasticScoutDriver\Factories\SearchRequestFactory;
use ElasticAdapter\Search\SearchRequest;
use Laravel\Scout\Builder;
class ElasticSearchRequestFactory extends SearchRequestFactory
{
public function makeFromBuilder(Builder $builder, array $options = []): SearchRequest
{
$searchRequest = parent::makeFromBuilder($builder, $options);
if ($builder->callback) {
call_user_func($builder->callback, $searchRequest, $builder);
}
return $searchRequest;
}
}
AppServiceProvider
public function register()
{
$this->app->bind(SearchRequestFactoryInterface::class, ElasticSearchRequestFactory::class, true);
}
SearchRequest
use ElasticAdapter\Search\SearchRequest;
//... more code
$results = Model::search($query, function(SearchRequest $request) {
$request->trackTotalHits(true);
return $request;
})->paginate();
//... more code
文档和参考:
我有同样的问题,问题是
安装 jeroeng/explorer 库
使用特定选项进行查询
使用 JeroenG\Explorer\Domain\Query\QueryProperties\TrackTotalHits;
模型::搜索($搜索) ->属性(TrackTotalHits::all());