私はスフィンクス検索エンジンを使用しています。フィールド内の正確な単語を検索するために必要です。通常は正常に動作しますが、奇妙な異常がいくつかあります。
$this->sphinxclient->Query('@title "Alfa Romeo 159"~3', "indexads" );
私はこれを試します。私が正しく理解していれば、これはフィールド タイトルを検索し、単語間の余白は 2 ほど大きくすることはできません。私は Sphinx の拡張構文を使用しています。
$this->sphinxclient->SetArrayResult(true);
$this->sphinxclient->SetMatchMode(SPH_MATCH_EXTENDED2);
$this->sphinxclient->SetSortMode (SPH_SORT_RELEVANCE);
if($category_id>0)
$this->sphinxclient->SetFilter('category', array($category_id));
$this->sphinxclient->SetFilter('status', array(1));
$this->sphinxclient->SetLimits(0,50000);
$this->sphinxclient->setFieldWeights(array ("title"=>1000,"description"=>0));
これは、検索のセットアップに使用するコードです。フィルターは、私が望む結果にまったく影響を与えません。SPH_MATCH_PHRASE は説明どおりに機能しないため、拡張構文を使用します。一般に、拡張構文はそれほどうまく機能しません。ただし、検索では、このクエリに一致するはずのすべての結果が返されるわけではありません。他の誰かが検索エンジンに異常を感じたことがありますか、それとも私が何か間違ったことをしていますか? ほとんど同じフィールドが 2 つあるのに、1 つしか返されないのは奇妙です。
アルファ ロメオ、159 スポーツワゴン、1.9 JTDM 特徴的
アルファ ロメオ、159、SW プログレッション 1.9JTDm
これは、フィールド タイトルの 2 つの値です。両方ともクエリに一致するはずですが、一致するのは最初の値だけです。
また、Audi A8 などを検索すると、常に Audi A6、Audi A4 などの文字列が返されます。