Uma experiência perfeita para mecanismos de pesquisa RSS com uma pitada de aprendizado de máquina.
Um dump SQL do banco de dados com mais de 3 milhões de entradas extraídas em mais de um ano pode ser baixado em https://davidesantangelo.gumroad.com/l/nkyymb
O DATO.RSS está na versão beta e provavelmente verá muitas mudanças no futuro próximo.
Se você tiver comentários ou sugestões, envie -os para nós usando a guia Problemas.
Obrigado por experimentar o beta!
Mecanismo de pesquisa: pesquise rapidamente os milhões de feeds RSS disponíveis.
API RESTful: transforma os dados de alimentação em uma API incrível. A API simplifica como você lida com RSS, Atom ou JSON Feeds. Você pode adicionar e acompanhar seus dados de feed favoritos com uma API de repouso simples, rápida e limpa. Todas as entradas são enriquecidas por aprendizado de máquina e motores semânticos.
curl ' https://<yourhost>/api/searches?q=news ' | json_pp
{
" data " : [
{
" id " : " 86b0f829-e300-4eef-82e1-82f34d03aff6 " ,
" type " : " entry " ,
" attributes " : {
" title " : " " Pandemic, Infodemic " : 2 Cartoon Characters Battling Fake News In Assam " ,
" url " : " https://www.ndtv.com/india-news/coronavirus-pandemic-infodemic-2-cartoon-characters-battling-fake-news-in-assam-2222333 " ,
" published_at " : 1588448805,
" body " : " An English daily in Assam's Guwahati has been publishing a cartoon strip to tackle the fake news related to the coronavirus pandemic. The two central characters- " Pandemic and Infodemic " - are being...<img src= " http://feeds.feedburner.com/~r/NDTV-LatestNews/~4/lEmH201Q8jI " height= " 1 " width= " 1 " alt= "" /> " ,
" text " : " An English daily in Assam's Guwahati has been publishing a cartoon strip to tackle the fake news related to the coronavirus pandemic. The two central characters- " Pandemic and Infodemic " - are being... " ,
" categories " : [
" all india "
],
" sentiment " : null,
" parent " : {
" id " : " c97bdae6-b5d1-4966-b9f3-615e29d4d47d " ,
" title " : " NDTV News - Special " ,
" url " : " feed:http://feeds.feedburner.com/NDTV-LatestNews " ,
" rank " : 99
},
" tags " : []
},
" relationships " : {
" feed " : {
" data " : {
" id " : " c97bdae6-b5d1-4966-b9f3-615e29d4d47d " ,
" type " : " feed "
}
}
}
},
]
}
A pesquisa é implementada com o recurso Postgres de pesquisa de texto completo.
Eu usei a jóia pg_search , que pode ser usada de duas maneiras:
Pesquisa multi: pesquise em vários modelos e retorne uma única variedade de resultados. Imagine ter três modelos: produto, marca e revisão. Usando pesquisas múltiplas, poderíamos pesquisar em todos eles ao mesmo tempo, vendo um único conjunto de resultados de pesquisa. Isso seria perfeito para adicionar funcionalidade de pesquisa federada ao seu aplicativo.
Escopo de pesquisa: pesquise em um único modelo, mas com maior flexibilidade.
execute << - SQL
ALTER TABLE entries
ADD COLUMN searchable tsvector GENERATED ALWAYS AS (
setweight(to_tsvector( ' simple ' , coalesce(title, ' ' )), ' A ' ) ||
setweight(to_tsvector( ' simple ' , coalesce(body, ' ' )), ' B ' ) ||
setweight(to_tsvector( ' simple ' , coalesce(url, ' ' )), ' C ' )
) STORED;
SQLA classificação do feed é fornecida pelo OpenRank uma métrica de autoridade de domínio raiz gratuita com base no conjunto de dados de PageRank de pesquisa comum. O valor é normilizado por
( ( Math . log10 ( domain_rank ) / Math . log10 ( 100 ) ) * 100 ) . round O aprendizado de máquina é fornecido pela Dandelion API Semantic Text Analytics como um serviço, do texto a dados acionáveis. Extraia o significado do texto não estruturado e coloque -o em contexto com uma API simples.
Você pode adicionar quantos feeds quiser para o rastreador automático manusear.
https: /// feeds/new
Toda a documentação da API está na seção Wiki. Sinta -se à vontade para torná -lo melhor, é claro.
https://github.com/davidelangelo/dato.rss/wiki
Para usar alguns recursos, como adicionar um novo feed, você precisa de um token com permissão de gravação . Atualmente, só eu posso habilitá -lo. Caso entre em contato comigo
Além de muitas gemas de rubi, cuja lista completa está em /main /gemfile.
Se você deseja me apoiar nos custos do servidor para manter o DATO.ess gratuitamente, considere patrocinar! Obrigado!
Patrocinador do Github
Relatórios de bug e solicitações de puxar são bem -vindos no github em https://github.com/davideantangelo/dato.rss. Este projeto deve ser um espaço seguro e acolhedor para a colaboração, e espera -se que os colaboradores sigam o Código de Conduta do Covenant colaborador.
A GEM está disponível como código aberto nos termos da licença do MIT.