是否有专用的solr函数来返回索引?

时间:2013-06-07 13:17:53

标签: php solr

我尝试从官方文档(http://www.php.net/manual/en/book.solr.php)中关注php中基于solr的基本示例。

我想编写一个只返回solr索引的函数。

例如,请考虑以下代码:

$options = array( 'hostname' => SOLR_SERVER_HOSTNAME );
$client = new SolrClient($options);
$doc = new SolrInputDocument();
$doc->addField('id', 12345);
$doc->addField('title', 'Stack Overflow');
$client->addDocument($doc);
$client->commit();

这完美无缺。但是,让我说我想编写一个只返回solr索引的函数。例如:

function get_index(){
   $index = //something here
   ...
   return $index;
}

我该怎么做?这可能吗?我是solr的新手,我正在使用PECL Solr客户端。(http://www.php.net/manual/en/book.solr.php

1 个答案:

答案 0 :(得分:1)

请参阅示例#4& Solr PECL客户端的Examples页面中的#5。然后,您可以构建一个搜索并返回所有字段的查询,如下所示:

 $options = array (
     'hostname' => SOLR_SERVER_HOSTNAME,
     'port'     => SOLR_SERVER_PORT);
 $client = new SolrClient($options);
 $query = new SolrQuery();
 $query->setQuery('*:*');  // *:* means search all fields for all values.
 $query->setStart(0);
 $query->setRows(100000); //very large to ensure all rows are returned.
 $query->addField('*'); // * will return all fields
 $query_response = $client->query($query);
 $query_response->setParseMode(SolrQueryResponse::PARSE_SOLR_DOC);
 $response = $query_response->getResponse();
 print_r($response);

有关查询Solr的详细信息以及可以使用的选项,请参阅以下内容: