<?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 ( ! $solr->ping() ) {
echo 'Solr service not responding.';
exit;
}
// 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 if(is_array($value)){
foreach ($value as $v){
echo htmlspecialchars($v, ENT_NOQUOTES, 'utf-8'). "<br>";
}
}
else{
echo htmlspecialchars($value, ENT_NOQUOTES, 'utf-8');
}
?>
</td>
</tr>
<?php } ?>
</table> </li>
<?php } ?>
</ol> <?php } ?>
</body> </html>
<?php
require_once('Apache/Solr/Service.php');
$solr = new Apache_Solr_Service( 'localhost', '8983', '/solr' );
if ( ! $solr->ping() ) {
echo 'Solr service not responding.';
exit;
}
$docs = array(
"num1" => array(
"id" =>"Chester009",
"name" => "cheser add a name",
"manu" => "ViewSonic Corp.",
"cat" => "elec1",
"features" => "features1",
"weight" => 1457,
"price" => 44,
"popularity" => 8,
),
"num2" => array(
"id" =>"Chester010",
"name" => "cheser add a name2",
"manu" => "ViewSonic Corp2.",
"cat" => "elec12",
"features" => "features12",
"weight" => 14572,
"price" => 442,
"popularity" => 82,
),
"num3" => array(
"id" =>"Chester011",
"name" => "cheser add a name2",
"manu" => "ViewSonic Corp2.",
"cat" => "elec12",
"features" => "features12",
"weight" => 14572,
"price" => 442,
"popularity" => 82,
),
"num6" => array(
"id" =>"Chester012",
"name" => "cheser add a name2",
"manu" => "ViewSonic Corp2.",
"cat" => "elec12",
"features" => "features12",
"weight" => 14572,
"price" => 442,
"popularity" => 82,
),
"num7" => array(
"id" =>"Chester014",
"name" => "cheser add a name2",
"manu" => "ViewSonic Corp2.",
"cat" => "elec12",
"features" => "features12",
"weight" => 14572,
"price" => 442,
"popularity" => 82,
),
"num8" => array(
"id" =>"Chester019",
"name" => "cheser add a name2",
"manu" => "ViewSonic Corp2.",
"cat" => "elec12",
"features" => "features12",
"weight" => 14572,
"price" => 442,
"popularity" => 82,
),
);
$documents = array();
foreach ( $docs as $item => $fields ) {
$part = new Apache_Solr_Document();
foreach ( $fields as $key => $value ) {
if ( is_array($value) ) {
foreach ( $value as $data ) {
$part->setMultiValue($key,$data);
}
}
else{
$part->$key = $value;
}
}
$documents[] = $part;
}
try{
$a = $solr->addDocuments( $documents );
$b = $solr->commit();
$c = $solr->optimize();
var_dump($a);
print "<br><br><br><br><br><br>" ;
var_dump($b);
print "<br><br><br><br><br><br>" ;
var_dump($c);
}
catch (Exception $e){
echo $e->getMessage();
}
?>
<?php
require_once('Apache/Solr/Service.php');
$solr = new Apache_Solr_Service( 'localhost', '8983', '/solr' );
if ( ! $solr->ping() ) {
echo 'Solr service not responding.';
exit;
}
$offset = 0;
$limit = 10;
$queries = array(
'id: Chester005 OR id: Chester001',
'name: name',
'features: feature'
);
foreach ( $queries as $query ){
$response = $solr->search( $query, $offset, $limit );
if ( $response->getHttpStatus() == 200 ) {
// print_r( $response->getRawResponse() );
if ( $response->response->numFound > 0 ) {
echo "$query <br />";
foreach ( $response->response->docs as $doc ) {
echo "id= $doc->id <br> name = $doc->name <br /> manu= $doc->manu <br>";
}
echo '<br />';
}
}
else {
echo $response->getHttpStatusMessage();
}
}
?>
分享到:
相关推荐
该脑图是介绍Flume+Solr演示demo,请贡献给大家下载!
solr 全文搜索的例子,有需要的请下载,导入到myeclipse中直接就可以用的。先按照前面的走 要修改数据库的连接
Solr 和 Java 整合的一个Demo 哈哈哈哈哈哈哈哈哈呵呵哈哈哈
这是“复活”大大,提供的solrdemo,我在此仅仅是将代码全部拷贝到一个txt文件。所以如果不想看的,请到该链接下载 ...原文出自:http://insolr.com/forum.php?mod=viewthread&tid=141&extra=page=1
全文搜索技术solr Demo
solr,redis用java实现的小案例,本项目使用的maven,在使用前需要安装好redis和solr的服务器
使用java实现solr-7.1.0的api和solr最新支持的sql查询.使用java实现solr-7.1.0的api和solr最新支持的sql查询.
分词器和配置已经弄好了,只要按照网页说明把solr_home和solr_data放到D盘根目录下就可以了,solr放到tomcat下面。
Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。...也可以通过Http G Solret操作提出查找请求,并得到XML格式的返回结果。...http://wiki.chenlb.com/solr/doku.php?id=solrj
一个讲解solr配置和应用demo的文档
php5.3版本的php_solr.dll哦,很难找到的哦
solr-client-一个node.js solr客户端安装使用以下方法安装库: npm install --save solr-client文献资料支持Node.js 6+版本。 支持Solr 3-8版本。 有关更多详细信息,请参见。 如果您要从早期版本升级,请参阅。 您...
solr评分 solr自定义评分组件demo.zip
solr7.4数据库导入,使用mysql数据库,内含solr7.4导入数据库Demo+mysql库表,外加使用IK分词器。
solr可以实现定时导入,增量导入,全部的导入;本人亲测可用
windows环境php5.5的php_solr.dll
solr.warsolr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包...