Esta pagina proporciona una guia practica para comenzar a utilizar rapidamente la API de Fess.
Comience en 5 minutos
Requisitos previos
Fess esta en ejecucion (accesible en http://localhost:8080/)
La respuesta JSON esta habilitada en Panel de administracion > Sistema > General
Pruebe la API de busqueda
Ejemplos de comandos curl:
# Busqueda basica
curl "http://localhost:8080/api/v1/documents?q=fess"
# Obtener 20 resultados de busqueda
curl "http://localhost:8080/api/v1/documents?q=fess&num=20"
# Obtener la pagina 2 (comenzando desde el resultado 21)
curl "http://localhost:8080/api/v1/documents?q=fess&start=20"
# Busqueda con filtro de etiquetas
curl "http://localhost:8080/api/v1/documents?q=fess&fields.label=docs"
# Busqueda con facetas (agregaciones)
curl "http://localhost:8080/api/v1/documents?q=fess&facet.field=label"
# Busqueda con caracteres especiales (codificados en URL)
curl "http://localhost:8080/api/v1/documents?q=search%20engine"
Ejemplo de respuesta (formateada):
{
"q": "fess",
"exec_time": 0.15,
"record_count": 125,
"page_size": 20,
"page_number": 1,
"data": [
{
"title": "Fess - Open Source Enterprise Search Server",
"url": "https://fess.codelibs.org/",
"content_description": "<strong>Fess</strong> is an easy to deploy...",
"host": "fess.codelibs.org",
"mimetype": "text/html"
}
]
}
Pruebe la API de sugerencias
# Obtener sugerencias
curl "http://localhost:8080/api/v1/suggest?q=fes"
# Ejemplo de respuesta
# {"q":"fes","result":[{"text":"fess","kind":"document"}]}
Pruebe la API de etiquetas
# Obtener etiquetas disponibles
curl "http://localhost:8080/api/v1/labels"
Pruebe la API de verificacion de estado
# Verificar el estado del servidor
curl "http://localhost:8080/api/v1/health"
# Ejemplo de respuesta
# {"data":{"status":"green","cluster_name":"fess"}}
Uso con Postman
La API de Fess se puede utilizar facilmente con Postman.
Configuracion de la coleccion
Abra Postman y cree una nueva coleccion
Agregue las siguientes solicitudes:
API de busqueda:
Metodo:
GETURL:
http://localhost:8080/api/v1/documentsParametros de consulta: -
q: Palabra clave de busqueda -num: Numero de resultados (opcional) -start: Posicion inicial (opcional)
API de sugerencias:
Metodo:
GETURL:
http://localhost:8080/api/v1/suggestParametros de consulta: -
q: Cadena de entrada
API de etiquetas:
Metodo:
GETURL:
http://localhost:8080/api/v1/labels
Variables de entorno
Recomendamos usar variables de entorno de Postman para gestionar las URL del servidor.
Cree un nuevo entorno en «Environments»
Agregue la variable:
fess_url=http://localhost:8080Cambie la URL de la solicitud a
{{fess_url}}/api/v1/documents
Ejemplos de codigo por lenguaje de programacion
Python
import requests
import urllib.parse
# URL del servidor Fess
FESS_URL = "http://localhost:8080"
def search(query, num=20, start=0):
"""Llamar a la API de busqueda de Fess"""
params = {
"q": query,
"num": num,
"start": start
}
response = requests.get(f"{FESS_URL}/api/v1/documents", params=params)
return response.json()
# Ejemplo de uso
results = search("enterprise search")
print(f"Total de resultados: {results['record_count']}")
for doc in results['data']:
print(f"- {doc['title']}")
print(f" URL: {doc['url']}")
JavaScript (Node.js)
const fetch = require('node-fetch');
const FESS_URL = 'http://localhost:8080';
async function search(query, num = 20, start = 0) {
const params = new URLSearchParams({ q: query, num, start });
const response = await fetch(`${FESS_URL}/api/v1/documents?${params}`);
return response.json();
}
// Ejemplo de uso
search('enterprise search').then(results => {
console.log(`Total de resultados: ${results.record_count}`);
results.data.forEach(doc => {
console.log(`- ${doc.title}`);
console.log(` URL: ${doc.url}`);
});
});
Java
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
public class FessApiClient {
private static final String FESS_URL = "http://localhost:8080";
private final HttpClient client = HttpClient.newHttpClient();
public String search(String query) throws Exception {
String encodedQuery = URLEncoder.encode(query, StandardCharsets.UTF_8);
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(FESS_URL + "/api/v1/documents?q=" + encodedQuery))
.GET()
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
return response.body();
}
public static void main(String[] args) throws Exception {
FessApiClient client = new FessApiClient();
String result = client.search("enterprise search");
System.out.println(result);
}
}
Compatibilidad de versiones de API
| Version de Fess | Version de API | Notas |
|---|---|---|
| 15.x | v1 | Ultima version. Soporte completo de funciones |
| 14.x | v1 | API similar. Pueden existir algunas diferencias en los parametros |
| 13.x | v1 | Soporte basico de API |
Nota
Se mantiene la compatibilidad de la API, pero las nuevas funciones solo estan disponibles en la ultima version. Para diferencias detalladas entre versiones, consulte las Notas de la version.
Solucion de problemas
La API no funciona
Verifique que la respuesta JSON este habilitada
Compruebe que «Respuesta JSON» este habilitada en Panel de administracion > Sistema > General.
Errores CORS desde el navegador
Si obtiene errores CORS al acceder desde un navegador, use JSONP o configure los ajustes de CORS en el servidor.
Ejemplo de JSONP:
curl "http://localhost:8080/api/v1/documents?q=fess&callback=myCallback"Se requiere autenticacion
Si los tokens de acceso estan configurados, incluyalos en el encabezado de la solicitud:
curl -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ "http://localhost:8080/api/v1/documents?q=fess"
Proximos pasos
API de búsqueda - Detalles de la API de busqueda
API de sugerencias - Detalles de la API de sugerencias
Referencia de Admin API - Uso de la API de administracion