2011-05-10 28 views
5

Ejemplo de mi proyecto.Etiquetas o Buscar o Ambos

Muchos usuarios muchas entradas (piense en el tamaño de twitter)

quiero que sea muy fácil para los usuarios buscar sus entradas. La pregunta es: ¿Implemento un sistema de etiquetado o solo un mecanismo de búsqueda? He realizado una buena cantidad de investigación sobre el tema, específicamente sobre los esquemas requeridos. Pero, todavía tengo algunas preguntas persistentes.

Si utiliza etiquetas. La idea sería despojar la entrada en palabras y cualquier metadato que viene con ella en TAGS. El esquema sería la cosa Toxi (muchos para muchos) recomendada por la gente de mysql. El problema que tengo con TAGS es que no son tan flexibles como SEARCH. Por ejemplo, si CATS fuera una etiqueta pero CAT no lo fuera, no podría "buscarla" porque no es un TAG. A menos que implemente la búsqueda EN LAS ETIQUETAS también. En ese momento me preocupa el rendimiento o por qué no solo uso la búsqueda directa. El segundo problema es mantener los duplicados y similitudes de TAG al mínimo. TAG recolección de basura si lo desea.

Si uso BUSCAR tendría que utilizar LIKE o FULLTEXT (myISM no es tan bueno aunque) y buscar Trough las entradas y sus metadatos. Los metadatos podrían almacenar datos como etiquetas en este escenario. El esquema sería mucho más simple, pero me temo que el rendimiento sería mucho peor que el uso de etiquetas. Pero, de nuevo, la búsqueda es más flexible y no tendría que preocuparme tanto por la recolección de basura.

Ahora, lo interesante es que he leído que para mejorar el rendimiento de búsqueda de personas han salido a la búsqueda + enfoque de etiquetado. Etiquetar todas las palabras en la entrada y luego buscar las ETIQUETAS. Lo cual de alguna manera insinué que sucedía con el sistema TAG de todos modos. En este punto, la línea entre el etiquetado y la búsqueda parece ser borrosa y me estoy realmente confundiendo. Entonces, estoy escribiendo esto con la esperanza de que puedan resolverme.

que tienen montones de usuarios y montones de pequeñas entradas de texto. Cuál es la mejor manera para que los usuarios puedan buscarlo. Tanto desde una perspectiva de rendimiento como desde una perspectiva de interacción del usuario.

También, cualquier información adicional sobre este tema sería muy apreciada.

Saludos.

+0

+1 gran pregunta. – rkg

Respuesta

1

Le sugiero que utilice un motor de búsqueda dedicado para esta función, por ejemplo Sphinx o KinoSearch. La obtención de resultados de búsqueda relevantes teniendo la máxima flexibilidad con respecto a las consultas de búsqueda es un negocio propio (el negocio de Google, por ejemplo), así que siempre adoptaría un servicio dedicado para esta tarea

Cuestiones relacionadas