这应该这样做:
// Create a "global" query
$query = new Elastica_Query;
// Create the term query
$term = new Elastica_Query_Term;
$term->setTerm('click', 'true');
// Add term query to "global" query
$query->setQuery($term);
// Create the facet
$facet = new Elastica_Facet_Terms('matches');
$facet->setField('pubid')
->setAllTerms(true)
->setSize(200);
// Add facet to "global" query
$query->addFacet($facet);
// Output query
echo json_encode($query->toArray());
要运行查询,则需要conntect你ES服务器
// Connect to your ES servers
$client = new Elastica_Client(array(
'servers' => array(
array('host' => 'localhost', 'port' => 9200),
array('host' => 'localhost', 'port' => 9201),
array('host' => 'localhost', 'port' => 9202),
array('host' => 'localhost', 'port' => 9203),
array('host' => 'localhost', 'port' => 9204),
),
));
,并指定索引,然后键入您希望对您的查询运行
// Get index
$index = $client->getIndex('myindex');
$type = $index->getType('typename');
现在可以运行你的查询
$type->search($query);
编辑: 如果您正在使用一个命名空间环境和当前版本的弹性曲线的,改变其中新对象相应地创建
的所有行
$query = new \Elastica\Query;
$facet = new \Elastica\Facet\Terms
等
这是一个很好的答案。 – webblover