Open fernando98alba opened 4 years ago
Hola, la idea es que los mensajes que se entregan como resultado no contengan ninguna palabra prohibida.
Creo tener un problema similar, en el enunciado se dice:
No deben preocuparse por las mayúsculas o tildes, ya que la búsqueda será exacta en este sentido.
El tema es que en este test está la palabra estas
, por lo que la palabra estás
sí debería estar permitida, lo mismo pasa con el par Feliz
y feliz
y otras duplas más.
@vvcastro ¿Cómo implementaste la búsqueda de texto? ¿Estás utilizando un índice sobre el atributo message
y utilizando la funcionalidad textSearch de mongo?
Sí, hago eso mismo. Entiendo que mongo ocupa las variables para el search$caseSensitive
y $diacriticSensitive
en false por defecto, por lo que no se generaría el problema en una búsqueda cualquiera.
El tema está cuando solo son palabras prohibidas, pues debemos filtrar de otra forma y ahí el enunciado hace la diferencia. La pregunta sería si seguimos o no el enunciado en este tema (lo que igual implicaría hacer las búsqueda de mongo con diacritic y case sensitive en true
)
Vamos a considerar ambas respuestas como correctas:
Implementaciones intermedias no tendrán todo el puntaje.
Y en el caso de recibir sólo palabras prohibidas, es posible ocupar casi puro mongo + textsearch y casi nada de Python para obtener los resultados (y no me refiero al uso típico que entrega una lista vacía)
Hola!,
Como dijo @vvcastro la busqueda del las palabras prohibidas igual la tuvimos que hacer de otra forma porque textsearch no lo admite al tener solo prohibidas sin un string en su busqueda, por lo que en nuestro caso particular tuvimos que usar $not
en vez de $text
y al hacer esto se vuelve CaseSensitive, entonces este sería nuestro unico caso así y todos demás al estar hechos con textsearch serían CaseInsensitive.
Por lo que queriamos saber si igual se nos contaría correcto haberlo hecho así.
Hola @oscars810 Si mezclan casos sensitive con no-sensitive no se les contaría correcto.
Lo que tienen que hacer es escoger una opción y adaptar la implementación de todas las consultas para que sigan esa elección.
Por ejemplo, supongamos que escogieron case-insensitive porque así vienen los índices por defecto. Entonces lo que pueden hacer para la 3.5 (que contiene solo palabras prohibidas) es pensar en conjuntos: al universo de palabras (con un find) podrían quitarles aquellas que sí tengan palabras prohibidas (con textsearch)
Hola! queria saber si estan bien los resultados de esa consulta, ya que el mensaje con mid=27 es "Cómo estás? Keep calm and buy NebCoins. Eso me hace feliz." y no tiene ninguna de las forbidden.