1
上午使用搜索API视图模块来搜索我的apache Solr搜索引擎。我想为返回的结果进行自定义订单。我希望jq_articles结果首先出现,然后是书籍,然后是mydocuments。Drupal搜索API自定义搜索字段顺序
对于我的退货结果,该如何获得该客户订单(既不是ASC也不是DESC)?
我的意思是我需要像$ query-> orderby('jq_articles,'books','mydocuments');
这是我query_alter如何看待暂且:
<?php
function mymodule_search_api_query_alter(SearchApiQueryInterface $query) {
$filters = &$query->getFilter()->getFilters();
foreach ($filters as $i => $filter) {
$condition="";
$finalfilters=&$filter->getFilters();
foreach($finalfilters as $z => $singlefilter){
if($singlefilter[0]=='type') {
$condition=$singlefilter[1];
unset($finalfilters[$z]);
}
}
}
$filter = $query->createFilter('OR');
switch($condition) {
case 'journals':
$filter->condition('type', 'jq_articles');
break;
case 'books':
$filter->condition('type', 'books');
break;
case 'mydocuments':
$filter->condition('type', 'mydocuments');
default:
$filter->condition('type', 'mydocuments');
$filter->condition('type', 'books');
$filter->condition('type', 'jq_articles');
break;
}
$query->filter($filter);
}
?>