0

「タグ」と呼ばれるフィールドがあり、その値(たとえば)「音楽、アート、スポーツ、フード」などがあります。このフィールドに PHP-Sphinx で setFilter 関数を使用するにはどうすればよいですか。整数でなければならず、PHP で配列として使用する必要があることはわかっています。したがって、タグに数値フィールドを使用する場合、区切り文字 (この場合はコンマ) はどうでしょう。現在、私はこのように「sql_attr_multi」を使用しています…</p>

sql_attr_multi = uint tags from field

ユーザーが選択したキーワード (音楽、スポーツ、食べ物など) に基づいて検索をフィルタリングする必要があります。そのため、これを行うには MVA のみが適切なオプションです。しかし、私はこれを行う方法を理解することができません。すべてのタグ要素を数値として保存し、タグ フィールドを int にすることができます。しかし、カンマについてはどうでしょうか、または文字列全体 (音楽、アート、スポーツ、食べ物) を整数として変換するにはどうすればよいでしょうか。後で、PHP を使用して setFilter を呼び出す方法について説明します。

どんな助けでも大歓迎です。

4

1 に答える 1

0

MVA を適切に使用すると、各タグに既に一意の ID があることが示唆されます。

タグ用の個別のテーブル (PK を含む) と、ドキュメントとタグを結合する多対多のテーブルがあるとします。(これはタグを保存する非常に一般的な方法です - 通常の形式で)

テキストを含むテキスト列がある場合は、フィールドを使用する方が簡単です。メインのテキストクエリのフィールドで簡単にフィルタリングできます。

クリスピークリーム @tags 食品

たとえば(拡張モードのクエリです)

(ただし、フィールドは属性のようにグループ化できません)

于 2013-07-23T17:21:42.083 に答える