如何使用 fos elastica 仅获取 ids 或一个字段
How to get only ids or one field with fos elastica
使用 fosElasticaBundle (3.1.0) 获取特定索引的 _id 的最快方法是什么??
我的索引有大约 30,000 个文档。
例如,我将使用 fosElastica 获取所有 ID 的列表。等效的 Elasticsearch:
curl http://localhost:9200/search/etablissement/_search?pretty=true -d { '
"query" : {
"match_all" : {}
},
"fields": []
}
'
或者如果我想获取姓名:
curl http://localhost:9200/search/etablissement/_search?pretty=true -d { '
"query" : {
"match_all" : {}
},
"fields": ['name']
}
'
谢谢
可以通过上面的命令获取索引的id:
curl -XGET 'http://localhost:9200/search/etablissement/1
这将为您提供文档的第一个 ID。
或
您可以通过指定文档 ids
来过滤文档
{
"ids" : {
"type" : "my_type",
"values" : ["2", "34", "333"]
}
}
我终于找到了问题的答案。我只是想知道这是不是正确的方法。
$elasticaService = $this->container->get('fos_elastica.index.search');
$elasticaService->request("_search", "GET", array("fields"=>array()), array("match_all" => array(),"size" => 999999) )
$i = 1;
$data = array();
if(isset($results["hits"]["hits"])){
foreach($results["hits"]["hits"] as $result){
$data[$i] = $result["_id"];
++$i;
}
}
return $data;
为了避免错误,我必须添加:
"index.max_result_window: 999999" 到 /etc/elasticsearch/elasticsearch.yml
和 "service apache2 restart" 重新加载配置。
使用 fosElasticaBundle (3.1.0) 获取特定索引的 _id 的最快方法是什么?? 我的索引有大约 30,000 个文档。
例如,我将使用 fosElastica 获取所有 ID 的列表。等效的 Elasticsearch:
curl http://localhost:9200/search/etablissement/_search?pretty=true -d { '
"query" : {
"match_all" : {}
},
"fields": []
}
'
或者如果我想获取姓名:
curl http://localhost:9200/search/etablissement/_search?pretty=true -d { '
"query" : {
"match_all" : {}
},
"fields": ['name']
}
'
谢谢
可以通过上面的命令获取索引的id:
curl -XGET 'http://localhost:9200/search/etablissement/1
这将为您提供文档的第一个 ID。
或 您可以通过指定文档 ids
来过滤文档{
"ids" : {
"type" : "my_type",
"values" : ["2", "34", "333"]
}
}
我终于找到了问题的答案。我只是想知道这是不是正确的方法。
$elasticaService = $this->container->get('fos_elastica.index.search');
$elasticaService->request("_search", "GET", array("fields"=>array()), array("match_all" => array(),"size" => 999999) )
$i = 1;
$data = array();
if(isset($results["hits"]["hits"])){
foreach($results["hits"]["hits"] as $result){
$data[$i] = $result["_id"];
++$i;
}
}
return $data;
为了避免错误,我必须添加:
"index.max_result_window: 999999" 到 /etc/elasticsearch/elasticsearch.yml 和 "service apache2 restart" 重新加载配置。