実はこの記事はずっと前に書かれたはずなのに、怠惰すぎて今まで引きずり出しました。 TG-botはまだ非常に楽しく、多くの予期しない機能を実行できます。 i-Book.in ページのバックエンドはアルゴリアであるため、無料ユーザーの最大データストレージはわずか1Wです。 多くの拡張の後、私の現在のデータ量は大幅に超えましたが、Flaskは非常に難しいため、まだ修正していません。 余分なデータがインデックス化されていない場合は、自分で見つける必要があるため、TGボットを構築し、バックエンドはElasticsearchを使用してデータを保存するため、数百万のデータでも簡単に処理でき、フロントエンドはTelegramのAPIを使用します。
次のセクションでは、このボットの概要を説明します。
このボットには1つのコマンドしかありません, つまり, '/so', このコマンドは、タイトルと作成者を同時に検索できます, 入力した内容に応じて, 最も近い結果を返す, 最も正確な結果を得るために完全なタイトル/著者を入力することをお勧めします. もちろん、データベースにない本を検索すると、キーワードに近い結果もいくつか返されます。
興味がある場合は、TGグループでこのボットに嫌がらせをするために、{%btn https://telegram.me/ibookin、ここをクリックして、電報fa-lg fa-fw %}することができます。
あなたが望む本が見つからないのは普通のことです、結局のところ、それは非常に小さなデータベースであり、毎年数十万の新しい出版物があり、現在の合計は毎年新しい本の10分の1でさえないことを知っている必要があります。 これに基づいて「利益を上げる」つもりもありませんでしたが、データの照合と改良に興味がありました。 最近、私はいくつかの本の情報をクロールし、データベース内の本が最も多い人、どの国が最も多くの本を持っているか、どのタイプの本が最も多いかなど、データの昇華を行うつもりです。
ボットは最初にプライベートチャットから送信された情報を受信してバックエンドスクリプトに返し、バックエンドはメッセージの内容に従ってESを取得し、次に解析された情報をESのリターンデータに従ってメッセージが受信されるチャネルに送り返します。 データベースがなく、このボットを複製する方法がないため、詳細を書きたくないので、コアコンテンツのみを作成する予定です。
私はESにあまり堪能ではないので、Javaや面倒な構成項目をいじくり回すことなく、Dockerバージョンを直接使用し、直接プルして使用できます。
curl -fsSL https://get.docker.com -o get-docker.sh 須藤 get-docker.sh
Dockerのインストールが完了したら、ESを取得します。
ドッカープルエラスティックサーチ:6.7.0
ESのマウントディレクトリと構成ファイルを作成します。
CD / mkdir -p mnt/elasticsearch CD MNT/ELASTICSEARCH mkdir config MKDIR マスター MKDIR スレーブ chmod 777 マスター chmod 777 スレーブ
config内に、2つの構成ファイルを配置します。
CD コンフィグレーション タッチマスター.yml タッチスレーブ.yml
'master.yml':
cluster.name: エラスティックサーチクラスター node.name: マスター network.bind_host: 0.0.0.0 network.publish_host: 'あなたのIP' ポート: 9200 トランスポート.tcp.ポート: 9300 http.cors.enabled: true http.cors.allow-origin: "*" ノードマスター: 真 ノード データ: 真 discovery.zen.ping.unicast.hosts: [" 'your ip':9300"," 'your IP':9301"]
'slave.yml':
cluster.name: エラスティックサーチクラスター node.name:スレーブ network.bind_host: 0.0.0.0 network.publish_host: 'あなたのIP' ポート: 9202 トランスポート.tcp.ポート: 9302 http.cors.enabled: true http.cors.allow-origin: "*" ノード マスター: 偽 ノード データ: 真 discovery.zen.ping.unicast.hosts: ["'your ip':9300","'your ip':9301"]
JVMスレッド制限を増やす必要があります(そうしないとエラーが報告されます)。
nano /etc/sysctl.conf #添加这个 vm.max_map_count=262144 #保存后执行这个命令 sysctl -p
コンテナーを初期化する
'マスター':
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 -v /mnt/elasticsearch/config/master.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /mnt/ Elasticsearch/master:/usr/share/elasticsearch/data --name es-master elasticsearch:6.7.0
'スレーブ':
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9201:9201 -p 9301:9301 -v /mnt/elasticsearch/config/slave.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /mnt/ Elasticsearch/slave:/usr/share/elasticsearch/data --name es-slave ElasticSearch:6.7.0
残りはボットとドッキングすることですが、ボットは完全に最適化されていないため、しばらくしてから更新し、その時点でGtihubに配置されます。
データ量が多い場合にのみ、データは花を咲かせることができるので、最近収集した書籍情報は、既存のデータキャプチャに基づくものではなく、1つを見てサイト全体をクロールし、将来電子書籍ファイルがある場合、直接一致するデータを出力し、データを探す心配はありません。 次のステップは、GitHub上のIPFSリンクなしで本の情報をオープンソース化することです(既製のように見えたことを覚えていますが、ホイールを作るのが大好きです! )'。
最近、トリッキーな「対話者」を読み終えたばかりで、「社会階級の不平等の根本的な原因は情報の不平等です」という文が何度も出てきました。 情報をすべての人に平等にする方法はありませんが、より多くの情報にアクセスできる場合は、なぜですか? 怠け者だから、トラブルを恐れているから、難しいと感じているから、時間がかかると感じているから、あきらめているからといって、誰もがこの能力を持っていると思います。 本を読むことは非常に時間とエネルギーを消費するものです」(誰かが私に反論したに違いありません、数日で数百万語の本を読んだ後、申し訳ありませんが、それらは電子薬であり、読んだ後に栄養はありません。 本を真剣に読むことは、本の登場人物に心を向けることができ、言葉を通して著者が伝える感情や感情を体験することができ、また多くの新しい知識を学ぶことができます。 この知識は英語である必要はありません、多分それは特定の料理の練習です、多分それは非常に人気のない小さなスキルですが、それが習得されている限り、それはあなたのユニークな知識です。
Telegramを使用する必要性は、一部の人々にとってこのボットを使用することの難しさを増しましたが、しきい値が必要だと思います、このボットを使用して、必要な本が見つからない場合は、個人的にチャットしないでください私は私に追加するように頼みました、私はそれを追加しません、私はそれを1つずつ手動で追加するのが好きではありません、それはばかげています、私がデータの別のバッチを見つけない限り。 だがしかし。。。。。。 私の前に数百ギガバイトのデータが横たわっているとしても、私はまだ非常に空腹です。
最後に、リファクタリング i-book.in を引き継いでくれるフロントエンドを知っている大物がいる場合は、私に連絡することができます。
RDPフレームレートを向上させるテクニック
この記事の主な内容は、検索エンジン i-Book.in でリソースのダウンロード速度を改善する方法、IPFS ネットワークといくつかのトリックを紹介することです。
好きな絵文字を作ってください。このように、マップを見つけるのはより便利で、マップとの戦いはよりゆったりとしています!!
時の流れは早い 波乱万丈の今年は あっと言う間に過ぎ去りました
複数のネットワークカードの下でネットワークなしでUbuntuが起動するバグを記録して修正します
目次
人気タグ
その他の言語
サイト情報