变更请求处理我使用的是默认的PHP Solr的客户: http://php.net/manual/en/book.solr.php 截至目前为止,结果是惊人的,所以我决定继续使用Solr的,并制定了“建议者”服务:如何使用PHP PECL扩展Solr的
我做了根据: http://wiki.apache.org/solr/Suggester/ 它也工作得很好 - 但我不知道如何查询它使用PHP客户端。
这是我如何查询文件:
http://localhost:8080/solr/subject_offers/select/?q=string_to_search
这是我的查询建议:
http://localhost:8080/solr/subject_offers/suggest/?q=string_to_suggest
正如你所看到的,建议的服务有不同的RequestHandler(称为“建议“)。 如何在客户端上更改它?
更新: 我使用cURL从Solr中检索响应XML。 但我仍然想要返回一个Solr响应对象,所以我使用“SolrUtils :: digestXmlResponse($ xml,SolrResponse :: PARSE_SOLR_OBJ)”。 不幸的是我得到的“错误未序列化响应”错误一个有效的XML:
<response><lst name="responseHeader"><int name="status">0</int><int name="QTime">2</int></lst><lst name="spellcheck"><lst name="suggestions"><lst name="the"><int name="numFound">1</int><int name="startOffset">9</int><int name="endOffset">12</int><arr name="suggestion"><str>the</str></arr></lst><lst name="the"><int name="numFound">1</int><int name="startOffset">33</int><int name="endOffset">36</int><arr name="suggestion"><str>the</str></arr></lst><lst name="collation"><str name="collationQuery">name:for the d^5 description:for the d^0.4</str><int name="hits">1</int><lst name="misspellingsAndCorrections"><str name="the">the</str><str name="the">the</str></lst></lst></lst></lst><result name="response" numFound="1" start="0"><doc><str name="1_on_1_price">9,USD</str><float name="avarage_rating">0.0</float><arr name="categories"><str>2,2,3</str></arr><int name="category_id">3</int><arr name="description"><str>was named for the directo</str><str>The Manchesowned by Peel Ports</str></arr><bool name="is_public">true</bool><str name="language">he</str><int name="lesson_type">0</int><str name="name">was named for the directo</str><int name="subject_id">12</int></doc></result></response>
请指教,谢谢 !
我知道我可以使用cURL,但我更喜欢使用实际的库。 – eldad87 2012-07-19 23:04:05
我试图使用cURL,但也继续使用Solr对象响应值,所以我试图使用: http://www.php.net/manual/en/solrutils.digestxmlresponse.php 这反过来导致使用parse_mod of SolrResponse :: PARSE_SOLR_OBJ解析有效响应XML时出现错误“un-serializing response错误” – eldad87 2012-07-20 14:15:34