Je veux comprendre la logique ou l'algorithme derrière la fonctionnalité de recherche dans Magento Connect lorsque l'option Trier par dans Affiner la recherche est définie pour trier par Relavence
Je veux comprendre la logique ou l'algorithme derrière la fonctionnalité de recherche dans Magento Connect lorsque l'option Trier par dans Affiner la recherche est définie pour trier par Relavence
Réponses:
Je suppose que la recherche est implémentée à l'aide de l'index MySQL FULLTEXT.
Voici une citation de la documentation officielle de MySQL concernant le fonctionnement de cet index:
Les lignes renvoyées sont automatiquement triées en premier avec la pertinence la plus élevée. Les valeurs de pertinence sont des nombres à virgule flottante non négatifs. Aucune pertinence ne signifie aucune similitude. La pertinence est calculée en fonction du nombre de mots dans la ligne, du nombre de mots uniques dans cette ligne, du nombre total de mots dans la collection et du nombre de documents (lignes) qui contiennent un mot particulier.
Pour preuve, vous pouvez essayer d'effectuer une recherche sur le site Web de Magento Connect en utilisant les termes de recherche suivants:
Pour le premier terme, les premiers résultats sont des modules avec des titres:
Pour le second:
Pour le dernier:
Comme vous pouvez le voir dans tous les cas, les premiers éléments ont plus d'une occurrence de terme de recherche dans le titre, donc leur pertinence est plus élevée.
Il semble que c'est ainsi que fonctionne la recherche Magento Connect.
Alors que Magento.com est construit sur Drupal, Magento Connect semble utiliser Magento lui-même, au moins comme base.
magento-connect/catalogsearch/result/?q=TERM
les fichiers JavaScript utilisés:
des chemins vers des fichiers CSS tels que http://www.magentocommerce.com/magento-connect/skin/frontend/enterprise/connect/css/base.css avec licence l'en-tête contenant:
* @category design
* @package enterprise_connect
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
* @license http://www.magentocommerce.com/license/enterprise-edition
Avec ces informations, nous pouvons convenir que la recherche fonctionne de la même manière que dans Magento Enterprise. Il existe maintenant plusieurs possibilités:
Comme vous pouvez le voir si vous recherchez des combinaisons de termes de recherche arbitraires, ce n'est pas la LIKE
recherche par défaut avec OR
laquelle tout le monde déteste. Donc, c'est soit la recherche en texte intégral qui commande par pertinence par défaut, comme suggéré par @alex_b ou la recherche Solr du module Enterprise_Search, pour laquelle je ne suis probablement pas autorisé à divulguer les détails.