用PHP构建自定义搜索引擎

http://tech.ddvip.com   2007年09月12日    社区交流

内容摘要:虽然 Google 及其系列产品几乎无所不能,但是 Web 形式的强大搜索引擎并不能很好地适用于每个站点。如果站点内容已被高度专业化或已明确分类,那就需要使用 Sphinx 和 PHP 来创建一个优化的本地搜索系统。

  第一条命令 /usr/local/bin/search --config /usr/local/etc/sphinx.conf ENG 在零件号中找到了两个含有 ENG 的结果。第二条命令 /usr/local/bin/search --config /usr/local/etc/sphinx.conf wind 在两个零件描述中找到了子字符串 wind。而第三条命令把结果限定为 model 为 3 的条目。

  编写代码

  最后,您可以编写 PHP 代码来调用 Sphinx 搜索引擎。Sphinx PHP API 非常小并且易于掌握。清单 12 是一个小型 PHP 应用程序,用于调用 searchd 以得到使用上面所示的最后一条命令得到的相同结果(“在属于型号 3 的名称中找到含有 ‘cylinder’ 的所有零件”)。

  清单 12. 从 PHP 调用 Sphinx 搜索引擎

<?php
 include('sphinx-0.9.7/api/sphinxapi.php');
 $cl = new SphinxClient();
 $cl->SetServer( "localhost", 3312 );
 $cl->SetMatchMode( SPH_MATCH_ANY );
 $cl->SetFilter( 'model', array( 3 ) );
 $result = $cl->Query( 'cylinder', 'catalog' );
 if ( $result === false ) {
   echo "Query failed: " . $cl->GetLastError() . ".
";
 }
 else {
   if ( $cl->GetLastWarning() ) {
     echo "WARNING: " . $cl->GetLastWarning() . "
";
   }
   if ( ! empty($result["matches"]) ) {
     foreach ( $result["matches"] as $doc => $docinfo ) {
        echo "$doc
";
     }
     
     print_r( $result );
   }
 }
 exit;
?>

来源:ibm    作者:Martin Streicher    责编:豆豆技术应用

正在加载评论...