私はかなりハスケルに新しいです。私は数多くのチュートリアルやその他のリソースを読んだことがありますが、リモートで何かをやっているプログラムを書こうとすると、いつどこで始めるべきか分かりません。私は最近、Gabriel Gonzalezが動機づけを維持する最善の方法が実際にプロジェクトに使用して執筆するのを話したポッドキャストを聞いていたので、私が手にしているタスクに本当に使用したいと思っています。Haskellを使用してデータベース間を移動するにはどうすればよいですか?
私はアイテムが定期的に掻き集められるように絶えず更新されているMongoデータベースと、Elasticsearchデータベースを持っています。前者は私が以前に掻き取ったアイテムで頻繁に更新され、後者はユニークなアイテムで埋められます。これを達成するために、私はスクリプト(1000行のNode.js)を持っています。このスクリプトはMongoデータベースのアイテムを1つずつ実行しています。すでにElasticsearchデータベースに入っているかどうかを確認し、そうでない場合は追加します;その後、それはMongoから削除されます。しかし、このスクリプトは完全な混乱です。
私はハスケルでこれをやりたいと思っています。ハスケルは私が読んだことや聞いたことから制御された方法でIOを管理するのに最適で、データ変換のための純粋な機能を保つという考えが好きです。実際にIOを実行するプログラムの部分は別個になります。私はまた、動作しているHaskellのソリューションがより簡潔になり、後で変更するときに理由を付けるのが簡単だと考えています。
これまでのところ、私はmongoDBパッケージを使ってMongoでチュートリアルを実行することでCRUD操作を行ってきましたが、それがどのように機能するのか分かりません。私はElasticsearchで同じことをするためのbloodhoundパッケージを扱うのが難しいと思っています。そして、私は一緒に物事を一緒にする方法について完全に困惑しています。特に、関連項目は正常に追加された後Mongoから削除される弾性検索に。
これは非常に広い質問ですが、誰かがこれについて何かを知っていたり、単に私にある方向性を与えることができれば、私はそれを感謝します。実際、すべての助けは非常に高く評価されるでしょう。
この質問は、あまりにも広範であり、有用な方法でスタックオーバーフロー形式で答えることはできません。現時点で達成するのが難しいことを小さな自己完結型のコードに掘り下げ、それについて質問をすることで、ここでより良い結果が得られるでしょう。 – duplode