Pregunta

Estoy buscando una forma de introducir ruido aleatorio en mi función de puntuación, y no tengo pérdidas sobre cómo proceder mejor.

Algunos antecedentes:

Utilizamos SOLR para una aplicación web que administra grandes conjuntos de fotos para las agencias.

Un cliente tiene un requisito interesante para anotar:

  • campo de 'calidad', mantenido por los editores, de 1 (más alto) a 3 (más bajo);
  • Campo de 'Fecha', impulsando fotos más recientes; Probablemente usaría una función logarítmica;

Sin embargo, debido a cómo funciona el mercado de Stock Photo, esto probablemente dará como resultado muchas fotos similares que aparecen juntas. Su solicitud es darle a 'calidad' un gran impulso, pero introducir cierta aleatoriedad para que las fotos no aparezcan en un orden de fecha estricto.

¿Alguna idea?

Editado: un requisito clave es tener resultados de consulta "estables": si busco dos veces para "Tropical Island", puedo obtener un conjunto de resultados ligeramente diferente, pero si pido la primera página, entonces la segunda, la primera, I, I mejor obtener los mismos resultados :)

¿Fue útil?

Solución 2

Resulta que mi primer enfoque para resolver el problema fue el correcto, y tuve un error de implementación trivial. En caso de que ayude a otros:

Randomsortfield tiene las características que necesito (es decir, devolver resultados repetibles para la misma consulta). Dejando a un lado la función de funciones por un momento, incluso algo trivial como:

sort=quality_i asc, date_d desc, random_12345 desc

se aproximará a mis requisitos.

Sin embargo, cuando se usa la gema Ruby Sunspot, no hay forma de pasar la semilla, y eso es lo que me estaba engañando antes: terminé usando una semilla diferente cada vez, obteniendo así resultados aleatorios "verdaderos".

Otros consejos

Podrías hacer esto con Functeries. Para cada foto, agregue un campo con un número aleatorio cercano a 1 (por ejemplo, 0.99, 1.02) y úselo en una consulta de función de producto para alterar la puntuación "natural".

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top