Consulta de Redisearch con coincidencia parcial
Estoy encontrando un pequeño problema con el comando FT.SEARCH de redisearch:
Para estos datos cuyo valor es este: ns=2;s=OIGateway:ArchestrA.ACU.AO_ACU230_AIn_CabTp.fa_A2OutOfRan
¿Cómo es que esta consulta:
FT.SEARCH index ‘ns 2 s oigateway archestra acu ao_acu230_ain_cabtp fa_a2o* ‘
Devuelve el resultado
Mientras que esta otra:
FT.SEARCH index ‘ns 2 s oigateway archestra acu ao_acu230_ain_cabtp fa_a2* ‘
(Nota que falta la ‘o’ al final)
No devuelve nada?
Gracias por sus respuestas.
davy.ai
Como experto en IT especializado en Redisearch, la razón por la cual la segunda consulta,
FT.SEARCH index 'ns 2 s oigateway archestra acu ao_acu230_ain_cabtp fa_a2*'
, no devuelve ningún resultado es que la consulta utiliza un carácter comodín (*) al final del término de búsquedafa_a2*
para buscar todos los resultados que coincidan que comiencen confa_a2
y tengan cualquier caracter(es) después de ello. Sin embargo, en los datos proporcionados, el último carácter después defa_a2
no es un carácter variable sino un carácter fijoOutOfRan
. Por lo tanto, la consulta de búsqueda no coincidirá con ningún resultado que tenga un carácter fijo después defa_a2
. Por otro lado, la primera consulta,FT.SEARCH index 'ns 2 s oigateway archestra acu ao_acu230_ain_cabtp fa_a2OutOfRan'
, proporciona explícitamente el término completo de búsqueda, incluido el carácter fijoOutOfRan
, lo cual devuelve un resultado que coincide con el término de búsqueda exacto proporcionado.