ホームページ > バックエンド開発 > PHPチュートリアル > PHP の Elasticsearch に基づくナレッジ グラフとデータ接続

PHP の Elasticsearch に基づくナレッジ グラフとデータ接続

WBOY
リリース: 2023-10-03 10:22:02
オリジナル
1067 人が閲覧しました

PHP 中基于 Elasticsearch 的知识图谱与数据连通

PHP の Elasticsearch に基づくナレッジ グラフはデータに接続されており、特定のコード例が必要です

ナレッジ グラフは、知識の構造と関係を説明するために使用されるグラフィカル モデルです。エンティティ間の関係は、ノードとエッジの接続によって表現されます。 Elasticsearch は、大量のデータを迅速に処理し、強力な検索および分析機能を提供するオープン ソース ベースの全文検索エンジンです。この記事では、PHP を使用して Elasticsearch に基づいたナレッジ グラフを構築する方法を紹介し、具体的なコード例を示します。

まず、Elasticsearch をインストールして起動する必要があります。 Elasticsearch は、公式 Web サイト (https://www.elastic.co/) からダウンロードしてインストールできます。インストールが完了したら、次のコードを使用して Elasticsearch を起動します:

$client = ElasticsearchClientBuilder::create()->build();
ログイン後にコピー

次に、ナレッジ グラフ データを保存するためのインデックスを作成する必要があります。 Elasticsearch では各ドキュメントに一意の ID があり、エンティティの一意の識別子をドキュメントの ID として使用できます。たとえば、「person」というエンティティがある場合、その人物の一意の識別子をドキュメントの ID として使用できます。以下は、インデックスを作成するサンプル コードです。

$params = [
    'index' => 'knowledge_graph',
    'body'  => [
        'mappings' => [
            'properties' => [
                'entity' => [
                    'type' => 'text'
                ],
                'relationship' => [
                    'type' => 'text'
                ],
                'related_entities' => [
                    'type' => 'text'
                ]
            ]
        ]
    ]
];

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

上記のコードでは、knowledge_graph という名前のインデックスを定義し、インデックスのプロパティを指定します。 entity フィールドはエンティティの名前を格納するために使用され、relationship フィールドはエンティティ間の関係を格納するために使用され、relative_entities フィールドは次の目的で使用されます。エンティティの関連エンティティを保存します。

次に、ナレッジ グラフのデータを Elasticsearch に保存できます。以下は、インデックスにデータを追加するためのサンプル コードです。

$params = [
    'index' => 'knowledge_graph',
    'id'    => '1',
    'body'  => [
        'entity'           => '人',
        'relationship'     => '是',
        'related_entities' => ['学生', '教师']
    ]
];

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

上記のコードでは、1 という名前のドキュメントを定義し、ドキュメントのプロパティを指定します。 entity フィールドにはエンティティ「person」の名前が格納され、relationship フィールドにはエンティティ間の関係「is」が格納され、relative_entities フィールドには関連エンティティが格納されます。エンティティ「生徒」と「教師」の。

同様のコードを使用することで、より多くのナレッジ グラフ データを Elasticsearch に保存できます。

次に、Elasticsearch が提供する検索 API を使用して、ナレッジ グラフ データをクエリできます。以下は、エンティティを検索するためのサンプル コードです。

$params = [
    'index' => 'knowledge_graph',
    'body'  => [
        'query' => [
            'match' => [
                'entity' => '人'
            ]
        ]
    ]
];

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

上記のコードでは、エンティティ名が「person」のドキュメントを検索することで、関連するナレッジ グラフ データを取得します。

Elasticsearch は、基本的な検索に加えて、ブール検索、範囲検索などのより高度な検索機能も提供します。具体的なサンプルコードについては、Elasticsearch の公式ドキュメント (https://www.elastic.co/guide/index.html) を参照してください。

上記のコード例を通じて、PHP を使用して Elasticsearch に基づいたナレッジ グラフを構築し、データ接続を実現できます。 Elasticsearch の強力な検索および分析機能を使用すると、エンティティ間の関係および関連情報を迅速に取得できます。この記事が、PHP を使用してナレッジ グラフを構築する開発者にとって役立つことを願っています。

以上がPHP の Elasticsearch に基づくナレッジ グラフとデータ接続の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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