WhatsApp

Lenguaje de consultas

Consulta campos, operadores y filtros de fecha de WhatsApp con ejemplos exactos.

Si utilizas un agente de IA con wa, no necesitas aprender este lenguaje: describe lo que quieres con palabras sencillas y el agente escribe la consulta. Esta página es para personas que escriben búsquedas por sí mismas y para cualquiera que desee todos los filtros: operadores exactos, todos los campos, ajustes preestablecidos, reglas de fecha y límites.

Es la referencia para las consultas de wa personal search messages, wa personal search all, wa personal stats messages show y búsquedas guardadas. Para ejemplos cotidianos, comience con búsqueda.

Términos utilizados en esta página:

  • Consulta: el texto que buscas, por ejemplo invoice from:me date:7d.
  • Campo: un nombre y dos puntos que limitan una parte de la consulta a una propiedad de un mensaje, como from: (el remitente) o date: (cuando se envió). Las palabras sin campo buscan en el texto del mensaje.
  • Operador: palabra o signo que une condiciones, como AND, OR y NOT.
  • Formas de palabras: la misma palabra con diferentes terminaciones. piso y pisos son formas de una palabra.

El idioma es compartido por cada CLI de WireCat. Es un perfil estricto de la sintaxis de consulta de Apache Lucene: palabras, frases, Y/O/NO, grupos, campos, rangos, comodines acotados y expresiones regulares. "Estricto" significa que cualquier cosa que no admita es un error y nunca se ignora silenciosamente. La referencia completa (en ruso) tiene las tablas generadas de campos, operadores, ajustes preestablecidos y límites, y ejemplos ejecutables.

Qué puede hacer

QuieresEscribir
mensajes con todas estas palabras, en cualquier formainvoice paid
estas palabras juntas, en este orden"invoice paid"
una palabra u otra, sin tercera(cafe OR library) NOT loud
sólo esta forma exacta de una palabraexact:piso o --exact para cada palabra sin campo
palabras que empiezan con algoinvo*
un remitente, un chat, una especie de chatfrom:me, chat:"Book club", kind:private
un períododate:7d, date:[2026-01-01 TO 2026-02-01}
texto que parece una contraseña, una tarjeta o un teléfonopreset:secret, preset:card
tus propias etiquetastag:work
un patróntext:/pass(port)?/

Las palabras y frases sin campo coinciden con las formas de las palabras. --exact selecciona formas exactas para palabras sin campo; un text: explícito todavía coincide con los formularios. La configuración de idioma de la tienda decide qué formularios coinciden (formularios de palabras).

Operadores

OperadorEjemploSignificado
palabrasinvoice paidambas palabras
frase"invoice paid"las palabras en este orden
AND, &&alpha AND betaambos
OR, ||alpha OR betaya sea
NOT, !, -alpha NOT betael primero sin el segundo
++alpha OR betaalfa requerida, beta opcional
grupo(alpha OR beta) gammacorchetes establecen el orden
grupo de camposfrom:(alice OR bob)el campo se aplica a cada valor
gamadate:[2026-01-01 TO 2026-02-01}[ ] incluye, { } excluye, * abre
comparacióndate>=7d, date:>=7dun campo abierto; la forma de dos puntos es la misma
comodíninvo*, te?t* cualquier carácter, ? uno
expresión regulartext:/pass(port)?/una expresión regular de Lucene limitada

alpha OR beta gamma significa (alpha OR beta) AND gamma; alpha OR beta AND gamma significa alpha OR (beta AND gamma). Usa corchetes para mayor claridad. Las minúsculas and, or, not son palabras sencillas. Una consulta con solo NOT no encuentra nada: proporcione una condición positiva, por ejemplo kind:group NOT preset:secret. Fuzzy ~, proximidad, impulsos e intervalos se rechazan con un error, no se ignoran. Los errores tipográficos no se corrigen: para detectar varias terminaciones, utilice un comodín como invo*.

Campos

CampoHallazgosEjemplo
textpalabras del mensaje (el campo predeterminado)text:invoice
exactla forma exacta de la palabra o fraseexact:piso, exact:"invoice paid"
bodytodo el texto original, distinguiendo entre mayúsculas y minúsculasbody:/.*invoice.*/
fromel remitente, por nombre o id; me eres túfrom:"Alice Synthetic", from:"100000000000001@lid"
chatel chat, por nombre o idchat:"Book club", chat:[email protected]
datecuando fue enviadodate:today, date:7d, date:[2026-01-01 TO 2026-02-01}
kindel tipo de chat: private, group, channel, saved y el resto compartidokind:private
haslink y los tipos de archivos del idioma compartidohas:link
inque cuentas: un proveedorin:whatsapp
presettexto con forma de secreto o de contactopreset:secret
tagtu propia etiqueta local en el mensaje, su chat o su remitentetag:work
phoneun número de teléfono que se encuentra en el texto, como esté escritophone:"<phone>"
emailuna dirección de correo electrónico encontrada en el textoemail:"[email protected]"
urlun enlace encontrado en el texto, sin parámetros de seguimientourl:"https://example.com/a"
domainel sitio de un enlace o una dirección encontrada en el textodomain:example.com
mentionsuna persona, organización o documento al que está vinculada una mención encontradamentions:"person:12"

Los nombres de los campos distinguen entre mayúsculas y minúsculas. Un campo, valor o combinación desconocidos es un error, nunca una respuesta vacía y nunca texto sin formato. Un nombre que el almacén local no conoce no se busca en WhatsApp.

En WhatsApp, kind:private es un chat uno a uno, kind:group un grupo, kind:saved el chat contigo mismo y kind:channel un canal de WhatsApp. Cite una identificación: @ es un operador. Los campos de archivo (content, filename, mime, size y has: con file, photo, voice y otros tipos de archivos adjuntos) coinciden con los archivos de mensajes almacenados desde que se manejó wa. archivos; content: necesita leer primero el texto del archivo (archivos adjuntos). topic: no tiene nada que igualar: WhatsApp no ​​tiene temas en el foro.

Menciones

wa encuentra teléfonos, direcciones de correo electrónico, enlaces, documentos y nombres de personas en mensajes almacenados. Usa estos campos para encontrar los mensajes que los contienen. Los hallazgos en sí están listados como wa personal mentions list. Para buscar un teléfono, primero escriba el número a number.txt, en una línea.

wa personal search messages "phone:\"$(cat number.txt)\""
wa personal search messages 'email:"[email protected]" OR domain:example.com'
wa personal search messages 'mentions:"person:12"'

En la tabla, <phone> representa el número: estas páginas no muestran ninguno real. Cite un valor que tenga + o @, ya que ambos son operadores. Se encuentra un teléfono como esté escrito: con o sin espacios, scripts y el código de país, es un teléfono, y se lee un número sin + con los países de la configuración phone_countries. domain: trata a docs.example.com como example.com. mentions: toma la referencia de una persona, una organización o un documento, y encuentra los mensajes cuyas menciones vinculaste con wa personal mentions confirm.

Preajustes

Un ajuste preestablecido busca texto por su forma. Úselo para encontrar una contraseña, un código o un número de tarjeta que alguien envió.

PreestablecidoUn candidato es
passworduna etiqueta de contraseña seguida de un valor
codeuna etiqueta con el código de verificación y entre 4 y 8 dígitos
api-keyuna etiqueta de clave API y un valor
secretuna contraseña, secreto, token o etiqueta de clave API y un valor
card13 a 19 dígitos con espacios o scripts opcionales
bankun valor en forma de IBAN
passportun valor de pasaporte etiquetado o una forma rusa de 4+6 dígitos
phoneuna forma de teléfono internacional con prefijo más
emailuna forma de dirección de correo electrónico
urlun enlace HTTP(S)
contactun archivo adjunto de contacto, o un correo electrónico o teléfono
locationun archivo adjunto de ubicación o un geo: enlace

Un ajuste preestablecido informa a un candidato por su forma. No verifica una contraseña, una tarjeta o un documento, y puede coincidir con algo inofensivo. No elimine ni reenvíe mensajes automáticamente en su palabra.

Fechas

--timezone toma una zona de la IANA como Europe/Madrid; sin él, la zona de la computadora se usa y se devuelve en la respuesta. Una fecha sin hora es un día calendario completo. Un día superior inclusivo incluye ese día completo, uno exclusivo lo excluye; un día en el que cambian los relojes puede durar 23 o 25 horas.

date:today y date:yesterday son días naturales. date:7d significa desde hace 7 días hasta ahora (también 30m, 2h); date>=7d y date:[30d TO 7d} funcionan en comparaciones y rangos, contados desde el momento en que se ejecuta la consulta. Se cita una hora exacta, con segundos y un desplazamiento: date>="2026-01-01T10:00:00+02:00".

Palabras, comodines y expresiones regulares

El texto se pliega antes de indexarlo y buscarlo: minúsculas, sin acentos. Un efecto secundario: algunas palabras diferentes se vuelven iguales, como año y ano. text: Las expresiones regulares y los comodines se pliegan de la misma manera.

text:/pay/ coincide con la palabra pago completa, no pago. body:/pay/ coincide sólo con un mensaje cuyo texto completo es pago, distingue entre mayúsculas y minúsculas; para encontrarlo en cualquier lugar utilice body:/.*pay.*/. Esta es la sintaxis de expresión regular de Lucene, sin búsquedas de JavaScript, referencias inversas, anclajes o banderas.

En una tienda grande, un prefijo corto como a* puede ampliarse a más de 10.000 palabras y se rechaza; alargarlo. Las consultas largas, el anidamiento profundo, los patrones grandes y los escaneos lentos se rechazan con validation_error, motivo query.too-large, no se acorta: limita el chat, las fechas o el patrón.

La respuesta

--json devuelve { items, page: { limit, has_more }, next?, missing?, meta }, incluso cuando no hay nada que coincida. --jsonl transmite solo los elementos.

  • items: los éxitos, los mejores primero (o los más nuevos primero con --newest), cada uno con su ref (msg:…), timestamp, sender_name, excerpt y matched_in.
  • meta.accounts: qué cuentas se buscaron.
  • missing: lo que la respuesta no pudo ver, cada uno con el paso que lo llena. text significa que el índice de palabras aún se está creando (paso store.migrate, wa personal store migrate).
  • next: los pasos a ejecutar. page.next repite la consulta para la página siguiente.
  • page.has_more se trata de la página, no de si el teléfono tiene capacidad para más.

Un error conlleva la posición del problema en la consulta y una pista.

Sobre MCP

Cuando un agente busca en el servidor MCP de wa, wa_read (command: "search messages") toma la consulta como query y timezone para la zona del calendario. chat toma una identificación o un nombre almacenado; source, newest, context y limit funcionan como lo hacen las opciones de comando; saved ejecuta una búsqueda guardada. thread, thread_hops, thread_messages, thread_bytes y thread_within coinciden con las opciones --thread…. La respuesta tiene los mismos campos que --json. wa_read (command: "stats messages show") cuenta las mismas consultas. wa personal mcp --no-record, o record configurado en false, mantiene las llamadas del servidor fuera del historial de consultas (MCP).

Siguiente

  • Buscar: búsquedas diarias, búsquedas guardadas y conteo.
  • El almacén local: qué contiene el almacén local y por qué es posible que una búsqueda no muestre un mensaje.