[RUBY] Nous avons créé un site de classement pour les livres commerciaux et les livres pratiques basés sur des informations telles que des notes.

introduction

Nous avons créé un site de classement en agrégeant les produits Amazon liés à partir des articles publiés dans les notes. Il existe un Tech Book Rank basé sur Qiita pour le classement des livres techniques, mais je veux lire des livres de commerce et des livres pratiques, donc s'il s'agit d'un cahier, c'est le cas. Je pensais qu'il y avait des informations.

Note Station | Les livres commerciaux populaires, les livres pratiques et les livres techniques sont mis à jour quotidiennement au format de classement

image.png

À l'origine, je l'ai fait pour un usage personnel, comme référence pour l'achat de livres et comme étude du traitement des classements, mais j'ai décidé de le publier parce que je pensais que ce serait plus pratique que prévu.

Puisqu'il existe de nombreuses catégories de livres, il est possible de filtrer les informations par catégorie jusqu'au deuxième niveau. Lorsque la catégorie Amazon est affichée jusqu'à la fin, c'est très bien, donc la résolution est approximative.

De plus, comme des informations autres que des livres sortent, j'essaie de les afficher telles quelles sans filtrage.

Ce que tu ne peux pas faire

Bien qu'il soit résumé comme TODO, je souhaite principalement améliorer la zone de classement.

En particulier, j'essaie de gérer le fait que le Kindle et les livres physiques sont traités séparément. J'ai déjà les informations pour l'identification du nom, mais comme le score est calculé par MySQL, je crains que la requête ne devienne très lourde si j'inclus le processus d'identification du nom.

Aussi, je voudrais gérer le rétrécissement de l'éventail des découvertes car les meilleurs classements des mois et des années sont similaires.

Après cela, d'autres livres sont également présentés dans un article, je voudrais donc afficher les livres associés avec l'affichage du classement. Même sur Amazon, les produits associés ne peuvent être tracés que sur chaque page, donc si vous affichez des produits connexes dans une petite taille dans l'affichage de la liste, vous pouvez avoir l'impression de regarder une étagère dans une librairie.

À propos du classement

Je ne suis pas un expert, donc je ne peux pas mettre en œuvre des théories et des processus difficiles, mais j'ai prêté attention aux points suivants.

Vous pouvez voir un livre comme celui-ci.

month.jpg

Liste des technologies utilisées

La technologie que j'utilise n'est pas nouvelle. Je voulais le faire avec SPA, mais comme il n'y a qu'une seule page, je l'ai fait classique. J'étudie également, donc je pense en faire bientôt SPA.

Je ne veux pas dépenser autant d'argent que possible, alors j'utilise le VPS de Conoha au lieu d'AWS ou de GCP.

Cependant, le serveur qui analyse et agrège et le serveur qui distribue les informations de classement sont séparés. Les informations de classement sont générées une fois par jour et le site Web ne dispose pas de traitement d'écriture. Ainsi, après avoir généré les informations de classement générées sur MySQL, elles sont vidées en tant que fichier SQLite et transférées vers VPS pour le site Web. (Les données avant agrégation sont un grand nombre d'enregistrements et une grande taille de données sur MySQL, donc je ne veux pas y faire référence)

Le vidage des informations de classement dans SQLite est effectué car le nombre d'enregistrements est petit, mais cela réduit l'utilisation de la mémoire et l'utilisation du disque, et il peut être exploité avec un petit VPS. Pour l'instant, je pense que cela fonctionne assez bien (le temps de réponse est inférieur à 50 millisecondes).

Je veux que vous l'essayiez une fois.

Note Station | Les livres commerciaux populaires, les livres pratiques et les livres techniques sont mis à jour quotidiennement au format de classement

Recommended Posts

Nous avons créé un site de classement pour les livres commerciaux et les livres pratiques basés sur des informations telles que des notes.
Création d'une image de conteneur Docker pour un serveur OpenLDAP basé sur Fedora