当前位置:Gxlcms > PHP教程 > 下列四种搜索客户端实现中哪种写法更合理?

下列四种搜索客户端实现中哪种写法更合理?

时间:2021-07-01 10:21:17 帮助过:7人阅读

//方案一:

$mustFilter = Filter::getMustFilter();
$shouldFilter = Filter::getShouldFilter();
$notMustFilter = Filter::getNotMustFilter();

$queryFilter = Filter::getQueryFilter();

$mustFilter
    ->setTerm($termParmas)
    ->setTerms($termsParmas)
    ->setRange($rangeParams);


$queryParams = Filter::init($alias)
    ->addFilter($mustFilter)
    ->addFilter($shouldFilter)
    ->addFilter($notMustFilter)
    ->addFilter($queryFilter)
    ->setSort($sortParams)
    ->setLimit($from, $size)
    ->build();

$result = Searcher::search($queryParams);

//方案二:

Eql::getInstance()
    ->setMust()
        ->add('goog', 'eq', 1)
        ->add('a', '>', 2)
    ->setShould()
        ->add('goog', 'eq', 1)
        ->add('a', '>', 2)
    ->query('keyword');

//方案三:

Eql::query([
    ['a','eq', 1, 'must'],
    ['b','eq', 1, 'must'],
    ['c','eq', 1, 'should'],
    ['d','eq', 1, 'should'],
]);

//方案四:

$searcher = Searcher::getInstance();
$query = new Query();
$query->setMustCondition($mustCondition)
      ->setMustNotCondition($mustNotCondition)
      ->setSort($sortCondition)
      ->setPageSize(10)
      ->getPage(1);
$result = $searcher->search($query);

回复内容:

//方案一:

$mustFilter = Filter::getMustFilter();
$shouldFilter = Filter::getShouldFilter();
$notMustFilter = Filter::getNotMustFilter();

$queryFilter = Filter::getQueryFilter();

$mustFilter
    ->setTerm($termParmas)
    ->setTerms($termsParmas)
    ->setRange($rangeParams);


$queryParams = Filter::init($alias)
    ->addFilter($mustFilter)
    ->addFilter($shouldFilter)
    ->addFilter($notMustFilter)
    ->addFilter($queryFilter)
    ->setSort($sortParams)
    ->setLimit($from, $size)
    ->build();

$result = Searcher::search($queryParams);

//方案二:

Eql::getInstance()
    ->setMust()
        ->add('goog', 'eq', 1)
        ->add('a', '>', 2)
    ->setShould()
        ->add('goog', 'eq', 1)
        ->add('a', '>', 2)
    ->query('keyword');

//方案三:

Eql::query([
    ['a','eq', 1, 'must'],
    ['b','eq', 1, 'must'],
    ['c','eq', 1, 'should'],
    ['d','eq', 1, 'should'],
]);

//方案四:

$searcher = Searcher::getInstance();
$query = new Query();
$query->setMustCondition($mustCondition)
      ->setMustNotCondition($mustNotCondition)
      ->setSort($sortCondition)
      ->setPageSize(10)
      ->getPage(1);
$result = $searcher->search($query);

人气教程排行