IIC2413 / Syllabus-2020-1

36 stars 22 forks source link

GET 3.5 de prueba #366

Open fernando98alba opened 4 years ago

fernando98alba commented 4 years ago

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.

nivek0o0 commented 4 years ago

Hola, la idea es que los mensajes que se entregan como resultado no contengan ninguna palabra prohibida.

vvcastro commented 4 years ago

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.

nivek0o0 commented 4 years ago

@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?

vvcastro commented 4 years ago

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)

nivek0o0 commented 4 years ago

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)

oscars810 commented 4 years ago

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í.

nivek0o0 commented 4 years ago

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)