`

Solr 学习(6) —- Solr的PHP客户端

    博客分类:
  • Solr
 
阅读更多

solr查询返回只是xml格式或是json格式,并不像我们平时使用google或百度时的那种漂亮清爽的界面,实际上solr只负责数据的查询和返回,并不负责显示,如果要生成如google那样的界面,还的借助solr的php客户端,通过客户端进行查询后,再通过php代码显示出来。

本文的做法是一台服务器使用tomcat,运行solr,另一台服务器使用apache,负责和用户的交互与显示。

 

solr的php客户端也有好几个,本文选择了一个简单易用的, php-solr-client ,该项目的地址为 http://code.google.com/p/solr-php-client/,下载后解压放到apache的网站根目录。

 

 下面是一个简单的查询例子:

 

 

<?php

// make sure browsers see this page as utf-8 encoded HTML
header('Content-Type: text/html; charset=utf-8');

$limit = 10;
$query = isset($_REQUEST['q']) ? $_REQUEST['q'] : false;
$results = false;

if ($query)
{
  // The Apache Solr Client library should be on the include path
  // which is usually most easily accomplished by placing in the
  // same directory as this script ( . or current directory is a default
  // php include path entry in the php.ini)
  require_once('Apache/Solr/Service.php');

  // create a new solr service instance - host, port, and webapp
  // path (all defaults in this example)
  $solr = new Apache_Solr_Service('localhost', 8983, '/solr/');

  // if magic quotes is enabled then stripslashes will be needed
  if (get_magic_quotes_gpc() == 1)
  {
    $query = stripslashes($query);
  }

  // in production code you'll always want to use a try /catch for any
  // possible exceptions emitted  by searching (i.e. connection
  // problems or a query parsing error)
  try
  {
    $results = $solr->search($query, 0, $limit);
  }
  catch (Exception $e)
  {
    // in production you'd probably log or email this error to an admin
        // and then show a special message to the user but for this example
        // we're going to show the full exception
        die("<html><head><title>SEARCH EXCEPTION</title><body><pre>{$e->__toString()}</pre></body></html>");
  }
}

?>
<html>
  <head>
    <title>PHP Solr Client Example</title>
  </head>
  <body>
    <form  accept-charset="utf-8" method="get">
      <label for="q">Search:</label>
      <input id="q" name="q" type="text" value="<?php echo htmlspecialchars($query, ENT_QUOTES, 'utf-8'); ?>"/>
      <input type="submit"/>
    </form>
<?php

// display results
if ($results)
{
  $total = (int) $results->response->numFound;
  $start = min(1, $total);
  $end = min($limit, $total);
?>
    <div>Results <?php echo $start; ?> - <?php echo $end;?> of <?php echo $total; ?>:</div>
    <ol>
<?php
  // iterate result documents
  foreach ($results->response->docs as $doc)
  {
?>
      <li>
        <table style="border: 1px solid black; text-align: left">
<?php
    // iterate document fields / values
    foreach ($doc as $field => $value)
    {
?>
          <tr>
            <th><?php echo htmlspecialchars($field, ENT_NOQUOTES, 'utf-8'); ?></th>
            <td><?php echo htmlspecialchars($value, ENT_NOQUOTES, 'utf-8'); ?></td>
          </tr>
<?php
    }
?>
        </table>
      </li>
<?php
  }
?>
    </ol>
<?php
}
?>
  </body>
</html>
 

进行查询,如输入car ,结果如下 


连接solr查询成功,再进行些美工上的优化,就能有像百度一样的查询界面了

  • 大小: 10.2 KB
分享到:
评论

相关推荐

    solarium, PHP Solr客户端库.zip

    solarium, PHP Solr客户端库 Solarium PHP客户端库什么是 Solarium?Solarium是一个PHP客户端库,可以精确地模型Solr概念。 它的他多个cics库只处理与Solr的通信,因这里a 也使用一个文档化的API处理所有复杂的roo...

    SolrClient:Solr客户端

    Composer的Solr php客户端 使用 CURL 访问 Solr API #lib Client.php 这是我的工作本写的

    日光浴室:PHP Solr客户端库

    Solarium PHP Solr客户端库什么是日光浴室? Solarium是一个PHP Solr客户端库,可以准确地建模Solr概念。 在许多其他Solr库仅处理与Solr的通信的地方,Solarium也使您可以使用有据可查的API来处理所有复杂的Solr查询...

    Laravel-4-Solr:Apache Solr简单查询客户端

    "require": {"laravel/framework": "4.1.*","davispeixoto/laravel-4-solr": "dev-master"}接下来,从终端更新Composer: composer update此操作完成后,仍在终端运行: php artisan config:publish davispeixoto/...

    solr配置和solrj使用(demo)

    Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。...Solrj 是访问 Solr 的 Java 客户端,它提供添加、更新和查询Solr 索引的接口。http://wiki.chenlb.com/solr/doku.php?id=solrj

    canal-php 监控数据库变更

    canal-php 一.canal-php 简介 canal-php 是阿里巴巴开源项目 ...2.根据数据库的变更实时更新搜索引擎,比如电商场景下商品信息发生变更,实时同步到商品搜索引擎 Elasticsearch、solr等 3.根据数据库的变更实时更新缓

    SolrQueryComponent:轻松构建Solr查询

    它独立于具体的客户端库,并且可以与或。 例子 内部版本name:"John Doe"^100 &lt;?php use InterNations \ Component \ Solr \ Expression \ ExpressionBuilder ; $ eb = new ExpressionBuilder (); echo $ eb -&gt; ...

    NelmioSolariumBundle:Symfony和Solarium Solr客户端之间的集成

    NelmioSolariumBundle提供与客户端的集成。 安装 在nelmio/solarium-bundle需要nelmio/solarium-bundle软件包并更新依赖项。 $ composer require nelmio/solarium-bundle 将NelmioSolariumBundle添加到您的App...

    marmotta-client:PHP Marmotta客户端

    Marmotta客户Apache MarmottaPHP客户端更新了PHP Apache Marmotta客户端安装作曲家需要“ ximdex / marmotta-client”

    ist的matlab代码-typo3-mksearch:使用ZendLucene,ApacheSolr或ElasticSearch的通用的高度

    这意味着既有面向入门级用户的纯PHP版本,也有面向高端应用程序的专业客户端-服务器解决方案。 与其他搜索解决方案不同,MK Search不会为网站建立索引。 索引在数据级别进行(对应于数据库中的表。也可以在文件...

    Apache Hadoop---Elasticsearch.docx

    官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr,也是基于Lucene。

    elasticsearch-7.3.0.zip

    官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr,也是基于Lucene。

    elasticsearch-5.5.1.rar(包含elasticsearch-analysis-ik-5.5.1.zip中文分词解析器)

    官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr,也是基于Lucene。

    elasticsearch-7.4.0-linux-x86_64.tar.gz

    官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr,也是基于Lucene。

    elasticsearch-analysis-ik-7.3.1.jar

    官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr,也是基于Lucene。 中文分词...

    elasticsearch-8.2.3 windows 版本

    官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr,也是基于Lucene

    elasticsearch-7.1.1-windows-x86_64.zip

    官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr,也是基于Lucene。

    Elasticsearch安装与学习

    官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr,也是基于Lucene。

    elasticsearch-7.3.0-windows-x86_64.zip

    官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr,也是基于Lucene。

Global site tag (gtag.js) - Google Analytics