Помогите сделать выборку

kvf77

Red Devil
Помогите сделать выборку

Есть таблица
onova - содержит кол-во байт основы слова
affixs - содержит аффиксы (приставки)
suffixes - содержит суффиксы

пользователь ищет следующее слово, стостояжее из аффикса+основы+суффикса
как проверить есть ли такое слово вообще, если мы не зраним целых слов в базе, скажем проверить гепотетически, что
WHERE affix+osnova+suffix LIKE 'slovo' можно ли проделать такое? или скажем искать присутствие только основы в искомом слове типа WHERE 'slovo' LIKE '%osnova%' (здесь osnova - это поле в базе данных).
 

Falc

Новичок
kvf77
>>Есть таблица
>>onova - содержит кол-во байт основы слова
>>affixs - содержит аффиксы (приставки)
>>suffixes - содержит суффиксы

Этож скока записей у тебя в таблице? Только в русском языке больше милиона словоформ. Я уж молчу про то сколько места это будет занимать :)
 

kvf77

Red Devil
Автор оригинала: Falc
kvf77
>>Есть таблица
>>onova - содержит кол-во байт основы слова
>>affixs - содержит аффиксы (приставки)
>>suffixes - содержит суффиксы

Этож скока записей у тебя в таблице? Только в русском языке больше милиона словоформ. Я уж молчу про то сколько места это будет занимать :)
никто не говорил, во-первых, что язык русский, а во-вторых, что словоформ миллион - это специфический лингвистический анализатор нужен для решения конкретной задачи (не поисковый робот), просто для решения задач построения и анализа таблица имеет вот такой вид.
 

Falc

Новичок
kvf77
Ну если записей не много и места на диске не жалко вот тебе вариант:

slovo - содержит все слово целиком
onova - содержит кол-во байт основы слова
affixs - содержит аффиксы (приставки)
suffixes - содержит суффиксы

onova, affixs, suffixes - лучше вынести в справочники
 

kvf77

Red Devil
Автор оригинала: Falc
kvf77
Ну если записей не много и места на диске не жалко вот тебе вариант:

slovo - содержит все слово целиком
onova - содержит кол-во байт основы слова
affixs - содержит аффиксы (приставки)
suffixes - содержит суффиксы

onova, affixs, suffixes - лучше вынести в справочники
то есть ты предлагаешь мне хранить для всех вариантов целое слово? не хотелось бы :-(
а скажем мой второй вариант, когда в введенном слове мы ищем совпадение основы - то есть 'slovo' LIKE '%osnova%' , где slovo - это то, что ввел юзер, а osnova это поле в базе. то есть грубо в данном случае я могу найти в введенном основу, а потом по конкретной основе построить все варианты и в вариантах найти искомое. как мне реализовать это? запрос не обязательно должен быть один, можно там двумя запросами
 

Falc

Новичок
kvf77
В моем варианте все будет работать очень быстро.
В твоем варианте придется перебирать всю таблицу.
Если записей у тебя не много, то хранить все слово не дожно тебя напрягать, если записей много, то ты умерешь на своем LIKE или CONCAT
 

kvf77

Red Devil
Автор оригинала: Falc
kvf77
В моем варианте все будет работать очень быстро.
В твоем варианте придется перебирать всю таблицу.
Если записей у тебя не много, то хранить все слово не дожно тебя напрягать, если записей много, то ты умерешь на своем LIKE или CONCAT
а если по основам сделать fullindex?
 

Falc

Новичок
kvf77
>>а если по основам сделать fullindex?

Никакого эффекта не будет :)

-~{}~ 16.02.04 16:33:

kvf77
Кстати если хранить все слово, суффикс и преффикс, то основу можно не хранить :)
 
Сверху