Запрос на выбор наиболее полного подмножества

ALEZ

Новичок
Запрос на выбор наиболее полного подмножества

Существует исходное множество и группа множеств, таких, что каждое из них может быть подмножеством исходного множества. Задача - сконструировать запрос, который по исходному множеству подберет наиболее полное подмножество.

Исходное множество
PHP:
cheap, herberas, chrys, flowers
Группа множеств (их может быть до сотни)
PHP:
lilies, flowers
cheap, lilies, flowers
cheap, flowers
flowers
......
Очевидно, что наиболее полное подмножество - cheap, flowers.

Естественно, любые комбинации с LIKE и AND или OR к успеху не приведут (без перебора 2^n комбинаций).

Как решить эту задачу средствами mysql?
 

Adelf

Administrator
Команда форума
Можно самому таблицы под это дело спроектировать или все-таки структура БД задается.
 

varan

Б̈́̈̽ͮͣ̈Л̩̲̮̻̤̹͓ДͦЖ̯̙̭̥̑͆А͇̠̱͓͇̾ͨД͙͈̰̳͈͛ͅ
если каждое из этих множеств и подмножеств - строка, то можно искать полнотекстовым поиском, fulltext индекс
 

ALEZ

Новичок
Автор оригинала: Adelf
Можно самому таблицы под это дело спроектировать или все-таки структура БД задается.
Структура БД задана. Исходное множество и группа множеств - это строки.

Автор оригинала: varan
если каждое из этих множеств и подмножеств - строка, то можно искать полнотекстовым поиском, fulltext индекс
Вы имеете ввиду это - http://phpclub.ru/mysql/doc/fulltext-search.html ? Посчитать степень релевантности строк и выбрать с максимальной степенью? Кхм... Но ведь элементы множеств могут находиться в произвольном порядке, это скажется на релевантности.

Кроме того, как повлияет на релевантность то, что "запрос" в поиске будет, как правило, длиннее поля, по которому будет выполняться поиск. Я просто никогда не использовал MATCH(), поэтому не совсем понимаю результат.
 

varan

Б̈́̈̽ͮͣ̈Л̩̲̮̻̤̹͓ДͦЖ̯̙̭̥̑͆А͇̠̱͓͇̾ͨД͙͈̰̳͈͛ͅ
Но ведь элементы множеств могут находиться в произвольном порядке, это скажется на релевантности.
по-моему не должно сказываться

Кроме того, как повлияет на релевантность то, что "запрос" в поиске будет, как правило, длиннее поля, по которому будет выполняться поиск. Я просто никогда не использовал MATCH(), поэтому не совсем понимаю результат.
вроде всё должно быть нормально. Советую поэкспериментировать

-~{}~ 25.11.09 21:27:

хотя если множеств всего сотня можно их все сразу сграбастать и на php пройтись по-очереди каким-нибудь array_intersect()
 
Сверху