下列四种搜索客户端实现中哪种写法更合理?
程序员文章站
2024-01-31 13:24:52
...
//方案一:
$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);