Quero entender a lógica ou o algoritmo por trás da funcionalidade de pesquisa no Magento Connect quando a opção Classificar por na opção Refinar pesquisa estiver definida para classificar por Relavência
Quero entender a lógica ou o algoritmo por trás da funcionalidade de pesquisa no Magento Connect quando a opção Classificar por na opção Refinar pesquisa estiver definida para classificar por Relavência
Respostas:
Eu suponho que a pesquisa seja implementada usando o índice MySQL FULLTEXT.
Aqui está uma citação da documentação oficial do MySQL sobre como esse índice funciona:
As linhas retornadas são classificadas automaticamente com a maior relevância primeiro. Os valores de relevância são números não negativos de ponto flutuante. Zero relevância significa sem similaridade. A relevância é calculada com base no número de palavras na linha, no número de palavras únicas nessa linha, no número total de palavras na coleção e no número de documentos (linhas) que contêm uma palavra específica.
Como prova disso, você pode tentar fazer uma pesquisa no site Magento Connect usando os seguintes termos de pesquisa:
Para o primeiro termo, os primeiros resultados são módulos com títulos:
Pela segunda:
Para o último:
Como você pode ver em todos os casos, os primeiros itens têm mais de uma ocorrência de termo de pesquisa no título, portanto a relevância deles é maior.
Parece que é assim que a pesquisa do Magento Connect funciona.
Enquanto o Magento.com é baseado no Drupal, o Magento Connect parece estar usando o próprio Magento, pelo menos como base.
magento-connect/catalogsearch/result/?q=TERM
os arquivos JavaScript usados:
caminhos para arquivos CSS como http://www.magentocommerce.com/magento-connect/skin/frontend/enterprise/connect/css/base.css com licença no cabeçalho que contém:
* @category design
* @package enterprise_connect
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
* @license http://www.magentocommerce.com/license/enterprise-edition
Com essas informações, podemos concordar que a pesquisa funciona da mesma maneira que no Magento Enterprise. Agora, existem várias possibilidades:
Como você pode ver se você procura por combinações arbitrárias de termos de pesquisa, não é a LIKE
pesquisa padrão OR
que todo mundo odeia. Portanto, é a pesquisa de texto completo que ordena por relevância, por padrão, conforme sugerido por @alex_b ou a pesquisa Solr do módulo Enterprise_Search, para a qual provavelmente não tenho permissão para divulgar detalhes.