Maison  >  Article  >  développement back-end  >  下列四种搜索客户端实现中哪种写法更合理?

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

WBOY
WBOYoriginal
2016-06-06 20:11:31933parcourir

<code>//方案一:

$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);</code>

回复内容:

<code>//方案一:

$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);</code>
Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn