2012-08-10 2 views
-1

PHP 기반 전자 상거래 웹 사이트에 대한면 검색을 시도하고 있습니다. GET 메서드를 사용하여 필터를 작성하면 웹 사이트에 많은 필터가 있으므로 코드가 매우 복잡해집니다. 누군가가 자습서를 제공하거나 측면 검색을 구축 할 수있는 더 나은 방법을 제공 할 수 있습니까?PHP에서 패싯 검색을 구현하는 데 도움이 될 수 있습니까?

스핑크스를 사용하여면 처리 된 검색을 구현할 생각 이었지만 Sphinx를 처음 사용했습니다. 고객이 스핑크스를 거부했습니다 (이유를 모르겠습니다). 스핑크스를 사용하여 기본 검색을 구축 할 수는 있지만면 검색으로 진행하는 방법을 모릅니다. 누군가가 스핑크스에 대한 튜토리얼을 제공 할 수 있다면 그것을 사용하여 구현 한 후에 클라이언트를 설득하려고 노력할 수 있습니다. 하루에면 검색을 구현해야하기 때문에 시간이 중요한 요소입니다. 카테고리 또는 브랜드와 같은 새로운 쿼리 문자열을 추가하고 위의 기능 범주와 브랜드 나는 다섯 개 가지 이상의 필터를 같이

$url = 'http://' . $_SERVER['SERVER_NAME'].'?page='.$page.$urlstring; 

$categoryGet = (isset($_GET['category']))?$_GET['category']:NULL; 
$categoryQS = '&category='.$categoryGet; 

$brandGet = (isset($_GET['brand']))?$_GET['brand']:NULL; 
$brandQS = '&brand='.$brandGet; 

$categories = categories_list($brandGet); 

echo '<ul id="categories">'; 
list all categories using foreach with link in following format 
echo '<a href="'.$url.'&category='.$category["category_id"].'">' 
echo '</ul>'; 

$brands = brands_list($categoryGet); 
echo '<ul id="brands">'; 
list all brands using foreach with link in following format 
echo '<a href="'.$url.'&brand='.$brand["brand_id"].'">' 
echo '</ul>'; 

에서 기존 쿼리 문자열을 제거합니다

$urlstring = ''; 
$urlstring = rmParamQS('category'); 
$urlstring = rmParamQS('brand', $urlstring); 

코드입니다. rmParamQS 함수는 $ url에서 해당 쿼리 문자열을 제거합니다. categories_list 및 brands_list 함수는 다른 필터의 URL에있는 쿼리 문자열의 ID를 기반으로 데이터를 필터링합니다.

+0

클라이언트가 심각하게 거부 한 경우 Sphinx를 사용하지 않아야합니다. – Don

+0

실제로 시간 제한으로 인해 클라이언트가이를 거부했습니다 – user434509

+0

왜 스핑크스 튜토리얼을 요청하고 있습니까? – Don

답변

0

왜 이것이 패싯 검색인지 모르지만 여기에는 조인을 사용하는 PHP 및 mysql 예제가 있습니다. Faceted Search (solr) vs Good old filtering via PHP?.

+0

사실 일부 기능에서는 데이터베이스 쿼리로 데이터를 필터링 할 수 있습니다. 이러한 함수를 호출하는 동안 나는 많은 GET 메소드에 문제가있다. – user434509

+1

누구나 할 수 있습니다. 코드를 게시 할 수 있습니까? – Bytemain

관련 문제