Coreseek is an open-source full-text search engine based on Sphinx, known for its excellent performance and powerful search capabilities. It supports features such as Chinese word segmentation, ranking by weight, and highlighting. Coreseek is written in C++, making it highly efficient, and PHP, being a popular scripting language, integrates seamlessly with Coreseek.
First, you need to install Coreseek on your server. You can refer to the official documentation for detailed installation steps. After installation, configure Coreseek, primarily by editing the sphinx.conf configuration file. Below is a simple configuration example:
source product {
type = mysql
sql_host = localhost
sql_user = root
sql_pass = password
sql_db = ecommerce
sql_query = SELECT id, name, description, price FROM products
}
index product_index {
source = product
path = /path/to/index
min_word_len = 2
min_prefix_len = 2
enable_star = 1
charset_type = utf-8
}
searchd {
listen = 9312
listen = 9306:mysql41
log = /path/to/log/searchd.log
query_log = /path/to/log/query.log
pid_file = /path/to/log/searchd.pid
}
In the example above, we define a data source named “product,” assuming that product data is stored in the “ecommerce” database and retrieved from the “products” table. We also define an index called “product_index” and specify the storage path for the index file. Finally, we set up a Coreseek search process named searchd.
Next, let's use the SphinxClient class in PHP to connect to and use Coreseek. Below is a simple search example:
<?php
require_once('sphinxapi.php');
$cl = new SphinxClient();
$cl->setServer('localhost', 9312);
$cl->setMatchMode(SPH_MATCH_EXTENDED);
$cl->setLimits(0, 20); // Set the number of search results
$keyword = $_GET['keyword']; // Get the search keyword input by the user
$res = $cl->Query($keyword, 'product_index');
if ($res && $res['total_found'] > 0) {
foreach ($res['matches'] as $match) {
$productId = $match['id'];
// Fetch product details from the database based on productId and display
}
} else {
echo 'No related products found';
}
?>
In the above code example, we first include the Coreseek PHP extension file "sphinxapi.php." Then, we create a SphinxClient object, set the server address and port, and configure the match mode to SPH_MATCH_EXTENDED (which supports advanced query syntax). Finally, we call the Query method to initiate a search and display the results accordingly.
Through the example provided in this article, we have demonstrated how to build an e-commerce product search engine using PHP and Coreseek. While this article only covers basic functionality, developers can add more advanced features based on specific requirements. By following this approach, you can create an efficient, accurate, and user-friendly product search engine for your e-commerce platform.