Elasticsearch と PHP を使用して複数条件検索機能を構築する方法

WBOY
リリース: 2023-07-08 09:20:01
オリジナル
808 人が閲覧しました

Elasticsearch と PHP を使用して複数条件検索関数を構築する方法

はじめに:
Elasticsearch は、強力な検索関数を構築するためによく使用されるオープンソースの分散型検索および分析エンジンです。高速かつ正確な検索を可能にし、さまざまな種類のクエリをサポートします。この記事では、Elasticsearch と PHP を使用して複数条件検索関数を構築する方法と、対応するコード例を紹介します。

  1. Elasticsearch のインストールと構成:
    まず、Elasticsearch をインストールして構成する必要があります。 Elasticsearch は公式 Web サイトからダウンロードし、指示に従ってインストールできます。インストールが完了したら、コマンド ライン インターフェイスを使用して Elasticsearch を開始します。
  2. Elasticsearch PHP 拡張機能をインストールして構成する:
    次に、Elasticsearch PHP 拡張機能をインストールして構成する必要があります。 Composer を使用すると、Elasticsearch PHP 拡張機能のインストールは簡単です。プロジェクトのルート ディレクトリにcomposer.json ファイルを作成し、次の内容を追加します。
{
    "require": {
        "elasticsearch/elasticsearch": "^7.0"
    }
}
ログイン後にコピー

次に、composer install コマンドを実行して、Elasticsearch PHP 拡張機能をインストールします。

  1. Elasticsearch に接続:
    PHP コードでは、Elasticsearch との接続を確立する必要があります。まず、Elasticsearch PHP 拡張機能の名前空間を導入し、Elasticsearch クライアント オブジェクトを作成します。
<?php
require 'vendor/autoload.php';

use ElasticsearchClientBuilder;

$hosts = [
    'http://localhost:9200' // Elasticsearch的访问地址
];

$client = ClientBuilder::create()->setHosts($hosts)->build();
?>
ログイン後にコピー
  1. インデックスを作成します。
    複数条件検索を実行する前に、インデックスを作成し、データをインデックスに追加します。すでに既存のインデックスがある場合は、この手順をスキップできます。

まず、インデックスの構成とマッピングを定義します。たとえば、「articles」というインデックスを作成し、「article」タイプを定義し、「title」フィールドと「content」フィールドのタイプを指定します。

<?php
$params = [
    'index' => 'articles',
    'body' => [
        'mappings' => [
            'properties' => [
                'title' => ['type' => 'text'],
                'content' => ['type' => 'text']
            ]
        ]
    ]
];

$response = $client->indices()->create($params);
?>
ログイン後にコピー

次に、ドキュメントをインデックスに追加します。たとえば、「ニュース」というタイトルのドキュメントを追加します。

<?php
$params = [
    'index' => 'articles',
    'body' => [
        'title' => '新闻',
        'content' => '这是一条新闻'
    ]
];

$response = $client->index($params);
?>
ログイン後にコピー
  1. 複数基準検索を実行します。
    これで、複数基準検索を実行できるようになります。まず、すべての検索基準を含むクエリを定義します。たとえば、タイトルに「ニュース」が含まれ、コンテンツに「インターナショナル」が含まれるドキュメントを検索したいとします。
<?php
$params = [
    'index' => 'articles',
    'body' => [
        'query' => [
            'bool' => [
                'must' => [
                    ['match' => ['title' => '新闻']],
                    ['match' => ['content' => '国际']]
                ]
            ]
        ]
    ]
];

$response = $client->search($params);
?>
ログイン後にコピー

最後に、検索結果を繰り返し処理し、各ドキュメントのタイトルとコンテンツを出力します。 :

<?php
foreach ($response['hits']['hits'] as $hit) {
    echo '标题:' . $hit['_source']['title'] . '<br>';
    echo '内容:' . $hit['_source']['content'] . '<br>';
    echo '----------------<br>';
}
?>
ログイン後にコピー

結論:
上記の手順により、Elasticsearch と PHP を使用して複数条件検索関数を構築できます。まず、Elasticsearch と対応する PHP 拡張機能をインストールして構成し、次に Elasticsearch に接続してインデックスを作成し、最後に複数条件検索を実行して検索結果を処理します。

注: 検索の精度とパフォーマンスを確保するために、複数条件検索を使用する前に、適切な単語セグメンターの設定、インデックスの構築など、インデックスを最適化することをお勧めします。

参考資料:

  • Elasticsearch 公式ドキュメント: https://www.elastic.co/guide/index.html
  • Elasticsearch PHP 公式ドキュメント: https: //www.elastic.co/guide/en/elasticsearch/client/php-api/current/index.html

以上がElasticsearch と PHP を使用して複数条件検索機能を構築する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート