Buscar en la Biblia
BibleQL tiene tres formas distintas de encontrar versículos, y elegir la equivocada es la
fuente de sorpresas más común. Esta página cubre search; las otras dos tienen su propia guía.
Cómo elegir entre las tres
| Query | Coincidencia | Orden | Úsala para |
|---|---|---|---|
search | Subcadena, sin distinguir mayúsculas | Canónico | Buscar una frase literal rápido |
concordance | Palabra con stemming | Canónico, exhaustivo | Estudio de palabras, todas las apariciones |
semanticSearch | Significado, vía embeddings | Por similitud | «Versículos sobre el perdón» |
Cómo coincide search
- GraphQL
- cURL
- Ruby
- Node.js
- Response
query {
search(translation: "spa-rv1909", query: "amor", limit: 5) {
bookName
chapter
verse
text
}
}
curl https://bibleql.org/graphql \
-H "Authorization: Bearer $BIBLEQL_API_KEY" \
-H "Content-Type: application/json" \
--data '{"query":"query { search(translation: \"spa-rv1909\", query: \"amor\", limit: 5) { bookName chapter verse text } }"}'
require "bibleql"
client = BibleQL::Client.new(
api_key: ENV.fetch("BIBLEQL_API_KEY"),
api_url: "https://bibleql.org/graphql"
)
results = client.search("amor", translation: "spa-rv1909", limit: 5)
results.each { |v| puts "#{v.book_name} #{v.chapter}:#{v.verse}" }
import { BibleQLClient } from "bibleql-js";
const client = new BibleQLClient({
apiKey: process.env.BIBLEQL_API_KEY!,
apiUrl: "https://bibleql.org/graphql",
});
const results = await client.search("amor", {
translation: "spa-rv1909",
limit: 5,
});
results.forEach((v) => console.log(`${v.bookName} ${v.chapter}:${v.verse}`));
{
"data": {
"search": [
{
"bookName": "Génesis",
"chapter": 3,
"verse": 17,
"text": "Y al hombre dijo: Por cuanto obedeciste á la voz de tu mujer, y comiste del árbol de que te mandé diciendo, No comerás de él; maldita será la tierra por amor de ti; con dolor comerás de ella todos los días de tu vida;"
},
{
"bookName": "Génesis",
"chapter": 10,
"verse": 16,
"text": "Y al Jebuseo, y al Amorrheo, y al Gergeseo,"
},
{
"bookName": "Génesis",
"chapter": 12,
"verse": 13,
"text": "Ahora pues, di que eres mi hermana, para que yo haya bien por causa tuya, y viva mi alma por amor de ti."
},
// ... 2 more
]
}
}
search hace una coincidencia de subcadena sin distinguir mayúsculas sobre el texto del
versículo. Eso tiene consecuencias concretas:
amorcoincide conamor,Amor,amoresyamoroso— cualquier versículo cuyo texto contenga esas letras.amorno coincide conamaba: no comparten la subcadena.- No hay stemming. Buscar
correrno encontrarácorrió. - No hay sintaxis de frases ni booleanos. Toda la cadena de búsqueda es una sola subcadena.
Si quieres coincidencia lingüística — que amor encuentre amores y amoroso por su raíz —
usa concordance, que pasa por el diccionario de stemming de la
traducción.
Resultados y límites
Los resultados llegan en orden canónico (Génesis → Apocalipsis, luego capítulo, luego versículo), no por relevancia. No hay ranking.
El argumento limit es 25 por defecto y está limitado a 100 en el servidor. Pedir 500
devuelve 100 sin error, así que no asumas que recibiste todo lo que pediste.
search no tiene paginación. Si necesitas todas las apariciones de una palabra en lugar de las
primeras cien, eso es exactamente para lo que existe
concordance: es exhaustiva y paginada por cursor.
Comportamiento por idioma
La coincidencia de subcadenas es agnóstica al idioma, así que search funciona igual en todas
las traducciones y no requiere índice. Esa es su principal ventaja: sin configuración, sin
salvedades por traducción.
También es la razón por la que no puede hacer nada más inteligente. Las mayúsculas se ignoran,
así que amor sí encuentra Amor; pero los acentos no se normalizan, así que oracion
no encontrará oración. Si tus usuarios escriben sin acentos, normaliza su entrada contra
la ortografía de la traducción antes de buscar, o usa
concordance, que pasa por un diccionario de búsqueda real.
Recomendaciones prácticas
- Buscas una frase que puedes citar exactamente →
search - Estudias una palabra y sus formas →
concordance - Describes una idea, no una redacción →
semanticSearch - Necesitas todas las coincidencias, no una muestra →
concordance