分面搜索/分层导航,结果过滤

时间:2016-11-23 07:55:16

标签: php filtering facet layered

我使用SOLR获取我的方面,一切正常,甚至过滤查询都是正确的。

我正在努力使用php部分进行过滤器显示。

使用活动过滤器时,facets看起来像这样。但我希望实现这些链接...

network -> Cookies

我很难获得当前有效选择,当我点击已经选中的项目时,将其从网址字符串中删除。

我用来获取查询字符串的函数。

Application -> cookies

上面的函数给我这样的东西:

Manufacturers
-------------
[] BMW (/page?q=cars&manufacturer=Audi&manufacturer=Mercedes&manufacturer=BMW&model=BMW - X5&model=Mercedes - C)
[x] Audi (/page?q=cars&manufacturer=Mercedes&model=BMW - X5&model=Mercedes - C)
[x] Mercedes(/page?q=cars&manufacturer=Audi&manufacturer=Mercedes&model=BMW - X5&model=Mercedes - C)
[] Seat(/page?q=cars&manufacturer=Audi&manufacturer=Mercedes&manufacturer=Seat&model=BMW - X5&model=Mercedes - C)
[] Skoda (/page?q=cars&manufacturer=Audi&manufacturer=Mercedes&manufacturer=Skoda&model=BMW - X5&model=Mercedes - C)    

Model
-------------
[] BMW - E49 (/page?q=cars&manufacturer=Audi&manufacturer=Mercedes&model=BMW - X5&model=Mercedes - Cmodel=BMW - E49)
[] BMW - X3 (/page?q=cars&manufacturer=Audi&manufacturer=Mercedes&model=BMW - X5&model=Mercedes - C&model=BMW - X3)
[x] BMW - X5 (/page?q=cars&manufacturer=Audi&manufacturer=Mercedes&model=Mercedes - C)
[] Mercedes - A (/page?q=cars&manufacturer=Audi&manufacturer=Mercedes&model=Mercedes - C&model=BMW - X5&model=Mercedes - A)
[] Mercedes - B (/page?q=cars&manufacturer=Audi&manufacturer=Mercedes&model=Mercedes - C&model=BMW - X5&model=Mercedes - B)
[x] Mercedes - C (/page?q=cars&manufacturer=Audi&manufacturer=Mercedes&model=BMW - X5)
[] Mercedes - E (/page?q=cars&manufacturer=Audi&manufacturer=Mercedes&model=Mercedes - C&model=BMW - X5&model=Mercedes - E)
[] Mercedes - S (/page?q=cars&manufacturer=Audi&manufacturer=Mercedes&model=Mercedes - C&model=BMW - X5&model=Mercedes - S)

之后,我会尝试获取所选项目并删除它们,如果在facet循环中值等于一个方面,但我无法绕过它。

function getFilter() {
    $query  = explode('&', $_SERVER['QUERY_STRING']);
    $params = array();

    foreach( $query as $param) {
      list($name, $value) = explode('=', $param);
      $params[urldecode($name)][] = urldecode($value);
    }

    return $params;
}

1 个答案:

答案 0 :(得分:0)

解决了,它有点困难,但我已经设法让它适用于任何动态方面。

相关问题