Maison > développement back-end > tutoriel php > Solr 学习(六) ―- Solr的PHP客户端

Solr 学习(六) ―- Solr的PHP客户端

WBOY
Libérer: 2016-06-13 13:25:13
original
813 Les gens l'ont consulté

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

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 class="brush:php;toolbar:false">{$e->__toString()}
Copier après la connexion
"); } } ?> PHP Solr Client Example
response->numFound; $start = min(1, $total); $end = min($limit, $total); ?>
Results - of :
    response->docs as $doc) { ?>
  1. $value) { ?>
?

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


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

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal