ホームページ バックエンド開発 PHPチュートリアル PHP の Elasticsearch に基づくあいまい検索とセマンティック検索の実装

PHP の Elasticsearch に基づくあいまい検索とセマンティック検索の実装

Oct 03, 2023 am 08:37 AM
elasticsearch あいまい検索 セマンティック検索

PHP 中基于 Elasticsearch 的模糊搜索与语义搜索实现

PHP での Elasticsearch に基づくあいまい検索とセマンティック検索の実装には、特定のコード例が必要です

現代のインターネット環境では、検索機能はさまざまなアプリケーションにとって必須となっています。 . 機器の機能の一つ。従来のあいまい検索では、キーワードに基づく単純な一致しか実行できないことが多く、ユーザーの意図を理解できませんでした。セマンティック検索により、ユーザーの意図をより適切に捉え、より正確な検索結果を提供できます。この記事では、Elasticsearchを使用してPHPであいまい検索とセマンティック検索を実装する方法と、具体的なコード例を紹介します。

Elasticsearch は、Lucene をベースにしたオープンソースの検索エンジンで、豊富な検索機能と効率的な分散検索サポートを提供します。 PHP では、Elasticsearch が提供する公式クライアント ライブラリである Elasticsearch-PHP を使用して、Elasticsearch と対話できます。

まず、Elasticsearch-PHP ライブラリを PHP プロジェクトに導入する必要があります。 Composer を介してインストールできます。必要な作業は、プロジェクトのルート ディレクトリにあるcomposer.json ファイルに依存関係を追加するだけです:

{
  "require": {
    "elasticsearch/elasticsearch": "^7.0"
  }
}
ログイン後にコピー

その後、composer install コマンドを実行してインストールします。

次に、Elasticsearch との接続を確立する必要があります。 PHP では、これは次のコードを通じて実現できます: 上記のコードの

<?php
require 'vendor/autoload.php';

$client = ElasticsearchClientBuilder::create()
            ->setHosts(['localhost:9200']) // 修改为 Elasticsearch 的地址和端口
            ->build();
?>
ログイン後にコピー

localhost:9200 は、Elasticsearch サービスのアドレスとポートです。デフォルトでは、Elasticsearch のリスニング アドレスは次のとおりです。 localhost でポートは 9200 です。 Elasticsearch が別のマシンで実行されている場合、またはポートが異なる場合は、対応する値に変更する必要があります。

これで、あいまい検索機能の実装を開始できます。以下は簡単な例です。上記のコードの

<?php
require 'vendor/autoload.php';

$client = ElasticsearchClientBuilder::create()
            ->setHosts(['localhost:9200'])
            ->build();

$params = [
    'index' => 'my_index',
    'body'  => [
        'query' => [
            'match' => [
                'title' => [
                    'query' => '搜索关键字',
                    'fuzziness' => 'AUTO',
                ],
            ],
        ],
    ],
];

$response = $client->search($params);

foreach ($response['hits']['hits'] as $hit) {
    echo $hit['_source']['title'] . "
";
}
?>
ログイン後にコピー

my_index は Elasticsearch のインデックスであり、title はフィールド名です。 match クエリを通じてあいまい検索を実行し、fuzziness パラメーターを使用してあいまい一致の程度を設定します。 AUTO は、Elasticsearch にあいまい一致の程度を自動的に決定させることを意味します。

もちろん、より複雑な検索関数が必要な場合は、multi_matchbool など、Elasticsearch が提供する他のクエリ タイプを使用することもできます。具体的な利用方法については、Elasticsearchの公式ドキュメントを参照してください。

次に、セマンティック検索機能の実装方法を紹介します。セマンティック検索を実装するには、Elasticsearch-Elasticsearch Elasticsearch-Elasticsearch-DSL というプラグインを使用する必要があります。このプラグインは、PHP を通じて複雑なクエリを構築できる DSL (ドメイン固有言語) を提供します。

まず、composer.json ファイルを変更し、次の依存関係を追加する必要があります:

{
  "require": {
    "elasticsearch/elasticsearch": "^7.0",
    "elastic/elasticsearch-dsl": "^8.0"
  }
}
ログイン後にコピー

次に、composer install コマンドを実行してインストールします。

次に、Elasticsearch-Elasticsearch-DSL を使用してセマンティック クエリを構築できます。以下は簡単な例です。上記のコードの

<?php
require 'vendor/autoload.php';

use ElasticsearchClientBuilder;
use ElasticsearchDSLSearch;

$client = ClientBuilder::create()
            ->setHosts(['localhost:9200'])
            ->build();

$search = new Search();
$search->addQuery(
    (new ElasticsearchElasticsearchDSLQueryMultiMatchQuery('搜索关键词', ['title', 'content']))
        ->setFuzziness('AUTO')
);

$params = [
    'index' => 'my_index',
    'body'  => $search->toArray(),
];

$response = $client->search($params);

foreach ($response['hits']['hits'] as $hit) {
    echo $hit['_source']['title'] . "
";
}
?>
ログイン後にコピー

titlecontent は Elasticsearch のフィールド名であり、MultiMatchQuery を通じて構築されます。複数フィールドのクエリを作成し、あいまい一致の程度を設定します。

上記のコード例を通じて、Elasticsearch を使用して、PHP であいまい検索およびセマンティック検索関数を実装できます。もちろん、実際のビジネス シナリオでは、検索機能をさらに最適化および拡張して、より正確かつ効率的な検索結果を実現できます。この記事がお役に立てば幸いです!

以上がPHP の Elasticsearch に基づくあいまい検索とセマンティック検索の実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Elasticsearch と PHP を使用して製品の検索と推奨を行う方法 Elasticsearch と PHP を使用して製品の検索と推奨を行う方法 Jul 09, 2023 pm 03:07 PM

Elasticsearch と PHP を使用して製品の検索と推奨を行う方法 はじめに: 今日の電子商取引分野では、ユーザーにとって優れた検索および推奨システムが非常に重要です。 Elasticsearch は、強力かつ柔軟なオープンソースの検索エンジンであり、バックエンド開発言語として PHP と組み合わせることで、電子商取引 Web サイトに効率的な商品検索とパーソナライズされたレコメンデーション機能を提供できます。この記事では、ElasticsearchとPHPを使って商品検索やレコメンド機能を実装し、添付する方法を紹介します。

ChatGPT Java: 正確なセマンティック検索エンジンを構築する方法 ChatGPT Java: 正確なセマンティック検索エンジンを構築する方法 Oct 24, 2023 am 10:21 AM

ChatGPTJava: 正確なセマンティック検索エンジンを構築する方法 (特定のコード例が必要) はじめに: インターネットの急速な発展と情報の爆発的な増加に伴い、人々は必要な情報を取得する過程で低品質で一貫性のない検索結果に遭遇することがよくあります。まさに質問です。より正確かつ効率的な検索結果を提供するために、セマンティック検索エンジンが登場しました。この記事では、ChatGPTJava を使用して正確なセマンティック検索エンジンを構築する方法を紹介し、具体的なコード例を示します。 1.ChatGPTJを理解する

Elasticsearch と PHP を使用してユーザー ログインと権限管理システムを構築する方法 Elasticsearch と PHP を使用してユーザー ログインと権限管理システムを構築する方法 Jul 08, 2023 pm 04:15 PM

Elasticsearch と PHP を使用してユーザー ログインと権限管理システムを構築する方法 はじめに: 現在のインターネット時代では、ユーザー ログインと権限管理はあらゆる Web サイトやアプリケーションに必要な機能の 1 つです。 Elasticsearch は強力で柔軟な全文検索エンジンであり、PHP は広く使用されているサーバーサイド スクリプト言語です。この記事では、Elasticsearch と PHP を組み合わせて、シンプルなユーザー ログインと権限管理システムを構築する方法を紹介します。

php Elasticsearch: 動的マッピングを使用して柔軟な検索機能を実現するにはどうすればよいですか? php Elasticsearch: 動的マッピングを使用して柔軟な検索機能を実現するにはどうすればよいですか? Sep 13, 2023 am 10:21 AM

PHPElasticsearch: 動的マッピングを使用して柔軟な検索機能を実現するにはどうすればよいですか?はじめに: 検索機能は、最新のアプリケーションの開発に不可欠な部分です。 Elasticsearch は、豊富な機能と柔軟なデータ モデリングを提供する強力な検索および分析エンジンです。この記事では、動的マッピングを使用して柔軟な検索機能を実現する方法に焦点を当てます。 1. 動的マッピングの概要 Elasticsearch では、マッピング (mapp

PHPでAmap APIを使用して地名のあいまい検索を実装する方法 PHPでAmap APIを使用して地名のあいまい検索を実装する方法 Jul 31, 2023 pm 02:13 PM

PHP で Amap API を使用して地名のあいまい検索を実装する方法の概要: 地理的位置に基づいてアプリケーションを開発する場合、ユーザーが入力した地名に基づいてあいまい検索を実行し、検索結果を返すことが必要になる場合があります。 。 Amap は、この機能を簡単に実装できる豊富な API セットを提供します。この記事では、PHP で Amap API を使用して地名のあいまい検索を実装する方法とコード例を紹介します。手順: Amap API の開発者キーを取得します。まず、Amap オープン プラットフォームを開く必要があります。

PHP と Elasticsearch を使用して検索結果を強調表示する方法 PHP と Elasticsearch を使用して検索結果を強調表示する方法 Jul 17, 2023 pm 09:24 PM

PHP と Elasticsearch を使用して強調表示された検索結果を取得する方法 はじめに: 現代のインターネットの世界では、検索エンジンが人々が情報を入手する主な方法となっています。検索結果の読みやすさとユーザー エクスペリエンスを向上させるために、検索キーワードを強調表示することが一般的な要件になっています。この記事では、PHP と Elasticsearch を使用して強調表示された検索結果を取得する方法を紹介します。 1. 準備 開始する前に、PHP と Elasticsearch が正しくインストールされ、設定されていることを確認する必要があります。

Elasticsearchのクエリ構文と実践的な戦闘についての徹底的な研究 Elasticsearchのクエリ構文と実践的な戦闘についての徹底的な研究 Oct 03, 2023 am 08:42 AM

Elasticsearch クエリ構文の詳細な研究と実践的な導入: Elasticsearch は、Lucene に基づくオープンソースの検索エンジンです。主に分散検索と分析に使用されます。大規模データの全文検索、ログ分析に広く使用されています。 、推奨システムおよびその他のシナリオ。データ クエリに Elasticsearch を使用する場合、クエリ構文を柔軟に使用することがクエリ効率を向上させる鍵となります。この記事では、Elasticsearch のクエリ構文を詳しく説明し、実際のケースに基づいて説明します。

PHP の Elasticsearch に基づくログ分析と例外監視 PHP の Elasticsearch に基づくログ分析と例外監視 Oct 03, 2023 am 10:03 AM

PHP の Elasticsearch に基づくログ分析と例外監視の概要: この記事では、ログ分析と例外監視に Elasticsearch データベースを使用する方法を紹介します。簡潔な PHP コード例を通じて、Elasticsearch データベースに接続し、データベースにログ データを書き込み、Elasticsearch の強力なクエリ機能を使用してログ内の異常を分析および監視する方法を示します。はじめに: ログ分析と例外監視は

See all articles