隨著信息量的急劇增長,用戶對搜索結果的準確性要求不斷提高。傳統搜索引擎難以滿足多維度的精準搜索需求,因此構建一個靈活且高效的搜索過濾功能顯得尤為重要。
Manticore Search是一款開源、高性能的全文搜索引擎,支持快速擴展和復雜查詢。您可以從官方渠道下載並安裝Manticore Search,以便後續開發使用。
索引是全文搜索的基礎。以下示例展示瞭如何通過PHP調用Manticore Search擴展創建一個包含標題、內容和分類字段的索引:
<?php
require 'vendor/autoload.php';
use ManticoresearchClient;
use ManticoresearchIndex;
use ManticoresearchExceptionsRuntimeException;
use ManticoresearchQueryBoolQuery;
use ManticoresearchQueryQuery;
try {
$client = new Client(['host' => 'localhost', 'port' => 9308]);
$index = new Index($client);
$index->create([
'index' => 'myindex',
'type' => 'mytype',
'fields' => [
'title' => ['type' => 'text'],
'content' => ['type' => 'text'],
'category' => ['type' => 'text']
]
]);
echo "Index created successfully.";
} catch (RuntimeException $e) {
echo $e->getMessage();
}
?>
上述代碼成功創建了名為"myindex" 的索引,包含了必要的文本字段,可根據實際需求調整字段結構。
在索引創建完成後,可以使用以下代碼示例實現關鍵詞的全文搜索,支持在標題、內容和分類字段中匹配:
<?php
require 'vendor/autoload.php';
use ManticoresearchClient;
use ManticoresearchQueryBoolQuery;
use ManticoresearchQueryQuery;
$client = new Client(['host' => 'localhost', 'port' => 9308]);
$boolQuery = new BoolQuery();
$query = new Query($client);
$boolQuery->addShould($query->match('title', 'keyword'));
$boolQuery->addShould($query->match('content', 'keyword'));
$boolQuery->addShould($query->match('category', 'keyword'));
$query->bool($boolQuery);
$result = $query->search('myindex', 'mytype');
print_r($result);
?>
此代碼執行了對關鍵詞"keyword" 的搜索,覆蓋了多字段匹配,便於滿足多樣化的查詢需求。
基於全文搜索,添加過濾條件可以進一步精確結果。下面示例展示瞭如何對搜索結果進行過濾,例如篩選特定分類:
<?php
require 'vendor/autoload.php';
use ManticoresearchClient;
use ManticoresearchQueryBoolQuery;
use ManticoresearchQueryQuery;
$client = new Client(['host' => 'localhost', 'port' => 9308]);
$boolQuery = new BoolQuery();
$query = new Query($client);
$boolQuery->addMust($query->match('title', 'keyword'));
$boolQuery->addFilter($query->term('category', 'news'));
$query->bool($boolQuery);
$result = $query->search('myindex', 'mytype');
print_r($result);
?>
通過增加過濾條件,可以有效縮小搜索範圍,提高搜索結果的相關性和精確度。
本文介紹瞭如何結合PHP和Manticore Search實現智能搜索過濾功能。涵蓋了環境搭建、索引創建、全文搜索以及條件過濾等關鍵步驟。希望對您的搜索引擎開發有所啟發,並能幫助您打造更符合用戶需求的智能搜索體驗。