php solr 查询

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

$options = array
(
  'hostname' => 'localhost',
  'port' => 8080,
  'path' => 'solr/test'
);

$client = new SolrClient($options);

$query = new SolrQuery();

$query->setQuery('title:今日');

$query->setStart(0);

$query->setRows(50);

$query->addField('id')->addField('title');

$query_response = $client->query($query);

$response = $query_response->getResponse();

print_r($response);

 

结果如下

SolrObject Object ( [responseHeader] => SolrObject Object ( [status] => 0 [QTime] => 0 [params] => SolrObject Object ( [fl] => id,title [indent] => on [start] => 0 [q] => title:今日 [wt] => xml [rows] => 50 [version] => 2.2 ) ) [response] => SolrObject Object ( [numFound] => 2 [start] => 0 [docs] => Array ( [0] => SolrObject Object ( [id] => 324 [title] => 聚划算今日最大牌团购 ) [1] => SolrObject Object ( [id] => 333 [title] => 聚划算今日最大牌团购 ) ) ) )

 

API 参考

http://www.php.net/manual/zh/class.solrclient.php


转自:http://www.cnblogs.com/sidesky/p/3243794

相关问答

更多
  • public static Map<String, Integer> queryByGroup(String qStr,String groupField,String sortField,boolean asc,Integer pageSize,Integer pageNum){ Map<String, Integer> rmap = new LinkedHashMap<String, Integer>(); try { SolrServer server = getS ...
  • 我不知道为什么这不工作,但这是逻辑上相同的,它的工作: -(myField:superneat AND -myOtherField:somethingElse) 也许这与在查询中定义相同的字段两次有关 尝试在solr-user组中询问,然后在这里发回最后的答案! I don't know why that doesn't work, but this one is logically equivalent and it does work: -(myField:superneat AND -myOther ...
  • 有一个名为doctype的string类型字段,可以在将来获取值blog , event和任何内容。 &bq=cat:electronics^5.0 &bq=sponsored:true &bq=doctype:blog^5.0 这意味着现场doctype和价值blog的文档得分得到提升。 5.0是增强权重,当一个条件比另一个条件更重要时有用。 改编自此http://wiki.apache.org/solr/ExtendedDisMax#Examples 从http://wiki.apache.org/s ...
  • 这些DB服务器的用途不同,它在很大程度上取决于您的应用程序(以及您存储的数据类型)是否应该仅使用Solr或MySQL。 MySQL可以很好地存储具有大量关系和表格的数据(彼此相关的表格)。 Solr很适合文本搜索(正如你所说:快速索引),如果你没有很多“相关数据”,你确实可以将这些数据存储在相同的文档中。 有些人确实只使用Solr来存储他们的数据库...但我仍然认为RDBM可以很好地用于某些类型的数据。 例如:如果您想允许快速搜索系统用户并存储他们的完整个人资料,以及一些信息详细信息......最好使用So ...
  • 可能还有其他一些解决方案,我可以为您提出以下两种解决方案。 您可以检查输入框。 如果它为空,默认情况下使用Solr URL传递*:*作为输入。 或者,您可以修改select请求处理程序的solrconfig.xml 。 放 *:* 在查询时 http://'localhost':8080 / solr / collection1 / select?q =&wt = xml&indent = true& defType = dismax 你可以看到我提供了q= ...
  • 首先,我认为Solr通配符比“1或多个”更好地归纳为“0或多个”。 我怀疑这是你问题的根源。 (例如,请参阅WildcardQuery的javadoc 。) 其次,你是否在使用词干,因为我的第一个猜测是你正在处理一个词干问题。 Solr通配符在词干方面可能表现得很奇怪。 这是因为通配符扩展是通过搜索存储在倒排索引中的术语列表来进行的; 这些术语将以词干形式出现(可能类似“gatorad”),而不是来自原始源文本(可能是“gatorade”或“gatorades”)的单词。 例如,假设你有一个词干分析器,把“ ...
  • 您还需要设置要突出显示结果的字段: http://localhost:8080/solr/select?q=book&hl=true&hl.fl=content 你也可以在你的部分设置它。 编辑:您还需要在solrconfig.xml文件中的中启用突出显示组件。 假设您正在使用标准/选择请求处理程序。 为此,您需要取消注释并修改部分底部的
    尝试使用SolrQuery对象而不是ModifiableSolrParams。 也许它会有所帮助。 如果您因任何原因无法使用SolrQuery,请尝试使用静态名称,例如“CommonParams.Q”而不是像“?q”这样的硬编码名称。 EDITED 我测试了您的问题,我认为您的Application Server缺少配置。 你在使用JBoss 7.1吗? 您需要在.standalone.sh或standalone.bat中添加一行,告诉solr在哪里。 例如,在Jboss 7.1中,在默认配置中,您必须向s ...
  • 这里有一篇很好的文章将帮助您完成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 ...
  • 我有同样的问题,我在源代码中找到了答案。 解决方案是: $client = new SolrClient($options); $client->setServlet(SolrClient::SEARCH_SERVLET_TYPE, "request_handler_name"); I had the same problem and I found answer in the source code. The solution is: $client = new SolrClient($options) ...