ホームページ >ウェブフロントエンド >フロントエンドQ&A >Nodejsで検索機能を実装する方法

Nodejsで検索機能を実装する方法

PHPz
PHPzオリジナル
2023-04-17 16:41:141328ブラウズ

ご存知のとおり、現代のネットワーク技術は非常に発達しており、インターネット上には大量の情報が存在し、人々の利用に伴って日々増加しています。したがって、検索エンジンは私たちの日常使用に不可欠なツールとなっています。バックエンド開発の分野では、Node.js は最も人気があり、広く使用されているテクノロジーの 1 つです。大量の同時リクエストを簡単に処理できるためです。この記事では、Node.js を使用して強力でスケーラブルな検索エンジンを構築する方法について説明します。

ステップ 1: Node.js をインストールする

まず、システムに Node.js をインストールする必要があります。これは、公式 Web サイト [nodejs.org](nodejs.org) のダウンロード ページから入手できます。ダウンロード後、通常の手順に従ってインストールし、node コマンドを使用します。次のコマンドを入力して、インストールが成功したことを確認します。

node -v

ステップ 2: プロジェクトの作成

まず、新しい Node.js プロジェクトを作成し、使いやすくするために必要なファイルとモジュールをいくつか追加します。 。これは、コマンド ライン インターフェイスで次のコマンドを使用して実行できます。

mkdir search-engine && cd search-engine
npm init -y
touch index.js

プロジェクトのルート ディレクトリに新しいフォルダーを作成し、そのフォルダーに入ります。次に、npm init コマンドを使用して、プロジェクトのコードの依存関係、作成者、その他の構成をリストする新しい package.json ファイルを生成します。完了したら、index.js というメイン ファイルを作成します。ここに検索ロジックのほとんどを記述します。

ステップ 3: ElasticSearch モジュールを追加する

Node.js プロジェクトでは、ElasticSearch モジュールを使用して検索操作を実行する必要があります。このモジュールは、インデックスの作成、ドキュメントの検索、データの削除など、プロジェクトのニーズに応じて構成して使用できる多くの機能を提供します。これを使用するには、次のコマンドを使用してインストールする必要があります。

npm install elasticsearch --save

ステップ 4: 検索機能の実装

見つかったデータを次のコマンドに変換することで、検索機能の実装を開始します。 ElasticSearch のドキュメント形式。これは、次のコードを使用して実行できます。

const data = [
    { title: '文章1', body: '8月6日讯 北京市公安局交通管理局昨日通报称,自2018年8月5日至8月6日...(略)...', id: 1 },
    { title: '文章2', body: '8月6日讯 北京市公安局交通管理局昨日通报称,自2018年8月5日至8月6日...(略)...', id: 2 },
    { title: '文章3', body: '8月6日讯 北京市公安局交通管理局昨日通报称,自2018年8月5日至8月6日...(略)...', id: 3 },
    { title: '文章4', body: '8月6日讯 北京市公安局交通管理局昨日通报称,自2018年8月5日至8月6日...(略)...', id: 4 },
    { title: '文章5', body: '8月6日讯 北京市公安局交通管理局昨日通报称,自2018年8月5日至8月6日...(略)...', id: 5 },
    { title: '文章6', body: '8月6日讯 北京市公安局交通管理局昨日通报称,自2018年8月5日至8月6日...(略)...', id: 6 },
]

data.forEach(({ title, body, id }) => {
        elasticClient.index({
            index,
            body: {
                id,
                title,
                body
            }
        })
    })

これで、ElasticSearch を使用して検索操作を実行する準備が整いました。検索プロセスを search という関数にカプセル化したいと考えています。この関数は、クエリ文字列、ドキュメント タイプ、結果の数などの複数のパラメータを受け取ります。検索を実装するコードは次のとおりです。

async function search({ query, type, limit }) {
        const { body } = await elasticClient.search({
            index,
            type,
            body: {
                size: limit,
                query: {
                    match: {
                        title: {
                            query,
                            fuzziness: 2
                        }
                    }
                }
            }
        });

        return body.hits.hits.map(({ _source }) => _source);
    }

これで、Node.js にシンプルだが強力な検索エンジンを実装できます。 Web アプリケーション、社内エンタープライズ検索、データ分析などのさまざまなユースケースに使用できます。

要約すると、Node.js は、拡張性が高く、大量のリクエストを処理できるバックエンド システムの構築に役立つ強力な開発ツールです。個々のモジュールの使用法を学ぶことで、プロジェクトのニーズをサポートする独自の検索エンジンを構築できます。 Node.js は、リクエストの処理や検索の実行などに優れているため、依然として使用するのに最適なバックエンド テクノロジの 1 つです。この記事の学習と実践を通じて、読者の Node.js を使用した検索機能の開発に役立つことを願っています。

以上がNodejsで検索機能を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。