Solr PHP support

2019-03-27 01:09|来源: 网路

Solr PHP support

 

 

solr-php-client

A 3rd party PHP library for indexing and searching documents within an Apache Solr installation.

Zip / Tarballs can be found at SolrPhpClient

  • Adding, Deleting (by id and query), committing, optimizing and of course searching against a Solr instance
  • Written for PHP 5 in Zend Framework / PEAR coding style
  • PHPDoc generated API documentation included
  • See link above for example usage and further documentation

 

Apache Solr PHP Extension

The Apache Solr PECL extension is a light-weight, feature-rich library that allows developers using Apache Solr via PHP to communicate easily and efficiently with the Solr web service using an object-oriented API.

The documentation for the PECL extension contains instructions on how to install the extension and is available in the PHP Manual under Search Engine Extensions.

Sometimes, the official documentation may take a while to update. The documentation for the Solr PECL extension is constantly being updated from time to time.

If you are unable to find some information on the official PHP manual, please check here

The latest version of the PECL extension is 0.9.7 (2009-11-17)

The php extension can be downloaded from the Apache Solr PECL project home page.

Thanks to Pierre-Alain Joye from php.net, the Windows DLL for php 5.3 can be downloaded here

http://downloads.php.net/pierre/

A quick list of some of the features of the API include :

  • Built in support for adding, deleting, optimizing, searching, rollback.
  • Ability to connect to Solr servers behind SSL-enabled containers.
  • Users can optionally provide PEM-formatted private keys or certificates to connect in HTTPS mode.
  • Users can optionally provide CA certificates to authenticate hostname and issuer of SSL certificate.
  • Developers can now update the values of the servlets (such as search, update) after the SolrClient instance has been created.

  • Built in, Serializable query string builder objects which effectively simplifies the manipulation of name-value pair request parameters across repeated requests.
  • The query builder API has methods to add/set, remove or retrieve name-value pair values for the following features in Solr : SimpleFacetParameters,StatsComponentMoreLikeThisHighlightingParametersTermsComponent etc.

  • Ability to reuse of HTTP connections across repeated requests (within the same thread in ZTS mode or same process in non-ZTS mode).
  • Advanced HTTP client that provides built-in support for connecting to Solr servers secured behind HTTP Authentication or HTTP proxy servers.
  • Ability to obtain SolrInputDocument objects from SolrDocument in query response for possible resubmission or updates.

  • Automatic parsing of Solr response into native php objects whose properties can be accessed as array keys or object properties without any additional configuration on the client-side. This is simplified interface to access server response data. Solr Objects can be treated as arrays or objects.
  • Also the SolrDocument retrieved from the query response implements the following interfaces which gives the developer several options on how to manipulate the response : ArrayAccess, Iterator, Traversable, Serializable.

The extension currently uses version 2.2 of the xml response format internally.

The contents of the XML response is transformed into native PHP types and the result is returned as a Solr Object instance.

You may also install it by running the following command in the console :

$ pecl install solr-beta

 

Solarium

Solarium is a Solr client library for PHP applications that not only facilitates Solr communication but also tries to accurately model Solr concepts.

 

Solr's PHP response format

Solr has a PHP response format that outputs an array (as PHP code) which can be eval'd.

Example usage:

 

$code = file_get_contents('http://localhost:8983/solr/select?q=iPod&wt=php');
eval("\$result = " . $code . ";");
print_r($result);

 

Solr's PHP Serialized response format

Solr has a PHP response format that outputs a serialized array.

Example usage:

 

$serializedResult = file_get_contents('http://localhost:8983/solr/select?q=iPod&wt=phps');
$result = unserialize($serializedResult);
print_r($result);

In order to use either PHP or Serialized PHP Response Writers, you may first need to uncomment these two lines in your solrconfig.xml:

 

<queryResponseWriter name="php" class="org.apache.solr.request.PHPResponseWriter"/>
<queryResponseWriter name="phps" class="org.apache.solr.request.PHPSerializedResponseWriter"/>

You can also use the new response writer plugin for PHP here

https://issues.apache.org/jira/browse/SOLR-1967

 

<code>
<queryResponseWriter name="phpnative" class="org.apache.solr.request.PHPNativeResponseWriter">
<!-- You can choose a different class for your objects. Just make sure the class is available in the client -->
<str name="objectClassName">SolrObject</str>
<!--
0 means OBJECT_PROPERTIES_STORAGE_MODE_INDEPENDENT
1 means OBJECT_PROPERTIES_STORAGE_MODE_COMBINED

In independed mode, each property is a separate property
In combined mode, all the properites are merged into a _properties array.
The combined mode allows you to create custom __getters and you could also implement ArrayAccess, Iterator and Traversable
-->
<int name="objectPropertiesStorageMode">0</int>
</queryResponseWriter

<code>

Also check out how to use it on the client side here

http://www.php.net/manual/en/solrclient.setresponsewriter.php

http://www.php.net/manual/en/solrclient.construct.php


CategoryQueryResponseWriter

 

Historical

Original Client Code Contributed By Brian Lucas:

There are two classes for PHP: SolrUpdate and SolrQuery.

/!\" height= :TODO: /!\" height=

- clean up some of the XML writing code -- it's a tad "kludgy" right now.

- abstract out more of the logic into configurable variables

- add back in the logging and debugging classes that clean up the "echo" calls


转自:http://www.cnblogs.com/JosephLiu/archive/2011/11/17/2252446

相关问答

更多
  • 我可以给你一些关于eZ Publish的提示。 有关免费/企业版的说明 关于eZ Publish&eZ Find,除非您想获得eZ Systems的官方支持,维护和专业服务,否则无需支付任何费用。 如果您想要澄清(或询问更多),请查看此帖: Ez Publish 4.5是免费的还是仅限企业版? eZ Find是什么 eZ Find是内容存储库和搜索引擎(Solr)之间的高级连接器。 启用eZ Find后,只要您发布内容,就会在Solr中编制索引并在搜索模块/视图中显示(如果您发布了大量内容并且不需要更新索引 ...
  • 我不知道solr,但对于NetCDF您可以使用标准程序提取数据以进行索引。 存在C,JAVA和Python的工具(你可能对FORTRAN不感兴趣),所以只需将必要的数据转储到solr可以读取的东西即可。 I do not know about solr, but for NetCDF You can use standard programs to extract the data for indexing. Tools exist for C, JAVA and Python (You're probab ...
  • 由于它是Solr的一部分,它肯定会出现,但我们不会就未来DSE版本的时间或具体内容提供任何指导。 It's certainly coming since it's part of Solr, but we don't give any guidance as to the timing or specific content of future DSE releases.
  • 似乎没有直接的解决方案,但我找到了一个解决方法。 而不是使用solr.so扩展,可以从这里使用开源solr-php-client 。 它确实需要编译器,因此Heroku上没有apache错误。 It seems that there are no direct solutions but I have found a workaround. Instead of using solr.so extension, one can use open-source solr-php-client from her ...
  • SolrJ客户端将查询作为URL参数发送( q=memory&fq=inStock:true ),响应类型为javabin https://wiki.apache.org/solr/javabin 您可以使用apache http客户端并将您的JSON查询和触发请求设置为Solr。 Essentially, we can also set the parameter "json" and the query in SolrJ SolrQuery: SolrQuery.add("json", "{json q ...
  • 使用PHP(或另一种服务器端语言)实现基本功能。 使用客户端JS的可选附加组件。 建立在有效的东西上。 Use PHP (or another server side language) for essential functionality. Use client side JS for optional extras. Build on stuff that works.
  • 尝试使用hl.fragsize来增加由Solr返回的突出显示片段的大小。 Try hl.fragsize to increase the size of the highlighted snippet returned by Solr.
  • 这里有一篇很好的文章将帮助您完成PHP和SOLR的集成: http://www.ibm.com/developerworks/opensource/library/os-php-apachesolr/ SOLR有许多PHP接口,该文章引用了PHP SOLR客户端: http://code.google.com/p/solr-php-client/ 但也有这个: http://pecl.php.net/package/solr There's a good article here that will hel ...
  • 首先来看看本教程 。 使用solr,您将需要一个xml(或csv )文档,该文档将被推送到solr(进程称为更新;索引是使字段可用于搜索的过程)。 ......的格式是...... 喜欢: 9885A004 Canon PowerShot SD500 camera
  • changelog中没有任何内容表明php_solr扩展支持更新单个字段(字段更新对您的模式也有一些要求)。 我要说它并不是优先事项,因为它与再次提交文件(您的工具链应该能够做到)没有多大区别。 overwrite替换了allowDups与XML更新消息相关的allowDups和其他两个设置,但与字段级更新无关 - 只是当uniqueKey已存在于索引中时要采取的操作。 There is nothing in the changelog indicating that the php_solr extens ...