Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Membangunkan fungsi carian graf pengetahuan menggunakan PHP dan Manticore Search

Membangunkan fungsi carian graf pengetahuan menggunakan PHP dan Manticore Search

PHPz
PHPzasal
2023-08-09 09:40:491126semak imbas

利用PHP和Manticore Search开发知识图谱搜索功能

Gunakan PHP dan Manticore Search untuk membangunkan fungsi carian graf pengetahuan

Ikhtisar:
Graf pengetahuan ialah organisasi pengetahuan dan kaedah perwakilan berasaskan graf yang boleh memaparkan entiti, atribut dan perhubungan dalam bentuk graf. Dalam era data besar hari ini, graf pengetahuan digunakan secara meluas dalam pelbagai bidang, seperti enjin carian, sistem soal jawab pintar, dsb. Artikel ini akan memperkenalkan cara menggunakan PHP dan Manticore Search untuk membangunkan fungsi carian berdasarkan graf pengetahuan dan menyediakan contoh kod.

1. Pasang dan konfigurasikan Manticore Search
Mula-mula, anda perlu memasang Manticore Search dan mengkonfigurasinya. Pakej pemasangan boleh dimuat turun dari laman web rasmi (https://manticoresearch.com/downloads/).

Selepas pemasangan selesai, anda perlu mengkonfigurasinya. Buka fail manticore.conf dan konfigurasikan laluan indeks, port mendengar dan maklumat lain.

2. Bina data graf pengetahuan
Sebelum membangunkan fungsi carian, anda perlu membina data graf pengetahuan dan mengimport data ke dalam Carian Manticore. Mengambil graf pengetahuan filem sebagai contoh, struktur data adalah seperti berikut:

  1. Entiti: filem
    Atribut: ID filem, nama filem, pengarah, pelakon, jenis, rating, dll.
  2. Entiti: pelakon
    Atribut: pelakon ID, nama pelakon, Tarikh lahir, jantina, dll.
  3. Entiti: pengarah
    Atribut: ID pengarah, nama pengarah, tarikh lahir, jantina, dll.
  4. Hubungan: hubungan antara pelakon dan filem
    Atribut: ID pelakon, filem ID, nama watak
  5. Hubungan: pengarah dan filem Hubungan
    Atribut: ID pengarah, ID filem

Import data di atas ke dalam indeks Carian Manticore, yang boleh dilaksanakan menggunakan API Manticore adalah seperti berikut:

<?php
// 知识图谱数据导入示例代码
$host = 'localhost';
$port = 9308;

// 连接Manticore Search
$client = new ManticoresearchClient([
    'host' => $host,
    'port' => $port
]);

// 创建索引
$client->indices()->create([
    'index' => 'movies',
]);

// 定义字段
$fields = [
    'id' => ['type' => 'integer'],
    'name' => ['type' => 'text'],
    'director' => ['type' => 'text'],
    'actor' => ['type' => 'text'],
    'genre' => ['type' => 'text'],
    'rating' => ['type' => 'float'],
];

// 创建文档
$movies = [
    ['id' => 1, 'name' => 'The Shawshank Redemption', 'director' => 'Frank Darabont', 'actor' => 'Tim Robbins, Morgan Freeman', 'genre' => 'Drama', 'rating' => 9.3],
    ['id' => 2, 'name' => 'The Godfather', 'director' => 'Francis Ford Coppola', 'actor' => 'Marlon Brando, Al Pacino', 'genre' => 'Crime', 'rating' => 9.2],
    // 其他电影数据...
];

// 将文档添加到索引中
$documents = [];
foreach ($movies as $movie) {
    $document = new ManticoresearchDocument();
    $document->setIndex('movies');
    $document->setId($movie['id']);
    $document->setFields($movie);
    $documents[] = $document;
}

$client->bulk($documents);

// 关闭连接
$client->getConnection()->close();

3. Melaksanakan fungsi carian graf pengetahuan
Kunci kepada carian graf pengetahuan Ia adalah untuk membina pernyataan pertanyaan yang sesuai untuk disesuaikan dengan entiti dan perhubungan yang berbeza.

Berikut ialah kod contoh carian filem yang mudah, yang melaksanakan fungsi carian berdasarkan nama filem, pelakon dan pengarah:

<?php
// 电影搜索示例代码
$host = 'localhost';
$port = 9308;

// 连接Manticore Search
$client = new ManticoresearchClient([
    'host' => $host,
    'port' => $port
]);

// 构建查询语句
$query = new ManticoresearchQueryBoolQuery();
$query->addMust(new ManticoresearchQueryMatchQuery('name', 'The Shawshank Redemption'));
$query->addMust(new ManticoresearchQueryMatchQuery('actor', 'Morgan Freeman'));
$query->addMust(new ManticoresearchQueryMatchQuery('director', 'Frank Darabont'));

// 执行查询
$search = new ManticoresearchSearch($client);
$search->addIndex('movies');
$search->setQuery($query);
$result = $search->search();

// 输出结果
print_r($result->getDocuments());

// 关闭连接
$client->getConnection()->close();

IV.Artikel ini memperkenalkan kaedah menggunakan PHP dan Manticore Search untuk membangunkan graf pengetahuan fungsi carian, dan contoh kod yang berkaitan disediakan. Dengan membina pernyataan pertanyaan dengan betul, carian graf pengetahuan yang tepat dan cekap boleh dicapai. Pada masa yang sama, fungsi berkuasa Manticore Search menjadikan pembangunan enjin carian lebih mudah dan mudah. Saya harap artikel ini dapat membantu anda dalam proses pembangunan carian graf pengetahuan.

Atas ialah kandungan terperinci Membangunkan fungsi carian graf pengetahuan menggunakan PHP dan Manticore Search. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn