Princípio
Há duas formas principais de criar um motor de busca. A primeira é buscar diretamente no tipo de armazenamento existente (ficheiros HTML, base de dados... de acordo com o tipo de site). A segunda consiste em indexar os conteúdos da base de dados. A solução de indexação foi mantida até o SPIP 2.0. A partir do SPIP 3.0, busca-se diretamente os conteúdos sem necessidade de indexação prévia.
Por outro ldo, no caso do SPIP, somos obrigados a usar PHP e MySQL como para o resto do software, o que não permite criar um motor muito eficiente em termos de velocidade, mas também de pertinência ou de enriquecimentos diversos (indexação de documentos externos ao site, criação de campos semânticos que permitam propor buscas mais detalhadas etc.).
A vantagem do motor interno, no entanto, é permitir gerir a exibição dos resultados pelos mesmos métodos (templates) que as restantes páginas do SPIP, e integrados no mesmo ambiente visual.
A busca
A busca é realizada simplesmente decompondo-se o texto de busca nas suas diferentes palavras; o mesmo filtro é aplicado que durante a indexação: remoção das palavras de três letras ou menos (excepto siglas), e transliteração.
Para cada conte;udo buscado, a pontuação das diferentes palavras é em seguida recuperada e adicionada, para se obter a pontuação total. Por fim, os resultados são geralmente exibidos por ordem decrescente de pontuação {!par points}
, ou seja, de pertinência (mas isso é deixado à vontade da pessoa que escreve os templates de layout).
A busca não oferece operadores boleanos, o operador implícito sendo grosso modo um « OU » lógico. No entanto, as matérias encontradas são exibidas numa ordem que privilegia os resultados contendo mais palavras ortografadas precisamente como na consulta. Assim, uma consulta sobre «as mãos finas» evidenciará as matérias contendo «mãos» e «vermelhas» bem à frente de matérias contendo «irmãos» ou «refinada» - estas aparecerão, mas mais distantes na classificação.
O motor de busca também não indexa o conteúdo dos ficheiros adicionados às matérias.
Motor de busca avançado
O motor de busca fornecido por padrão é bem limitado. Felizmente, existem alternativas para fornecer uma busca melhor: