Sphinx には、それを行うための「モード」がありません。しかし、非常に接近することができます...
MAYBE 演算子を使用できます
MATCH('_all_ MAYBE electronics MAYBE (galaxy s7)')
複雑なのは、すべての製品を一致させる方法が必要なことです。データによっては、使用できる単語 (たとえば、すべての製品で「the」のような単語) が既にある場合や、インデックス作成中にその単語をすべてのドキュメントに追加する場合があります。
... MAYBE を使用すると、一致する結果の重みを高くすることができます。
ただし、厳密に重量でソートする必要はありません。したがって、結果を少しシャッフルするための別のアルゴリズムが必要です(「ランダム」が本当に必要ないためです!)
SELECT id, IDIV(id/10000) AS int,WEIGHT() AS w
FROM index WHERE MATCH('_all_ MAYBE electronics MAYBE (galaxy s7)')
ORDER BY int DESC, w DESC;
これにより、ID によるバンディングが作成されます。理論的には、結果がすべての ID 空間に分散される可能性があり、結果が少し混ざり合う可能性があります。ただし、カテゴリの結果は、各バンド内で最初に表示される傾向があります。
ID 以外の別の属性が 1 つある場合は、より良いものになる可能性があります。または、結果に意図的なランダム属性を追加できます)
... あらゆる種類のバリエーションがあります。あなたの想像力が唯一の制限です。この基本的なテクニックを使用して、物事を少し混ぜ合わせることができます。
(他の可能性もあります。Sphinx のあまり知られていない GROUP N BY 関数を使用して、サンプリング検索結果を生成できます。これはランダムではありませんが、同様の十分な結果が得られる可能性があります。つまり、結果を混同するだけです)