Есть какие-нибудь полнотекстовые, эксперты по MySQL?
Я вчера написал вопрос, спрашивая какие-либо предложения о том, как использовать полнотекстовый поиск с большим количеством объединений, немного лениво, на самом деле я не пытался.
С тех пор у меня была хорошая попытка освоить его самостоятельно, создав несколько успешных тестовых запросов к моим полнотекстовым полям. Если я НЕ использую никаких объединений и запрашиваю каждое поле по отдельности, полнотекстовые функции работают отлично, а релевантность / логическое значение также прекрасно работает с высокой производительностью ... но ... как только я добавляю свои объединения, чтобы выполнить полный запрос , он работает вечно.
Может ли кто-нибудь найти в моем запросе что-нибудь, что могло бы вызвать это, потому что, как любитель, я действительно не вижу этого!
SELECT
photos.photoID,
photos.headline,
photos.dateCreated,
MATCH (people.people) AGAINST ('+sarah +harding' IN BOOLEAN MODE) AS Rel1
FROM photos
LEFT JOIN ( photoPeople INNER JOIN people ON photoPeople.peopleID = people.PeopleID )
ON photos.photoID = photoPeople.photoID AND MATCH (people.people) AGAINST ('+sarah +harding' IN BOOLEAN MODE)
WHERE
photos.photoStatus = 'Live'
GROUP BY
photos.photoID
ORDER BY Rel1
Это один из моих успешных индивидуальных запросов:
SELECT
photoID,
headline,
dateCreated,
MATCH (caption) AGAINST ('+sarah +harding' IN BOOLEAN MODE) AS Relevance
FROM photos
WHERE
photoStatus = 'Live'
AND
MATCH (caption) AGAINST ('+sarah +harding' IN BOOLEAN MODE)
ORDER BY Relevance
Это схема БД:
photos (tbl)
photoID INT(11) Primary Auto-Increment
headline Long-Text
caption Long-Text / FULLTEXT
dateCreated DateTime
people (tbl)
peopleID INT(11) Primary Auto-Increment
people VarChar(255) / FULLTEXT
photoPeople (tbl)
photoID INT(11)
peopleID INT(11)
keywords (tbl)
keywordID INT(11) Primary Auto-Increment
keyword VarChar(255) / FULLTEXT
photoKeyword (tbl)
photoID INT(11)
keywordID INT(11)
photoContributor (tbl)
photoID INT(11)
contributorRef VarChar(100) / FULLTEXT
А это моя ОБЪЯСНИТЕЛЬНАЯ распечатка:
id select_type table type possible_keys key key_len ref rows
1 SIMPLE photos ALL NULL NULL NULL NULL 89830
1 SIMPLE photoContributor ALL NULL NULL NULL NULL 149635
1 SIMPLE photoPeople ALL NULL NULL NULL NULL 110606
1 SIMPLE people eq_ref PRIMARY PRIMARY 4 1
1 SIMPLE photoKeyword ALL NULL NULL NULL NULL 699102
1 SIMPLE keywords eq_ref PRIMARY PRIMARY 4 1
Посетитель моего сайта должен иметь возможность искать:
"Солнцезащитные очки отеля" Brad Pitt Angelina Jolie Dorchester Hotel @MG "- здесь должны быть найдены" Brad Pitt "и" Angelina Jolie "из таблицы" people.people "и, возможно, из таблицы" photos.caption ". Он также должен найти «Dorchester Hotel» из таблицы «photos.caption», «Sunglasses» из таблицы «words.keyword »и, наконец, найти« @MG »в таблице« photoContributor.contributorRef ».
Любая помощь по этому вопросу будет принята с благодарностью ...