использование индексов в таблицах для поиска

Ginger

Guest
использование индексов в таблицах для поиска

est baza s uzhe sushestvujushimi tablicami
v odnoj xraniatsia unikalnyj nomer riada, nazvanie statji, daty
v drugoj nomer, kotoryj sootvetstvuet unikalnomu nomeru v pervoj tablice i text - text samoj statji.

mne nuzhno sdelat poisk po statjam. kak eto proshe i nadiozhnej vsego sdelat`?
Dlia chego nuzhny index`y v tablicax? v mane skazano o ix sushestvovanii, govoritsia o poiske, no ja ne ponimaju kak imi polzovatsia dlia poiska? i nado li?
 

asm

Пофигист
http://detail.phpclub.ru/download/okt2004/phpi7_2004.pdf
помоему тут про поиск было неплохо расписано :)
 

Wicked

Новичок
проще всего - [sql]select * from `texts` where `text` like '%$query%'[/sql] :)

А что понимается под надежностью поиска? :)
 

Ginger

Guest
Wicked

ne.. etot select-like - ja i tak sdelala =) eto slishkom primitivno...

pod nadiozhnostju podrazumevaju, chtob on mne bazu ne tormozil =) v baze bolee 1500 statej =)

asm
dok prochital i poniala, chto vo-pervyx - objasneno ne poniatno (esli ja pervyj raz poisk pishu?), vo-vtoryx - tak predlozhen celyj search engine =), a mne vdego lish poisk po sajtu.
 

asm

Пофигист
Ginger
Если не понятно задавай вопросы.
Что в твоем понимании поиск по сайту?
Чем пример в доках не подходит?
 

Wicked

Новичок
Originally posted by Ginger
ne.. etot select-like - ja i tak sdelala =) eto slishkom primitivno...
Народ еще не разучился шутки понимать :)

Originally posted by Ginger
pod nadiozhnostju podrazumevaju, chtob on mne bazu ne tormozil =) v baze bolee 1500 statej =)
Это скорее называется производительностью. Кстати, общий размер текста более важен, чем их количество.

Originally posted by Ginger
dok prochital i poniala, chto vo-pervyx - objasneno ne poniatno (esli ja pervyj raz poisk pishu?), vo-vtoryx - tak predlozhen celyj search engine =), a mne vdego lish poisk po sajtu.
Ну если ты хочешь нормальный поиск, то без full-text'а наверное не обойтись.

Можешь в принципе посмотреть на
1) http://phpclub.ru/talk/showthread.php?s=&threadid=60549, но оно еще довольно глюкавое, т.к. отлаживал я его только на своей машине в конкретных условиях. А еще оно (пока что)недокументировано и разбираться придется самой :) Правда там есть пример.
2) http://risearch.org/eng/risearch_php/index.html, которому даже база данных не нужна :)
 

Ginger

Guest
asm

da mne tam vobshe ne poniatno..
vot tam ispolzuetsia pole index, tak ja v pervom poste eshio sprashivala pro nego - ne znaju ja nafiga on i chto delat.

potom sozdanie samix tablic - u menia uzhe est tablicy. mne nado po nim iskat.

potom eta orfagrafija... da ne nuzhna ona... nu xochu chtob okonchanie slova tozhe uchityvalos, naprimer:
slovo - poiska
nado pervoe vydat tam gde "poiska", no tak zhe "poisku", "poiske" i t.p.

mne nuzhno poproshe objasnit =)) please

-~{}~ 12.01.05 19:59:

Wicked

nu objom... mozhet byt bolshim.. dlia texta ja otvela MEDIUMTEXT, no dumaju polnostju ego predely ne zapolnit, no i bolshe prosto TEXT.

risearch ja ispolzovala, no tam html stranicy byli, a tut mne nuzhen poisk po uzhe sushestvujushej baze =)

tvoj poisk bojus probovat, esli on syroj =) ja ne sebe na sajt search delaju, eksperementirovat ne stoit =)
 

Wicked

Новичок
Risearch можно переделать, чтобы он и внутринности базы индексировал... тока писать довольно много придется - осилишь ли? :)
 

Ginger

Guest
Wicked
ne znaju osiliu ili net =) ne probovala...

samaja bolshaja prichina po kotoroj ja ne xochu brat chej-to skript i peredelyva - eto to chto v chjej-to pisanine nado budet razbiratsia..

ja tak zhe xotela dvizhok dlia sajta peredelat, posmotrela parochku, pliunula i sama napisala =) bystrej vyshlo =)
 

Wicked

Новичок
Кстати, моя разработка как раз оптимальна, для индексирования данных из бд - для того и делалась. В принципе можешь рассказать про конфигурацию сервера. Если совпадет с моей, то при уточнении еще некоторых деталей можно будет попробовать поставить :)
 

Ginger

Guest
Wicked
nu davaj poprobuem,
tolko ty napishi chto nado iz infy po serveru v privat, ok?
 

asm

Пофигист
Ginger
Кратко смысл:
Создаешь таблицу где будут хранится слова и ссылки на статью. Статью разбиваешь на слова и заганяешь в таблицу. Это называется индексирование. Поиск делаешь по этой таблице.
Для учета окончаний в поиске и используется ISPEL.

-~{}~ 12.01.05 19:28:

Wicked
Кстати пытался протестить твой пример. Слег на установке сервак. Буду завтра еще пытаться пускать.
 

Ginger

Guest
asm

t.e. dlia kazhdogo slova svoj row v tablice? a esli slova povtariajutsia? tam tolko neskolko 100 raz budet slovo Windows!
 

Wicked

Новичок
Originally posted by asm
Wicked
Кстати пытался протестить твой пример. Слег на установке сервак. Буду завтра еще пытаться пускать.
install.php - это установка Ispell. На моем p3-933/256/120gb оно занимает около получаса, если не ошибаюсь. Индексация 100-мбайтового текста занимает примерно то же время. Может это только видимость, что "слег" ?
У меня как раз исходя из этого mysql запущен в режиме standalone с пониженным приоритетом :)

Моя система:
Windows XP SP1
Apache 2.0.52
PHP 4.3.7 (afair)
MySQL 4.0.20 или 4.0.16, точно тоже не помню :)
 

asm

Пофигист
Автор оригинала: Ginger
asm

t.e. dlia kazhdogo slova svoj row v tablice? a esli slova povtariajutsia? tam tolko neskolko 100 raz budet slovo Windows!
Добавь поле вес и куда пиши частоту слова.
А лучше перечитай еще раз ссылку что я дал вначале

-~{}~ 12.01.05 20:12:

Wicked
Да скорее всего так и было.
У меня на работе комп вообще дохлый. Пришлось убивать процессы. Буду ставить дома. :)
 
Сверху