Vision General
La API de SearchLog es para obtener y gestionar registros de busqueda de Fess. Se puede utilizar para analizar el comportamiento de busqueda del usuario y mejorar la calidad de busqueda.
URL Base
/api/admin/searchlog
Lista de Endpoints
| Metodo | Ruta | Descripcion |
|---|---|---|
| GET | / | Obtener lista de registros de busqueda |
| GET | /{id} | Obtener detalle del registro de busqueda |
| DELETE | /{id} | Eliminar registro de busqueda |
| DELETE | /delete-all | Eliminar registros de busqueda en masa |
| GET | /stats | Obtener estadisticas de busqueda |
Obtener Lista de Registros de Busqueda
Solicitud
GET /api/admin/searchlog
Parametros
| Parametro | Tipo | Requerido | Descripcion |
|---|---|---|---|
size | Integer | No | Numero de elementos por pagina (predeterminado: 20) |
page | Integer | No | Numero de pagina (comienza en 0) |
from | String | No | Fecha/hora de inicio (formato ISO 8601) |
to | String | No | Fecha/hora de fin (formato ISO 8601) |
query | String | No | Filtrar por consulta de busqueda |
user | String | No | Filtrar por ID de usuario |
Respuesta
{
"response": {
"status": 0,
"logs": [
{
"id": "searchlog_id_1",
"searchWord": "Fess instalacion",
"requestedAt": "2025-01-29T10:00:00Z",
"responseTime": 125,
"hitCount": 234,
"queryOffset": 0,
"queryPageSize": 10,
"user": "user001",
"userSessionId": "session_abc123",
"clientIp": "192.168.1.100",
"referer": "https://example.com/",
"userAgent": "Mozilla/5.0 ...",
"roles": ["user", "admin"],
"languages": ["ja"]
},
{
"id": "searchlog_id_2",
"searchWord": "configuracion busqueda",
"requestedAt": "2025-01-29T09:55:00Z",
"responseTime": 98,
"hitCount": 567,
"queryOffset": 0,
"queryPageSize": 10,
"user": "user002",
"userSessionId": "session_def456",
"clientIp": "192.168.1.101",
"referer": "",
"userAgent": "Mozilla/5.0 ...",
"roles": ["user"],
"languages": ["ja", "en"]
}
],
"total": 10000
}
}
Campos de Respuesta
| Campo | Descripcion |
|---|---|
id | ID del registro de busqueda |
searchWord | Palabra clave de busqueda |
requestedAt | Fecha/hora de busqueda |
responseTime | Tiempo de respuesta (milisegundos) |
hitCount | Numero de resultados |
queryOffset | Desplazamiento de resultados |
queryPageSize | Tamano de pagina |
user | ID de usuario |
userSessionId | ID de sesion |
clientIp | Direccion IP del cliente |
referer | Referencia |
userAgent | Agente de usuario |
roles | Roles de usuario |
languages | Idiomas de busqueda |
Obtener Detalle del Registro de Busqueda
Solicitud
GET /api/admin/searchlog/{id}
Respuesta
{
"response": {
"status": 0,
"log": {
"id": "searchlog_id_1",
"searchWord": "Fess instalacion",
"requestedAt": "2025-01-29T10:00:00Z",
"responseTime": 125,
"hitCount": 234,
"queryOffset": 0,
"queryPageSize": 10,
"user": "user001",
"userSessionId": "session_abc123",
"clientIp": "192.168.1.100",
"referer": "https://example.com/",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
"roles": ["user", "admin"],
"languages": ["ja"],
"clickLogs": [
{
"url": "https://fess.codelibs.org/install.html",
"docId": "doc_123",
"order": 1,
"clickedAt": "2025-01-29T10:00:15Z"
}
]
}
}
}
Eliminar Registro de Busqueda
Solicitud
DELETE /api/admin/searchlog/{id}
Respuesta
{
"response": {
"status": 0,
"message": "Search log deleted successfully"
}
}
Eliminar Registros de Busqueda en Masa
Solicitud
DELETE /api/admin/searchlog/delete-all
Parametros
| Parametro | Tipo | Requerido | Descripcion |
|---|---|---|---|
before | String | No | Eliminar registros anteriores a esta fecha/hora (formato ISO 8601) |
user | String | No | Eliminar solo registros de un usuario especifico |
Respuesta
{
"response": {
"status": 0,
"message": "Search logs deleted successfully",
"deletedCount": 5000
}
}
Obtener Estadisticas de Busqueda
Solicitud
GET /api/admin/searchlog/stats
Parametros
| Parametro | Tipo | Requerido | Descripcion |
|---|---|---|---|
from | String | No | Fecha/hora de inicio (formato ISO 8601) |
to | String | No | Fecha/hora de fin (formato ISO 8601) |
interval | String | No | Intervalo de agregacion (hour/day/week/month) |
Respuesta
{
"response": {
"status": 0,
"stats": {
"totalSearches": 50000,
"uniqueUsers": 1234,
"averageResponseTime": 156,
"averageHitCount": 345,
"zeroHitRate": 0.05,
"topSearchWords": [
{"word": "Fess", "count": 1500},
{"word": "instalacion", "count": 800},
{"word": "configuracion", "count": 650}
],
"searchesByDate": [
{"date": "2025-01-29", "count": 2500},
{"date": "2025-01-28", "count": 2300},
{"date": "2025-01-27", "count": 2100}
]
}
}
}
Ejemplos de Uso
Obtener Lista de Registros de Busqueda
curl -X GET "http://localhost:8080/api/admin/searchlog?size=100&page=0" \
-H "Authorization: Bearer YOUR_TOKEN"
Obtener por Periodo Especifico
curl -X GET "http://localhost:8080/api/admin/searchlog?from=2025-01-01T00:00:00Z&to=2025-01-31T23:59:59Z" \
-H "Authorization: Bearer YOUR_TOKEN"
Registros de Busqueda de un Usuario Especifico
curl -X GET "http://localhost:8080/api/admin/searchlog?user=user001" \
-H "Authorization: Bearer YOUR_TOKEN"
Registros de Busqueda de una Palabra Clave Especifica
curl -X GET "http://localhost:8080/api/admin/searchlog?query=Fess" \
-H "Authorization: Bearer YOUR_TOKEN"
Obtener Estadisticas de Busqueda
curl -X GET "http://localhost:8080/api/admin/searchlog/stats?from=2025-01-01&to=2025-01-31&interval=day" \
-H "Authorization: Bearer YOUR_TOKEN"
Eliminar Registros de Busqueda Antiguos
# Eliminar registros anteriores a 30 dias
curl -X DELETE "http://localhost:8080/api/admin/searchlog/delete-all?before=2024-12-30T00:00:00Z" \
-H "Authorization: Bearer YOUR_TOKEN"
Extraer Palabras Clave Populares de Busqueda
curl -X GET "http://localhost:8080/api/admin/searchlog/stats?from=2025-01-01&to=2025-01-31" \
-H "Authorization: Bearer YOUR_TOKEN" | \
jq '.response.stats.topSearchWords'
Analisis de Calidad de Busqueda
# Verificar la tasa de cero resultados
curl -X GET "http://localhost:8080/api/admin/searchlog/stats" \
-H "Authorization: Bearer YOUR_TOKEN" | \
jq '{zeroHitRate: .response.stats.zeroHitRate, averageHitCount: .response.stats.averageHitCount}'
Tendencia de Busquedas por Dia
curl -X GET "http://localhost:8080/api/admin/searchlog/stats?interval=day&from=2025-01-01&to=2025-01-31" \
-H "Authorization: Bearer YOUR_TOKEN" | \
jq '.response.stats.searchesByDate'
Informacion de Referencia
Vision General de Admin API - Vision general de Admin API
API de Stats - API de estadisticas del sistema
Registro de Búsqueda - Guia de gestion de registros de busqueda
../../config/search-analytics - Guia de configuracion de analisis de busqueda