这期内容当中小编将会给大家带来有关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>{$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 > <?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查询成功,再进行些美工上的优化,就能有像百度一样的查询界面了
上述就是小编为大家分享的Solr的PHP客户端是怎样的了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。