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

  • Автор темы Автор темы ALEZ
  • Дата начала Дата начала

ALEZ

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

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

Исходное множество
PHP:
cheap, herberas, chrys, flowers

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

Очевидно, что наиболее полное подмножество - cheap, flowers.

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

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

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

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

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

-~{}~ 25.11.09 21:27:

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