0

リアルタイム スフィンクス テーブルに「price」という属性があり、ユーザーが検索を実行するときに、この属性の最小値と最大値を定義できるようにしたいと考えています。どうやら、これらのパラメーターの 1 つだけを定義する方法はないようです。少なくとも、私が見つけることはできません。

このコードは、何も設定されていないときにばかげた maxvalue を設定することによって、やや醜い解決策を取得します。この例のクラス値は、収集された $_GET 変数です。

問題は、フィルターが最小値と最大値の両方ではなく、どちらか一方のみを定義するようにするにはどうすればよいかということです。

if($this->_priceRangeMin > 0 || $this->_priceRangeMax > 0)
    {
        if(($this->_priceRangeMin > 0) === false )
            $this->_priceRangeMin = 0;
        if(($this->_priceRangeMax > 0) === false )
            $this->_priceRangeMax = 4294967295;
    }
$s->SetFilterRange('price', $this->_priceRangeMin, $this->_priceRangeMax);
4

1 に答える 1

0

取得したコードの何が問題になっていますか? それは動作しますね?

範囲ではなく、単に不等式フィルターを使用したい場合は、SphinxQL を使用してクエリを実行できます。しかし、それがあなたを救うことになるとは思えません。

于 2013-10-11T02:43:38.827 に答える