脚本宝典收集整理的这篇文章主要介绍了php – 搜索框在Symfony2与Solr,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我该怎么办?
在我的项目中,Solr bundle使用这个:
use SolrClient; use SolrQuery; use SolrObject; use SolrDocument; use SolrInputDocument;
在基本的twig文件中:
<form action="{{ path("home_seArch") }}" method="get"> <input tyPE="search" name="search"><br> <input type="submIT" value="search"> </form>
我的控制器的一些例子:
public function searchAction($templateName = '') { $solrService = $this->get('rocket.solr_service'); $solrQuery = new SolrQuery('*:*'); $solrQuery->adDField('id') ->addField('name'); if (!empty($templateName)) { $solrQuery->addFilterQuery(sPRintf('name:"%s" OR design_template_tag_name:"%1$s" OR design_category_name:"%1$s"',$templateName)); } $solrQuery->setRows(1000); $solrObject = $solrService->query( 'RocketBraPrintBundle:DesignTemplate',$solrQuery,SolrService::WRITER_FORMAT_SOLR_OBJECT ); $templates = $solrObject->offsetGet('response')->offsetGet('docs'); if (!$templates) { if (!empty($templateName)) { $this->setFlash('cataLOG-message','No results found for your search.'); return $this->searchDesignTemplates($categoryTreeSlug,$productFamilyFaceid); } return array(); } return $templates; }
真的很好,更好的solr查询
我已经用它了
这里是一个样本
$query = 'foo'; $page = 1; if (array_key_exists('page',$params)) { $page = (int) $params['page']; } $rows = 10; if (array_key_exists('limit',$params)) { $rows = (int) $params['limit']; } $solarium = $this->get('solarium.client'); //select $select = $solarium->createSelect(); $escapedQuery = $select->getHelper()->escapePhrase($query); //dismax $dismax = $select->getDisMax(); // override the default setting of 'dismax' to enable 'edismax' $dismax->setQueryParser('edismax'); //fields $dismax->setQueryFields( array('title^5','description^0.7')); $select->setQuery($escapedQuery); //limit $select->setRows($rows); $select->setStart(($page - 1) * $rows); //type spot only $select->createFilterQuery('typeFilter') ->setQuery(sprintf('type:%s','spot')); $resultset = $solarium->select($select);
以上是脚本宝典为你收集整理的php – 搜索框在Symfony2与Solr全部内容,希望文章能够帮你解决php – 搜索框在Symfony2与Solr所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。