私はDB上で全文検索を行う検索クエリを持っています。私は「カルドソ、オラシオ」または「カルドソ」または「オラシオ」を検索すると複数の列にわたるMySQLフルテキスト検索:結果の混乱
$sql = "SELECT
*
FROM
`tbl_auction_listing` AS `al`
JOIN
`tbl_user` AS `u` ON `al`.`user_id` = `u`.`user_id`
LEFT JOIN
`tbl_gallery_details` AS `gd` ON `al`.`user_id` = `gd`.`user_id`
LEFT JOIN
`tbl_self_represented_details` AS `sr` ON `u`.`user_id` = `sr`.`user_id`
WHERE
`al`.`status` = '" . ACTIVE . "'
AND
`al`.`start_date` < NOW()
AND
`al`.`end_date` > NOW()
AND
MATCH(`al`.`listing_title`,
`al`.`description`,
`al`.`provenance`,
`al`.`title`,
`al`.`artist_full_name`,
`al`.`artist_first_name`,
`al`.`artist_last_name`,
`sr`.`artist_name`,
`gd`.`gallery_name`,
`u`.`username`) AGAINST('$search_query' IN BOOLEAN MODE)";
私は結果を得るていない、しかし私はartist_full_name =カルドソ、オラシオとデシベルでの2つのレコードのアーティストが存在しているはず。
すべての一致フィールドを削除して、ちょうどal
がある場合。 artist_full_name
私は2つの結果が得られます。私がal
に追加した場合。 description
説明に「Horacio Cardozo」が存在するため、1つの結果が得られます。
MATCHフィールドのいずれかで条件(検索クエリワード)が満たされていると、検索ですべてのレコードを返す方法はありますか? IN BOOLEAN MODEを取り除こうとしましたが、同じ結果が出ました。
'IN BOOLEAN MODE'の代わりに' NATURAL LANGUAGE MODE'を試してください –
'NATURAL LANGUAGE MODE'はデフォルトモードです(モードが指定されていない場合) – RandomSeed
検索時に0の結果が得られます。私は、DBのすべてのフィールドがフルテキストであることを確認しましたが、まだ何もありません。 – puks1978