Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Gunakan PHP dan Carian Manticore untuk membangunkan enjin carian dengan penyegerakan data masa nyata

Gunakan PHP dan Carian Manticore untuk membangunkan enjin carian dengan penyegerakan data masa nyata

WBOY
WBOYasal
2023-08-07 08:48:22822semak imbas

Gunakan PHP dan Manticore Search untuk membangunkan enjin carian dengan penyegerakan data masa nyata

Enjin carian memainkan peranan penting dalam era maklumat hari ini. Dengan perkembangan pesat Internet, permintaan pengguna terhadap enjin carian juga semakin tinggi. Enjin carian tradisional biasanya mengambil masa tertentu untuk menyegerakkan data terkini, yang tidak mencukupi dalam beberapa senario yang memerlukan data masa nyata. Untuk menyelesaikan masalah ini, artikel ini akan memperkenalkan cara menggunakan PHP dan Carian Manticore untuk membangunkan enjin carian dengan penyegerakan data masa nyata.

Pertama, mari kita fahami apa itu Manticore Search. Manticore Search ialah enjin carian teks berprestasi tinggi sumber terbuka yang menyediakan carian teks penuh yang cekap dan keupayaan pengindeksan masa nyata. Ia menyokong pertanyaan SQL dan sintaks pertanyaan JSON yang serupa dengan Elasticsearch, dan sesuai untuk pelbagai senario aplikasi daripada tapak web kecil kepada platform data yang besar. Carian Manticore dicirikan oleh kelajuan pantas, sokongan untuk pengindeksan masa nyata dan penggunaan teragih, menjadikannya pilihan ideal untuk membangunkan enjin carian dengan penyegerakan data masa nyata.

Pertama, kami perlu memastikan kami mempunyai versi terkini PHP dan Carian Manticore yang dipasang. Anda boleh menyemak versi dengan memasukkan arahan berikut dalam terminal atau command prompt:

php -v
searchd --help | grep Manticore

Jika nombor versi yang dipaparkan adalah yang terkini, maka kita boleh meneruskan ke langkah seterusnya.

Seterusnya, kami perlu memperkenalkan perpustakaan klien Manticore Search ke dalam projek PHP. Ini boleh dicapai dengan menyimpan kod berikut sebagai fail manticore.php dan memperkenalkannya dalam projek: manticore.php文件,并在项目中引入该文件来实现:

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

use ManticoresearchClient;
use ManticoresearchIndex;

$host = 'localhost';
$port = 9308;

$client = new Client(['host' => $host, 'port' => $port]);

$index = new Index($client);
$index->setIndex('example_index');

// 在这里进行索引的创建、删除、更新等操作

现在,我们创建一个名为example_index

$index->create(['columns' => [
  ['name' => 'title', 'type' => 'text', 'options' => ['indexed' => true, 'stored' => true]],
  ['name' => 'content', 'type' => 'text', 'options' => ['indexed' => true, 'stored' => true]],
]]);

Sekarang, kami mencipta indeks yang dipanggil example_index, Dan boleh lakukan beberapa operasi dalam indeks itu. Berikut ialah beberapa contoh operasi biasa:
  • Buat indeks:
  • $index->drop();
  • Padam indeks:
  • $index->bulk('insert', [
      ['index' => ['_id' => 1, 'title' => '文章标题1', 'content' => '文章内容1']],
      ['index' => ['_id' => 2, 'title' => '文章标题2', 'content' => '文章内容2']],
    ]);
  • Masukkan data:
  • $index->bulk('update', [
      ['update' => ['_id' => 1, 'doc' => ['title' => '新的标题1']]],
      ['update' => ['_id' => 2, 'doc' => ['title' => '新的标题2']]],
    ]);
  • Terbaru
  • Padam data:
  • $index->bulk('delete', [
      ['delete' => ['_id' => 1]],
      ['delete' => ['_id' => 2]],
    ]);
  • Data pertanyaan:
  • $query = [
      'index' => 'example_index',
      'body' => [
          'query' => [
              'match' => [
                  'title' => '关键词',
              ],
          ],
      ],
    ];
    
    $result = $client->search($query);
    
    foreach ($result['hits']['hits'] as $hit) {
      echo $hit['_source']['title'] . ': ' . $hit['_source']['content'] . "
    ";
    }

Contoh kod di atas menunjukkan cara membuat indeks, memasukkan, mengemas kini, memadam data dan melakukan pertanyaan. Sila laraskan mengikut keperluan sebenar.

Melalui kod sampel mudah ini, kita dapat melihat cara menggunakan PHP dan Manticore Search untuk membangunkan enjin carian dengan penyegerakan data masa nyata. Kaedah ini dapat merealisasikan fungsi menyegerakkan data ke enjin carian serta-merta selepas ia dikemas kini dalam masa nyata untuk memenuhi senario permintaan data masa nyata. Semoga artikel ini dapat membantu anda! 🎜

Atas ialah kandungan terperinci Gunakan PHP dan Carian Manticore untuk membangunkan enjin carian dengan penyegerakan data masa nyata. 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