関連するキーワード テーブルと一致するように mysql 式をフォーマットする正しい方法を見つけるのに苦労しています。
テーブルは次のように設定されます。
photos: id,path,various exif data
photos_to_tags: photos_id,photos_tags_id
photo_tags: id,name
SQL は次のとおりです。
SELECT DISTINCT (photos.path),photos.name,
MATCH (photo_tags.name) AGAINST('+bamboo* +flooring* ') AS relevance
FROM photo_tags
LEFT JOIN photos_to_tags ON photo_tags_id = photo_tags.id
LEFT JOIN photos ON photos.id = photos_id
WHERE (MATCH (photo_tags.name) AGAINST('+bamboo* +flooring* ' IN BOOLEAN MODE))
OR photo_tags.name = 'bamboo flooring'
GROUP BY path
ORDER BY relevance
LIMIT 0,24;
「竹の床」という正確なフレーズがタグでない限り、結果は返されません。「bamboo」がタグで「flooring」がタグの場合、結果は返されません。
問題をさらに詳しく説明するための詳細: これは請負業者の Web サイト用です。彼は何百枚もの作品の写真を持っています。彼は 30 枚の屋根ふきの写真を持っているかもしれません。屋根ふきの写真のいくつかは鋼鉄の屋根かもしれませんし、他のものは杉の揺れ、寿命などかもしれません。
キーワード タグは別のテーブルにあり、屋根のすべての写真を一覧表示するために使用できます。または、検索を使用して、スチール屋根のみ、またはトリムの詳細を含むスチール屋根などをさらに分離するために使用できます。
このクエリを書く別の方法があるかもしれません.関連する結果を返す良い方法を見つけることができませんでした. たとえば、誰かがライフタイム ルーフを検索する場合、彼らはスチール ルーフの写真を見たくありません。
ありがとう!