Home  >  Article  >  Backend Development  >  PHP Development Guide for Sphinx High-Performance Full-Text Indexing

PHP Development Guide for Sphinx High-Performance Full-Text Indexing

WBOY
WBOYOriginal
2023-10-03 11:19:431285browse

Sphinx 高性能全文索引的 PHP 开发指南

Sphinx High-Performance Full-Text Index PHP Development Guide

1. Foreword

Full-text search is one of the very important functions in today's network applications. Sphinx is a powerful full-text search engine that can help us achieve high-performance full-text search functions. This article will introduce how to use PHP to develop Sphinx and give detailed code examples.

2. Introduction to Sphinx

Sphinx is an open source full-text search engine that supports multiple platforms and programming languages ​​and has extremely high performance.

  1. Installing Sphinx

First, we need to download the latest version from the official website of Sphinx (http://www.sphinxsearch.com/) and follow the documentation Install.

  1. Create index

Sphinx uses indexes for full-text search, we need to create indexes and import data. The following is an example index configuration file (sphinx.conf):

source src1
{
    type        = mysql
    sql_host    = localhost
    sql_user    = root
    sql_pass    = password
    sql_db      = dbname
    sql_port    = 3306
    sql_query   = SELECT id, title, content FROM mytable
}

index myindex
{
    source      = src1
    path        = /path/to/your/index
    charset_type= utf-8
}

searchd
{
    listen      = 9306:mysql41
    log         = /path/to/your/log
    query_log   = /path/to/your/query/log
}

The configuration file defines information about the data source, index, and search daemon. It needs to be modified according to the actual situation.

  1. Import data

After creating the index, we also need to import data into the index. Sphinx provides command line tools to achieve this functionality. The following is an example:

indexer --config /path/to/your/sphinx.conf --all --rotate

This command will import data into the index based on the index information defined in the configuration file.

3. Use PHP for Sphinx development

The following will introduce how to use PHP to develop Sphinx and give specific code examples.

  1. Install the Sphinx PHP extension

First, we need to install the Sphinx PHP extension. It can be easily installed through PECL:

pecl install sphinx
  1. Connecting Sphinx Server

Before using Sphinx search, we need to connect to the Sphinx server first. The following is an example:

$host = 'localhost';
$port = 9306;
$index = 'myindex';

$sphinx = new SphinxClient();
$sphinx->setServer($host, $port);
$sphinx->setConnectTimeout(1);
$sphinx->setMatchMode(SPH_MATCH_EXTENDED2);

Through the SphinxClient class we can easily connect to the Sphinx server and set the relevant parameters of the connection.

  1. Perform full-text search

Once connected to the Sphinx server, we can start full-text search. The following is a sample code:

$keyword = 'PHP Sphinx';

$sphinx->setFilter('category', [1, 2, 3]); // 设置过滤条件
$sphinx->setSortMode(SPH_SORT_RELEVANCE); // 设置排序方式
$sphinx->setMaxQueryTime(1000); // 设置最大查询时间

$result = $sphinx->query($keyword, $index); // 发起搜索请求

if ($result === false) {
    echo '搜索失败:' . $sphinx->getLastError();
} else {
    echo '搜索成功!共找到' . $result['total'] . '条结果。';

    foreach ($result['matches'] as $id => $match) {
        echo 'ID:' . $id . ',相关度:' . $match['weight'];
    }
}

Through the setFilter method, we can set filter conditions, the setSortMode method is used to set the sorting method, and the setMaxQueryTime method can set the maximum query time. Finally, call the query method to initiate a search request.

4. Summary

Through the above introduction, we have learned how to use PHP to develop Sphinx and given specific code examples. As a high-performance full-text search engine, Sphinx can help us achieve fast and accurate full-text search functions. In actual applications, we can flexibly configure and develop according to specific needs. Hope this article helps you!

The above is the detailed content of PHP Development Guide for Sphinx High-Performance Full-Text Indexing. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn