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
分享到:
相关推荐
**PHP扩展Solr-1.0.1:Linux系统下的编译与安装指南** PHP扩展Solr是PHP与Apache Solr搜索引擎之间的桥梁,它允许PHP应用程序无缝地与Solr服务器进行交互,执行搜索、索引操作等。在Linux环境下安装这个扩展,需要...
总之,通过这篇博客文章和提供的PHP Solr客户端,开发者可以学习到如何在PHP环境中集成Solr,实现索引管理和搜索功能。这有助于提高Web应用程序的搜索性能和用户体验,尤其是在处理大量数据时。对于那些需要在PHP...
PHP Solr客户端库如`php_solr-0.4.1`为开发者提供了与Solr服务器交互的便利工具,使得在PHP环境中实现中文全文检索成为可能。了解如何配置和使用这些工具,对于提升Web应用的搜索功能和用户体验具有重要意义。通过...
solarium, PHP Solr客户端库 Solarium PHP客户端库什么是 Solarium?Solarium是一个PHP客户端库,可以精确地模型Solr概念。 它的他多个cics库只处理与Solr的通信,因这里a 也使用一个文档化的API处理所有复杂的roo...
SolrClient是专门为PHP开发的一款Solr客户端库,它允许开发者通过Composer进行安装和管理,以便于在PHP项目中方便地与Apache Solr搜索引擎进行交互。Apache Solr是一款开源的企业级搜索平台,常用于构建高性能的全文...
Solarium PHP Solr客户端库什么是日光浴室? Solarium是一个PHP Solr客户端库,可以准确地建模Solr概念。 在许多其他Solr库仅处理与Solr的通信的地方,Solarium也使您可以使用有据可查的API来处理所有复杂的Solr查询...
在PHP中,你可以使用Solr PHP客户端库来连接和操作Solr服务器。这个库并不直接作为PHP扩展提供,而是通过Composer进行安装。首先,确保你的PHP环境支持Composer,然后运行"composer require apache/solr-for-php...
"require": {"laravel/framework": "4.1.*","davispeixoto/laravel-4-solr": "dev-master"}接下来,从终端更新Composer: composer update此操作完成后,仍在终端运行: php artisan config:publish davispeixoto/...
Solr提供了客户端库,简化了这个过程。以Java为例,我们可以使用SolrJ库来发送请求和处理响应: ```java SolrClient client = new HttpSolrClient("http://localhost:8983/solr/simple"); SolrQuery query = new ...
你可以使用各种编程语言的客户端库与Solr交互,如Java、Python、PHP等。 **七、监控与优化** Solr提供了一个内置的监控界面,可以通过`http://localhost:8983/solr/admin`访问。这里可以查看索引状态、查询性能、...
Solr的HTTP接口使得它易于通过各种编程语言(如Ruby、PHP、Java、JSON和JavaScript)进行交互,SolrJ是Java客户端库,特别适合于Java开发者使用。所有这些配置都可在solrconfig.xml和schema.xml这两个核心配置文件中...
这个PHP客户端则为开发者提供了一个方便的工具,使他们能够在PHP环境中轻松地操作和管理Marmotta服务器上的数据。 **描述解析:** "Marmotta客户"表明这个项目是针对Apache Marmotta的客户端实现。"Apache ...
canal-php 一.canal-php 简介 canal-php 是阿里巴巴开源项目 ...2.根据数据库的变更实时更新搜索引擎,比如电商场景下商品信息发生变更,实时同步到商品搜索引擎 Elasticsearch、solr等 3.根据数据库的变更实时更新缓
它独立于具体的客户端库,并且可以与或。 例子 内部版本name:"John Doe"^100 <?php use InterNations \ Component \ Solr \ Expression \ ExpressionBuilder ; $ eb = new ExpressionBuilder (); echo $ eb -> ...
而SolrPhpClient则是与Solr服务器进行交互的PHP客户端库,使得PHP开发者能够方便地在PHP应用中集成Solr服务。 描述中提到,这个源码是用于学习和自我提升的,意味着它不仅是一个实用工具,还是一个学习Solr和PHP...
学习Socket编程,你将掌握TCP/IP协议栈、套接字API的使用,以及如何创建客户端和服务器程序进行数据传输。 8. **Smarty**:Smarty是一个PHP模板引擎,它将业务逻辑与视图层分离,使开发更高效。学习Smarty,你将...
标题中的"ujxlwe_SolrPhpClient_nl2tzx.rar"表明这是一个关于Solr PHP客户端的压缩包,其中可能包含用于与Apache Solr搜索引擎进行交互的PHP代码库或示例。Solr是Apache软件基金会的一个开源全文搜索引擎,而PHP是一...
标题中的"up_74003_SolrPhpClient_zcwf7.rar"表明这是一个与SolrPHP客户端相关的资源包,可能包含了用于演示或学习如何在PHP中使用Solr的源代码。SolrPHPClient是Apache Solr的一个PHP客户端库,它允许开发者通过PHP...