Aqui em nosso blog nós já falamos sobre CACHE e que ter um cache é o grande diferencial para entregar o conteúdo do seu portal de notícias da maneira mais rápida possível.
Só que mesmo aplicando tecnologias de CACHE, algumas áreas do site ainda são muito dinâmicas e acabam dependendo do banco de dados principal do seu site, o que acaba deixando as buscas lentas.
Problema com buscas lentas no site
Como falamos anteriormente, não é possível fazer CACHE de todas as opções de busca.
Sempre que é feita uma busca por algum termo ou palavra-chave que não esteja salvo no CACHE, a requisição é passada a sua aplicação principal.
Neste caso, a experiência para o leitor do seu site de notícias é que a busca é muito mais demorada porque a maior parte do volume do seu site é exibida imediatamente.
Bancos de dados NoSQL para otimizar buscas
Já explicamos que bancos de dados estruturados como MySQL, Postgres, SQL Server e Oracle, embora atendam o propósito geral de um CMS (Content Management System) de um portal de conteúdo, são deficitários em relação a outras soluções para busca por notícias e postagens.
Essa nova tecnologia de banco de dados, com melhor desempenho para algumas funções, é chamada de banco de dados NoSQL.
Tem esse nome porque eles não possuem uma sintaxe de programação padrão para inserir e remover dados. Ou seja, não possuem suporte a linguagem SQL (Structured Query Language).
ElasticSearch é a recomendação
Aqui na ServerDo.in temos um núcleo de hospedagem de portais de conteúdo, formado programadores e técnicos em infraestrutura, fez testes das mais diversas soluções de bancos NoSQL buscando a melhor solução em desempenho e facilidade de integração com soluções existentes.
Nossa equipe fez testes com outras soluções como MongoDB, Solr, Sphinx, Riak e RavenDB, nenhuma, em nossa avaliação, levando em conta desempenho e facilidade de integração, superou os resultados que obtivemos com o ElasticSearch, da Elastic Stack.
Como deixar a busca mais rápida
Para deixar essas buscas lentas mais rápidas você deve instalar o ElasticSearch.
Depois, deve ajustar sua aplicação para sincronizar os dados (notícias) entre o banco de dados do CMS e o banco de dados ElasticSearch.
Por fim, a aplicação deve ser ajustada para fazer as buscas no banco ElasticSearch e não no banco convencional como MySQL, Postgres e etc..
Essa operação deve ser feita pela sua equipe de desenvolvimento. Se você não possui, podemos indicar profissionais para realizar essa adequação ao seu site.
Otimizar buscas com ElasticSearch no WordPress é muito fácil
Clientes ServerDo.in que possuem Cloud Gerenciado não precisam se preocupar com essa configuração. Nossa equipe cuida de toda a instalação e configuração para você.
Se você não sabe das vantagens de nosso Cloud Gerenciado, onde você só se preocupa com o conteúdo e todo o resto nossa equipe cuida, leia o post que publicamos sobre o assunto.
A primeira etapa é no seu servidor instalar o ElasticSearch.
A instalação do ElasticSearch integrado com o WordPress para resolver os problemas com buscas lentas é feita usando um plugin chamado ElasticPress.
Essa é a tela inicial do Plugin ElasticPress, responsável pela integração fácil entre o WordPress e o ElasticSearch
Após a instalação do plugin, você deve ir na área de configuração do plugin. Basta clicar no ícone da engrenagem que aparece no topo superior direito da barra branca do plugin.
Na tela de configurações, você deve configurar o endereço do servidor ElasticSearch, se os dois estão no mesmo servidor, o endereço deve ser http://localhost:9200.
Na tela de configurações, na aba “Trird-Party/Self-Hosted” você deve configurar o endereço do servidor ElasticSearch que instalou na etapa anterior.
Após a configuração deve ser feita a sincronização, o processo de leitura das notícias do banco MySQL WordPress para alimentar a base ElasticSearch.
Clicando no ícone de sincronização as notícias do seu banco de dados WordPress MySQL serão levadas para o ElasticSearch, e assim, seu problema com buscas lentas será resolvido.
Caso queira que as consultas da área administrativa do seu WordPress sejam também tratadas pelo ElasticSearch e ElasticPress é importante marcar a indexação de conteúdos privados/protegidos (caso já tenha executado a indexação inicial, será necessário reiniciar a rotina). Essa função é muito importante para publishers de portais de notícias que possuem milhares de conteúdos.
Leia também: