Contar resultados agrupados con múltiples filtros
Contar artículos por campo y aplicar múltiples filtros para paneles de análisis
Parámetros de entrada
| Parámetro | Descripción | Tipo | Predeterminado | Requerido |
|---|---|---|---|---|
| title | Consulta de búsqueda. | string | Sí | |
| facet | Contar artículos por campo. | boolean | true | Sí |
| facet.field | Campos para contar artículos, separados por comas. | string | Sí | |
| facet.limit | Número máximo de valores agrupados por campo | integer | 10 | Sí |
| published_at.start | Filtro de fecha de inicio. | string | Sí | |
| source.rank.opr.min | Calidad mínima de la fuente. | string | Sí | |
| api_key | Tu clave API | string | Sí | |
| per_page | Número máximo de artículos a recuperar | integer | 20 | No |
Ejemplos de flujo de trabajo
Agrupa los resultados por un campo y cuéntalos, con filtros aplicados:
curl -X GET "https://api.apitube.io/v1/news/everything?title=AI&facet=true&facet.field=source.id,category.id,language.id,sentiment.overall.polarity&facet.limit=10&published_at.start=2024-01-01&published_at.end=2024-01-31&source.rank.opr.min=5&api_key=YOUR_API_KEY"
Análisis de distribución por idioma:
curl -X GET "https://api.apitube.io/v1/news/everything?organization.name=Tesla&facet=true&facet.field=language.id,source.country.id&facet.limit=15&api_key=YOUR_API_KEY"
Distribución del sesgo mediático:
curl -X GET "https://api.apitube.io/v1/news/everything?topic.id=industry.green_energy_news&facet=true&facet.field=source.bias,source.country.id&api_key=YOUR_API_KEY"
Contar artículos por hora:
curl -X GET "https://api.apitube.io/v1/news/everything?facet=true&facet.field=published.hour&published_at.start=2024-01-01&api_key=YOUR_API_KEY"
Ejemplos relacionados
- Obtén recuentos de artículos por campo para análisis
- Contar artículos por rango
- Contar artículos por valores de campo y rangos
- Seleccionar campos específicos
- Ordena por puntuación de engagement
Receta para cURL
curl --location --globoff --request POST 'https://api.apitube.io/v1/news/everything?title=AI&facet=1&facet.field=source.id%2Ccategory.id%2Clanguage.id%2Csentiment.overall.polarity&facet.limit=10&published_at.start=2024-01-01&source.rank.opr.min=5&api_key=YOUR_API_KEY&per_page=20' \
--header 'Content-Type: application/json'
Receta para Python
import requests
url = "https://api.apitube.io/v1/news/everything"
querystring = {
"title": "AI",
"facet": true,
"facet.field": "source.id,category.id,language.id,sentiment.overall.polarity",
"facet.limit": 10,
"published_at.start": "2024-01-01",
"source.rank.opr.min": 5,
"api_key": "YOUR_API_KEY",
"per_page": 20
}
response = requests.request("GET", url, params=querystring)
print(response.text)
Receta para Javascript
import axios from "axios"
const options = {
method: 'GET',
url: 'https://api.apitube.io/v1/news/everything',
params: {
"title": "AI",
"facet": true,
"facet.field": "source.id,category.id,language.id,sentiment.overall.polarity",
"facet.limit": 10,
"published_at.start": "2024-01-01",
"source.rank.opr.min": 5,
"api_key": "YOUR_API_KEY",
"per_page": 20
}};
axios.request(options).then(function (response) {
console.log(response.data);
}).catch(function (error) {
console.error(error);
});
Receta para PHP
require 'vendor/autoload.php';
use GuzzleHttp\Client;
$client = new Client();
$response = $client->request('GET', 'https://api.apitube.io/v1/news/everything', [
'query' => [
'title' => 'AI',
'facet' => 1,
'facet.field' => 'source.id,category.id,language.id,sentiment.overall.polarity',
'facet.limit' => 10,
'published_at.start' => '2024-01-01',
'source.rank.opr.min' => 5,
'api_key' => 'YOUR_API_KEY',
'per_page' => 20,
],
]);
echo $response->getBody();
Receta para Java
OkHttpClient client = new OkHttpClient().newBuilder().build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "");
Request request = new Request.Builder()
.url("https://api.apitube.io/v1/news/everything?title=AI&facet=1&facet.field=source.id%2Ccategory.id%2Clanguage.id%2Csentiment.overall.polarity&facet.limit=10&published_at.start=2024-01-01&source.rank.opr.min=5&api_key=YOUR_API_KEY&per_page=20")
.method("POST", body)
.addHeader("Content-Type", "application/json")
.build();
Response response = client.newCall(request).execute();