Quiero comprender la lógica o el algoritmo detrás de la funcionalidad de búsqueda en Magento Connect cuando la opción Ordenar por en Refinar búsqueda está configurada para ordenar por Relevancia
Quiero comprender la lógica o el algoritmo detrás de la funcionalidad de búsqueda en Magento Connect cuando la opción Ordenar por en Refinar búsqueda está configurada para ordenar por Relevancia
Respuestas:
Supongo que la búsqueda se implementa utilizando el índice MySQL FULLTEXT.
Aquí hay una cita de la documentación oficial de MySQL sobre cómo funciona ese índice:
Las filas devueltas se ordenan automáticamente con la mayor relevancia primero. Los valores de relevancia son números de punto flotante no negativos. La relevancia cero significa que no hay similitud. La relevancia se calcula en función del número de palabras en la fila, el número de palabras únicas en esa fila, el número total de palabras en la colección y el número de documentos (filas) que contienen una palabra en particular.
Como prueba de ello, puede intentar realizar una búsqueda en el sitio web de Magento Connect utilizando los siguientes términos de búsqueda:
Para el primer término, los primeros resultados son módulos con títulos:
Para el segundo:
Para el último:
Como puede ver en todos los casos, los primeros elementos tienen más de una aparición de término de búsqueda en el título, por lo que su relevancia es mayor.
Parece que así es como funciona la búsqueda de Magento Connect.
Si bien Magento.com se basa en Drupal, Magento Connect parece estar utilizando Magento, al menos como base.
magento-connect/catalogsearch/result/?q=TERM
Los archivos JavaScript utilizados:
rutas a archivos CSS como http://www.magentocommerce.com/magento-connect/skin/frontend/enterprise/connect/css/base.css con licencia cuyo encabezado contiene:
* @category design
* @package enterprise_connect
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
* @license http://www.magentocommerce.com/license/enterprise-edition
Con esta información, podemos estar de acuerdo en que la búsqueda funciona de la misma manera que en Magento Enterprise. Ahora hay varias posibilidades:
Como puede ver si busca combinaciones de términos de búsqueda arbitrarias, no es la LIKE
búsqueda predeterminada con la OR
que todo el mundo odia. Entonces, es la búsqueda de texto completo la que ordena por relevancia de manera predeterminada, como lo sugiere @alex_b o la búsqueda de Solr del módulo Enterprise_Search, para lo cual probablemente no se me permite revelar detalles.