|
|
|
| Как организовать полнотекстовый поиск понятно. А как сделать, что бы искались однокоренные слова ? например, если ищу "программы", то в результатах были и "программа" и "прогруммы" и пр. ? | |
|
|
|
|
|
|
|
для: Mootch
(17.07.2006 в 00:46)
| | тебе наверно в регулярки... | |
|
|
|
|
|
|
|
для: Mootch
(17.07.2006 в 00:46)
| | ЭЭЭ брат это очень сложно надо быть очень хорошим знатоком русского чтоб делать этол, над этим корпорации бьются
Поправьте если я не прав | |
|
|
|
|
|
|
|
для: CrazyAngel
(17.07.2006 в 01:46)
| | а тебе в юмор )))
http://www.softtime.ru/forum/srchform.php?id_forum=1
корпарация ссофт тайм сделала такой поиск
Ключевое слово необязательно набирать полностью, т.е. если вы ищите "сотовый телефон" для
поиска этой комбинации можно ввести только часть слов "сотов телеф", это обеспечит поиск фраз "сотовым телефоном", "сотовыми телефонами" и т.п
|
| |
|
|
|
|
|
|
|
для: skor
(17.07.2006 в 01:49)
| | .. | |
|
|
|
|
|
|
|
для: skor
(17.07.2006 в 01:49)
| | Этого можно добиться если в полнотекстовом поиске указать * например
SELECT * FROM 'table' WHERE MATCH (field) AGAINST ('сотов*' IN BOOLEAN MODE)
|
Сложность возникнет в выделении корня, потому что вряд ли кто-то будет читать как надо искать. | |
|
|
|
|
|
|
|
для: Mootch
(17.07.2006 в 00:46)
| | Все уже придумано до нас | |
|
|
|
|
|
|
|
для: Loki
(17.07.2006 в 12:12)
| | Можно сделать намного проще, но и в тоже время с потерей качества. Обрезать в каждом слове какое то количество букв слева и справа, напрмер в слове "программист" обрезать по 3 буквы получится "грамм". Но сами понимаете что могут бытб проблеммы :) Но хотя особым знатоком русского не надо быть. Просто обрезать приставки типа: пре при под и т.д. и все что после суффикса. Список приставок и суффиксов можно найти в любом учебнике за 5-й класс :) | |
|
|
|
|
|
|
|
для: Евгений Петров
(17.07.2006 в 12:28)
| | Класс по ссылке именно этим и занимается:) | |
|
|
|
|
|
|
|
для: Loki
(17.07.2006 в 12:54)
| | класс!!! спасибо :) | |
|
|
|
|
|
|
|
для: Mootch
(17.07.2006 в 00:46)
| | Значит выделаям корень стеммером, а потом делаем
SELECT * FROM 'table' WHERE MATCH (field) AGAINST ('сотов*' IN BOOLEAN MODE)
|
? | |
|
|
|