Els filtres et permeten reduir i controlar les dades que retorna una consulta, mostrant únicament els registres que compleixen unes condicions específiques. Són una de les eines més importants del generador de consultes, ja que t'ajuden a passar de grans volums de logs a informació concreta i entenedora.
Cada filtre s'aplica sobre un camp de la col·lecció seleccionada i utilitza un operador que defineix com es compara el valor del camp amb el valor que introduïxes.
Com funcionen els filtres
Un filtre sempre està compost per tres parts:
- Camp: sobre quina dada estàs filtrant (IP, status code, domini, data, usuari, etc.)
- Operador: com es compara el valor (igual, conté, més gran que, etc.)
- Valor: allò que vols buscar o excloure
Exemple:
- Camp: status code
- Operador: =
- Valor: 500
Resultat: només es mostren els registres amb error 500.
Com es combinen els filtres
Tots els filtres a ConnectiLogs funcionen com una condició acumulativa (AND lògic):
- Un registre només es mostra si compleix tots els filtres alhora
Exemple:
- status code = 500
- domini = eldomini.com
Resultat: només veuràs errors 500 d'aquest domini concret.
Tipus de filtres
Filtre igual (=)
L'operador igual (=) és el filtre més bàsic i també un dels més importants dins de ConnectiLogs. S'utilitza per seleccionar únicament els registres el valor dels quals coincideix exactament amb el valor que has definit, sense admetre variacions, coincidències parcials ni interpretacions.
És un operador de comparació estricta: allò que escrius és exactament allò que es busca.
Quan apliques un filtre amb l'operador igual, ConnectiLogs recorre tots els registres del camp seleccionat i retorna únicament aquells que compleixen aquesta condició exacta:
- valor del camp = valor del filtre
No es permeten diferències de format, text addicional, espais extres o variacions.
Exemple bàsic:
Si treballes amb la col·lecció d'access logs i vols veure únicament els errors del servidor:
- Camp: status code
- Operador: =
- Valor: 500
El resultat serà:
Només veuràs registres el codi d'estat dels quals sigui exactament 500.
Queden exclosos automàticament:
- 404 (no trobat)
- 200 (correcte)
- 301 (redirecció)
- qualsevol altre valor
Característiques
- Coincidència exacta (100%)
- No admet variacions ni patrons
- No distingeix "parcialment correcte"
- Redueix el dataset de manera molt controlada
Errors comuns en utilitzar "="
En treballar amb aquest operador, és habitual cometre alguns errors:
- Pensar que inclou coincidències parcials (no ho fa)
- No tenir en compte diferències de format (www vs no www, majúscules, etc.)
- Utilitzar-lo quan realment es necessita un filtre tipus "like"
- Oblidar que el valor ha de coincidir exactament amb l'emmagatzemat a la col·lecció
Filtre diferent (!=)
L'operador diferent (!=) és el complement directe de l'operador igual. S'utilitza per excloure tots els registres el valor dels quals coincideixi exactament amb el valor que indiquis, mostrant únicament aquells que són diferents.
És un operador de filtratge negatiu: en lloc de definir allò que vols veure, defineixes allò que vols eliminar del resultat.
Com funciona?
Quan apliques un filtre amb !=, ConnectiLogs avalua cada registre del camp seleccionat i l'inclou només si:
- valor del camp != valor del filtre
És a dir, qualsevol coincidència exacta amb el valor indicat queda automàticament fora de la consulta.
Exemple bàsic:
Si estàs analitzant codis d'estat en access logs:
- Camp: status code
- Operador: !=
- Valor: 500
El resultat serà:
Veuràs tots els registres excepte aquells amb error 500.
Això inclou:
- 200 (correcte)
- 404 (no trobat)
- 301 (redirecció)
- qualsevol altre codi diferent de 500
Característiques:
- Exclusió exacta de valors
- Funciona com a filtre invers al "="
- Redueix el dataset eliminant soroll conegut
- Molt útil per a anàlisis comparatius
- No admet coincidències parcials
Errors comuns en utilitzar !=
- Utilitzar-lo quan realment es volen excloure diversos valors (millor usar not in)
- Confondre'l amb filtres parcials (no funciona amb coincidències tipus "like")
- Oblidar que només exclou coincidències exactes, no variacions del valor
Filtre conté (like) i no conté (not like)
Els operadors like i not like s'utilitzen per a filtrar camps de text quan no busques una coincidència exacta, sinó patrons o fragments de text dins d'un valor. Són especialment útils a ConnectiLogs perquè molts camps (com dominis, rutes, usuaris o user agents) contenen informació estructurada on no sempre coneixes el valor complet.
Com funcionen?
A diferència de l'operador igual (=), que exigeix coincidència exacta, like permet coincidències parcials, és a dir, trobar registres on el text apareix dins del valor del camp.
- like: inclou coincidències que contenen el patró
- not like: exclou coincidències que contenen el patró
L'ús del comodí %
El comportament de like i not like es controla mitjançant el símbol %, que actua com a comodí. Aquest indica que pot existir qualsevol text en aquesta posició.
Això permet definir tres tipus de cerca:
Conté text en qualsevol posició
- Patró: %text%
Cerca registres on "text" apareix en qualsevol part del valor.
Exemple:
- filtre: domini like %eldomini%
Resultat:
- eldomini.com
- api.eldomini.net
- test.eldomini123.es
Comença per un text
- Patró: text%
Cerca valors que comencen exactament amb aquest text.
Exemple:
- filtre: domini like eldomini%
Resultat:
- eldomini.com
- eldomini.net
- eldomini-api.com
No inclouria:
- api.eldomini.com
- testeldomini.com
Acaba en un text
- Patró: %text
Cerca valors que acaben amb aquest text.
Exemple:
- filtre: domini like %eldomini
Resultat:
- api.eldomini
- test.eldomini
- logs.eldomini
No inclouria:
- eldomini.com
- eldomini.net
Què fa not like?
L'operador not like funciona exactament igual que like, però en sentit invers: exclou tots els registres que continguin el patró indicat.
Exemple de not like
- Camp: user agent
- Operador: not like
- Valor: %bot%
Resultat:
S'exclouran tots els registres on l'user agent contingui "bot", per exemple:
- googlebot
- bingbot
- qualsevol crawler o script automatitzat
I es mantindran:
- navegadors reals
- trànsit humà
- altres agents no relacionats amb bots
Quan utilitzar like i not like?
Utilitzar like quan:
- No coneixes el valor exacte del camp
- Vols agrupar variants d'un mateix concepte
- Estàs analitzant textos estructurats (dominis, rutes, logs)
- Necessites cercar patrons en camps llargs
Utilitzar not like quan:
- Vols eliminar soroll de les dades
- Necessites excloure patrons coneguts (bots, spam, proves…)
- Estàs netejant resultats per a anàlisis més precisos
- Vols quedar-te amb trànsit "humà" o rellevant
Diferències importants amb altres operadors
- =: coincidència exacta
- like: coincidència parcial (patró)
- !=: exclusió exacta
- not like: exclusió per patró
Errors comuns
- Oblidar l'ús de % i no obtenir resultats esperats
- Utilitzar like quan realment es coneix el valor exacte (millor =)
- Utilitzar not like en excés i eliminar massa dades útils
- No tenir en compte que petites variacions del text canvien el resultat
Filtre inclòs en (in) i no inclòs en (not in)
Els operadors in i not in s'utilitzen quan necessites treballar amb llistes de valors, en lloc de comparar contra un únic valor. Són especialment útils a ConnectiLogs perquè permeten simplificar filtres múltiples en una sola condició, fent les consultes més senzilles.
Com funcionen?
Aquests operadors comparen el valor d'un camp contra un conjunt d'opcions:
- in: el registre s'inclou si el seu valor és dins de la llista
- not in: el registre s'inclou si el seu valor NO és dins de la llista
Operador in (inclòs en)
L'operador in retorna tots els registres el valor dels quals coincideix amb qualsevol dels elements de la llista definida.
Exemple bàsic:
Si estàs analitzant codis d'estat:
- Camp: status code
- Operador: in
- Valors: 404, 500
Resultat:
Es mostraran únicament els registres el status code dels quals sigui:
- 404
- 500
Tot la resta queda fora de la consulta.
Operador not in (no inclòs en)
L'operador not in fa el contrari: exclou tots els registres el valor dels quals sigui dins de la llista indicada.
Exemple bàsic
- Camp: status code
- Operador: not in
- Valors: [200, 301]
Resultat:
Es mostraran tots els registres excepte:
- 200 (OK)
- 301 (redirecció)
Això és útil quan vols centrar-te en errors o comportaments anòmals.
Quan utilitzar in i not in?
Utilitzar in quan:
- Vols filtrar diversos valors concrets alhora
- Estàs treballant amb estats, codis o categories limitades
- Necessites simplificar múltiples condicions OR en una sola regla
- Vols centrar-te en un conjunt específic d'esdeveniments
Utilitzar not in quan:
- Vols excloure diversos valors coneguts
- Estàs netejant soroll (bots, trànsit intern, proves…)
- Necessites analitzar "tot excepte…"
- Vols reduir resultats sense perdre context general
Errors comuns
- Utilitzar in quan només hi ha un valor (millor usar =)
- Confondre in amb like (no hi ha coincidències parcials aquí)
- Incloure massa valors sense criteri clar
- No validar que tots els valors de la llista existeixin realment a les dades
Filtre més gran que (>), més gran o igual que (>=), més petit que (<) i més petit o igual que (<=)
Aquests operadors s'utilitzen per a fer comparacions numèriques o temporals dins de ConnectiLogs. Són importants quan necessites treballar amb llindars, rangs o límits, especialment en camps com dates, temps de resposta, mides de fitxers o qualsevol valor quantificable.
A diferència dels filtres de text, aquests operadors no busquen coincidències exactes o patrons, sinó relacions d'ordre entre valors.
Com funcionen?
Tots aquests operadors comparen el valor d'un camp amb un valor de referència:
- > (més gran que): el valor del camp ha de ser estrictament superior
- >= (més gran o igual que): el valor del camp ha de ser superior o igual
- < (més petit que): el valor del camp ha de ser estrictament inferior
- <= (més petit o igual que): el valor del camp ha de ser inferior o igual
Més gran que (>)
L'operador > retorna únicament els registres el valor dels quals és més gran que el valor indicat, sense incloure'l.
Exemple
- Camp: response time
- Operador: >
- Valor: 1
Resultat:
Es mostraran els registres el temps de resposta dels quals sigui superior a 1 segon:
- 1.2s
- 2s
- 5s
No inclou:
- 1s exacte
Més gran o igual que (>=)
L'operador >= és similar a l'anterior, però sí que inclou el valor límit.
Exemple
- Camp: size
- Operador: >=
- Valor: 4000
Resultat:
S'inclouran tots els registres amb mida:
- 4000 KB
- 4500 KB
- 10000 KB
Més petit que (<)
L'operador < retorna els registres el valor dels quals és inferior al valor indicat, sense incloure'l.
Exemple
- Camp: response time
- Operador: <
- Valor: 1
Resultat:
Es mostraran només els registres amb temps de resposta menors a 1 segon:
- 0.2s
- 0.5s
- 0.9s
No inclou:
- 1s exacte
Més petit o igual que (<=)
L'operador <= inclou tots els valors que siguin menors o iguals al valor definit.
Exemple
- Camp: size
- Operador: <=
- Valor: 1000
Resultat:
S'inclouran registres amb mida:
- 1000 KB
- 800 KB
- 200 KB
Ús combinat (rangs)
Aquests operadors són especialment potents quan es combinen per a crear rangs de valors.
Exemple de rang
- response time >= 1
- response time <= 3
Resultat:
Només es mostren registres amb temps de resposta entre 1 i 3 segons (inclosos tots dos extrems).
Això permet analitzar comportaments dins d'un interval concret.
Diferències clau
- > i < → exclouen el valor límit
- >= i <= → inclouen el valor límit
- Funcionen només amb dades numèriques o temporals, no amb text
- Són la base per a construir rangs d'anàlisi precisos
Errors comuns
- Utilitzar-los en camps de text (no és vàlid)
- Confondre > amb >= i perdre el valor límit
- No definir correctament els rangs (deixant buits entre condicions)
Consells pràctics per a utilitzar filtres
A ConnectiLogs, els filtres són més potents quan s'utilitzen amb una estratègia clara i progressiva, en lloc d'intentar construir una consulta perfecta des del principi.
El més recomanable és començar sempre amb filtres bàsics i fàcils de validar (per exemple, per domini, status code o rang de dates) i comprovar que la consulta retorna dades abans d'afegir més condicions. A partir d'aquí, pots anar refinant a poc a poc fins a arribar al nivell de detall que necessites.
És fonamental triar bé l'operador segons el tipus de dada. Per a coincidències exactes usa =, per a exclusions puntuals !=, per a llistes de valors in / not in, per a cerques flexibles en text like / not like, i per a rangs numèrics o temporals >, >=, <, <=. Utilitzar l'operador incorrecte és una de les causes més comunes de resultats buits o inesperats.
També és important entendre que tots els filtres es combinen entre si de forma acumulativa (AND), la qual cosa significa que cada condició redueix el conjunt de dades. Per això, afegir massa filtres restrictius des de l'inici pot fer que perdis informació rellevant o fins i tot que la consulta no retorni resultats.
Quan treballis amb múltiples valors coneguts, utilitza in / not in en lloc de repetir diversos filtres iguals, ja que simplifica la consulta i millora la seva llegibilitat. Si necessites cercar patrons dins de text, usa like / not like amb cura del comodí %, evitant interpretacions massa àmplies o massa restrictives.
En resum, la clau está a equilibrar precisió i amplitud: començar amb filtres simples, validar resultats i refinar gradualment, assegurant-te sempre d'utilitzar l'operador adequat per a cada tipus de dada.