gpt4 book ai didi

php - 如何使用 Elastica 进行查询

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:06:02 25 4
gpt4 key购买 nike

这是我第一次使用 Elastica 并从 ElasticSearch 查询数据

对于我来说,作为初学者,我有一个关于如何使用 Elastica 查询下面的代码的问题?:

curl 'http://localhost:9200/myindex/_search?pretty=true' -d '{     
"query" : {
"term": {
"click": "true"
} }, "facets" : {
"matches" : {
"terms" : {
"field" : "pubid",
"all_terms" : true,
"size": 200
}
}
}
}'

希望有人能帮我一把。

谢谢,

最佳答案

应该这样做:

// 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());

要运行查询,您需要连接到您的 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);

编辑:如果您使用的是命名空间环境和当前版本的 Elastica,请将创建新对象的所有行相应地更改为

$query = new \Elastica\Query;
$facet = new \Elastica\Facet\Terms

等等

关于php - 如何使用 Elastica 进行查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13285250/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com