Skip to content

Instantly share code, notes, and snippets.

@im-denisenko
Created June 16, 2015 00:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save im-denisenko/bd3a18257c9b858be597 to your computer and use it in GitHub Desktop.
Save im-denisenko/bd3a18257c9b858be597 to your computer and use it in GitHub Desktop.
<?php
$mSearch = (new Elastica\Multi\Search($client))
->addSearch(
$type->createSearch(
Query::create(
$qb->query()->filtered(
$qb->query()->match_all(),
$qb->filter()->bool()
->addMust(
$qb->filter()->range('vip_expire_date', ['gte' => date('d.m.Y')])
)
)
)
->setFields([
'id',
])
->setSize(2)
),
'vip'
)
->addSearch(
$type->createSearch(
Query::create(
$qb->query()->filtered(
$qb->query()->match_all(),
$qb->filter()->bool()
->addMust(
$qb->filter()->range('fast_expire_date', ['gte' => date('d.m.Y')])
)
)
)
->setFields([
'id',
])
->setSize(4)
),
'fast'
)
->addSearch(
$type->createSearch(
Query::create(
$qb->query()->filtered(
$qb->query()->match_all(),
$qb->filter()->bool()
->addMust(
$qb->filter()->range('price.value', ['gte' => 1000, 'lte' => 2000])
)
)
)
->setFields([
'id',
])
->setSize(4)
),
'price'
)
->addSearch(
$type->createSearch(
Query::create(
$qb->query()->function_score()
->addScriptScoreFunction(
new Script(
'like-this-offer',
['price_value' => 1000, 'category' => 'category'],
Script::LANG_GROOVY
)
)
->setFilter(
$qb->filter()->bool()
->addMust(
$qb->filter()->range('expire_date', ['gte' => date('d.m.Y')])
)
)
)
->setFields([
'id',
])
->setSize(4)
),
'similar'
);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment