Este documento detalha o paradigma de construção de Motores de Busca Nativos e Descentralizados, em estrito acordo com os protocolos OpenSearch. O objetivo desta arquitetura é estabelecer independência absouta de APIs fechadas como Google Custom Search, Wikipedia ou Bing Search, alavancando a auto-hospedagem (Web3) de indexadores e a abstração XML nativa do OpenSearch 1.1.
Explorar no GitHub / sousatofactoryPara construir um motor de busca open source desvinculado de big techs, o software deve ler sua própria federação de bancos de dados locais (Ex: MariaDB, MongoDB ou IPFS para conteúdos distribuídos) e expor seus resultados usando o formato de "OpenSearch Description Document" padronizado.
Clientes de busca (como browsers modernos Firefox, Chrome ou agentes P2P Web3) usam estes documentos XML para aprender a interface pública do seu motor recém-criado, injetando sua máquina de pesquisa diretamente nas barras de endereço planetárias nativamente, sem chaves API.
O arquivo OSD é a raiz da infraestrutura. Ele define o manifesto do motor. Abaixo está o documento oficial formatado para um cluster descentralizado Web3 sem proxy do Google.
<?xml version="1.0" encoding="UTF-8"?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
<ShortName>Sousato Web3 Search</ShortName>
<Description>Motor Indexador Descentralizado Local Node.</Description>
<Tags>web3 descentralizado privacy search</Tags>
<Contact>admin@sousatofactory.net</Contact>
<!-- Requisição de Resultados Nativos (O motor processará via Node) -->
<Url type="text/html"
template="http://node.sousatofactory.net/?q={searchTerms}&p={startPage?}"/>
<!-- Requisição de Sugestões Baseadas no Cluster -->
<Url type="application/json" rel="suggestions"
template="http://node.sousatofactory.net/api/suggest?q={searchTerms}"/>
<LongName>Sousato Omnipotent Search Engine</LongName>
<Image height="64" width="64" type="image/png">http://node.sousatofactory.net/icon.png</Image>
<Query role="example" searchTerms="Hessenberg Topology" />
<Developer>TakaSystem LLC</Developer>
<SyndicationRight>open</SyndicationRight>
<AdultContent>false</AdultContent>
<OutputEncoding>UTF-8</OutputEncoding>
<InputEncoding>UTF-8</InputEncoding>
</OpenSearchDescription>
Diferentemente da dependência de um script do Google CSE, a plataforma precisa "avisar" a internet de que ela atua como um motor independente. Isso é feito via Autodiscovery Tags no cabeçalho do HTML indexador da web3:
<!DOCTYPE html>
<html>
<head profile="http://a9.com/-/spec/opensearch/1.1/">
<link rel="search"
type="application/opensearchdescription+xml"
href="http://node.sousatofactory.net/opensearch.xml"
title="Sousato Web3 Search" />
</head>
</html>
Ao invés de utilizar fetch() contra as endpoints abertas da Wikipedia ou Search Google API, o motor Web3 consolida os dados via Crawlers em Back-End próprios.
Url template do manifesto acima, lido pelo DOM nativo.ipfs://.Quando o navegador do usuário aceita seu motor OpenSearch, as buscas despacham variáveis parametrizadas pelo seu servidor.
{searchTerms}: Os termos literais inseridos criptograficamente pelo usuário.{count}: Resultados requeridos por tela, dispensando paginação excessiva da web superficial.{startPage?}: Offset do chunk de busca para redes lentas I2P/Onion ou Web3.Quando seu buscador Web3 encerra a pesquisa, no XML de resposta embutido, você declara o "estado de consciência" (Query role) do termo resolvido para perpetuação criptográfica em cache.
<!-- Respostas Embutidas no RSS/ATOM do seu Node -->
<opensearch:Query role="request" searchTerms="Contratos Inteligentes" startPage="1" />
<opensearch:Query role="correction" searchTerms="Contratos Inteligentes Ethereum" />
<opensearch:totalResults>52010</opensearch:totalResults>