質問: 表題に関して質問がございまして、投稿いたしました。 SNSやネットショッピングサイトなどで、個人のマイページや個々の商品上のすべての情報を検索可能にし、あらゆる面からそのページに飛ぶことができるという機能があるかと思いますが、その機能に関する質問でございます。 質問は3つございます。 1つ目が、検索対象である個々の情報はどこにあるのでしょうか。 ユーザーが持っている個々の端末に保管されているのか、もしくはインターネットのサーバ上に保管されているのでしょうか。 2つ目が、付随する形になってしまうのですがデータベースを保管する技術として、web上に保管する技術とユーザーの端末上に保管する技術の両方が存在するのでしょうか。 その技術があるのであれば、可能であれば技術の詳細の名前をお教えいただけると幸いでございます。 また、端末上に保管する技術に関して、存在するのであればそのデータの更新はどのように行われているのでしょうか。 3つ目が、アプリケーションに存在する情報を検索する機能を追加する際に必要になる技術についてなのですが、どのような技術が必要になるのでしょうか。現状あるjavaやpythonなどのプログラミング言語に関する知識でどうにかなるものなのでしょうか。 上記3点に関して、webアプリ、androidアプリ、iphoneアプリで違いがあるようでしたら、よろしければ、それぞれに関する情報をご教授いただければ幸いでございます。 不適切なご質問でしたら誠に申し訳ございません。また、一度に多くのご質問申し訳ございません。 プログラミング中で困っている現状でございます。 ご回答いただけると幸いでございます。
回答: > > 1つ目が、検索対象である個々の情報はどこにあるのでしょうか。 > > > 通常、「**インターネットのサーバ上に保管**」されています。 > > データベースを保管する技術として、web上に保管する技術 > > > そのまま**データベースやサーバの管理**というジャンルになります。 「**インフラ**(エンジニア)」などと言ったり、いろいろな呼び方があります。 今流行の「**クラウド**」とか、プラットフォームで呼んだりもします。 > > 端末上に保管する技術に関して、 > > そのデータの更新はどのように行われているのでしょうか。 > > > 画像はサーバにありますが、それがクライアント側のブラウザで見れる、 ということは端末側にもデータは来ています。それは**ネットワーク** は普通そうなっていて、HTMLのみのサイトを閲覧してもそうです。 端末側にデータを持ってこなければ、単純にないものは見れませんから。 ユーザ側で見られるデータというのは、**基本的にダウンロード**しています。 キャッシュなどユーザ側に残す仕組みもありますが、それも初回はDLして作成します。 > > アプリケーションに存在する情報を検索する機能を追加する際に必要になる技術 > > > 「**検索アルゴリズム**」というジャンルになります。 たとえば、Webサービスに全文検索を導入する際は、 検索用のインデックスを作成しておいたりします。 検索アルゴリズムは自然言語処理に近い分野です。 なぜなら、ショッピングサイトにしろSNSにしろ、 検索対象の多くは自然言語(日本語など)で書かれているからです。 > > 現状あるjavaやpythonなどの > > プログラミング言語に関する知識でどうにかなるものなのでしょうか > > > 結局、検索などを実装する必要があるので、言語の知識は基本になります。 しかし、アルゴリズムを自力で発見するのは難しいです。普通は学習します。 **言語の基本知識も必要、アルゴリズムの応用知識も必要**、結局どっちも必要です。 > > webアプリ、androidアプリ、iphoneアプリで違い > > > プラットフォームが違えば、JavaScript、Java、Swiftなど、 **開発言語は違ってきます**。Xamarinなどクロスプラットフォームの フレームワークもありますが、それ自体の習得はやはり必要です。 その一方で、検索などの**アルゴリズムは変わりません**。 日本語でも英語でも、数学の構造は変わらないようなものです。