PHP ベースの e コマース Web サイトのファセット検索を構築しようとしています。Web サイトには多くのフィルターがあるため、メソッドを使用してフィルターをGET
作成すると、コードが非常に複雑になります。誰かがファセット検索を構築するためのチュートリアルやより良い方法を教えてもらえますか?
Sphinx を使用してファセット検索を実装することを考えましたが、Sphinx は初めてです。クライアントが Sphinx を拒否しました (理由はわかりません)。Sphinx を使用して基本的な検索を構築することはできますが、ファセット検索を進める方法がわかりません。誰かがSphinxに関するいくつかのチュートリアルを提供できれば、それを使用して実装した後にクライアントを納得させようとするかもしれないので、それは素晴らしいことです. ここでは、ファセット検索を 1 日で実装する必要があるため、時間は重要な要素です。
$urlstring = '';
$urlstring = rmParamQS('category');
$urlstring = rmParamQS('brand', $urlstring);
カテゴリやブランドなどの新しいクエリ文字列を追加し、上記の関数から既存のクエリ文字列を削除するコード
$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>';
カテゴリやブランドと同様に、さらに 5 つのフィルターがあります。rmParamQS 関数は、$url からそれぞれのクエリ文字列を削除します。category_list および Brands_list 関数は、他のフィルターの URL のクエリ文字列の ID に基づいてデータをフィルター処理します