Coreseek is a high-performance full-text search engine based on Sphinx, designed specifically for Chinese language processing. It supports fast and efficient text search, Chinese word segmentation, ranking by weight, and highlighting features. Due to its excellent performance, Coreseek excels at handling large volumes of product data. PHP, being a popular scripting language, integrates seamlessly with Coreseek, helping developers quickly build powerful product search engines.
Before using Coreseek, it needs to be installed on the server. The installation steps can be found in the Coreseek official documentation. After installation, you need to configure Coreseek primarily through the sphinx.conf file. Below is a simple example of the sphinx.conf configuration:
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 this configuration, we define a data source named "product," which extracts product data from the "products" table in the "ecommerce" database. We also define an index named "product_index" and specify the path for the index files. Lastly, we configure the searchd process with the listening ports and log file locations.
In PHP, we can interact with Coreseek by using the SphinxClient class. Below is a simple example of PHP code for product search:
<?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 results returned $keyword = $_GET['keyword']; // Get the user input keyword $res = $cl->Query($keyword, 'product_index'); if ($res && $res['total_found'] > 0) { foreach ($res['matches'] as $match) { $productId = $match['id']; // Retrieve product information based on productId and display on the page } } else { echo 'No products found matching your search'; } ?>
In the above example, we first include the sphinxapi.php file provided by Coreseek. Then, we create a SphinxClient object and set the server address and port for Coreseek. We set the match mode to SPH_MATCH_EXTENDED, which supports advanced query syntax. Next, we use the setLimits method to limit the number of results to 20 and call the Query method to perform the search. Finally, based on the search results, we display the relevant product information.
This article has introduced how to use PHP and Coreseek to develop a powerful product search engine for an e-commerce platform. With Coreseek's powerful features, you can easily implement efficient and accurate product search, providing users with a better search experience and increasing conversion rates and sales for your e-commerce platform. Of course, in actual applications, you may need to optimize and expand the functionality of the search engine further. We hope the content in this article helps developers get started quickly and build a product search engine that meets their needs.