Релевантный поиск и как с ним бороться

kyzma

Новичок
Релевантный поиск и как с ним бороться

Как сделать релевантный поиск? Подкинте пару идей пожалуста.
 

kyzma

Новичок
Спасиба за ссылку, но MySQL очень хорошо докментирован в этом вопросе, а как это сделать на Postgres?
 

Steamroller

Новичок
Тебе по базе или по сайту искать?
По базе - extension'ы есть для postgre, напр. http://www.sai.msu.su/~megera/postgres/gist/tsearch/V2/
Отзывов правда не слышал, насколько он держит объем.
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Автор оригинала: Steamroller
Отзывов правда не слышал, насколько он держит объем.
Насколько я понял ответ Олега, когда ему задавал вопрос по поводу tsearch2, весь индекс должен влезать в память. Если он будет читаться с диска, дело труба.
 

Steamroller

Новичок
Sad Spirit, а не в курсе, какой там примерно объем индекса по отношению к объему текста?
 

kyzma

Новичок
А как вот на PHP реализовать поиск по базе Postgres с условиями (по всем полям, по одному полю)?
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Автор оригинала: Steamroller
Sad Spirit, а не в курсе, какой там примерно объем индекса по отношению к объему текста?
Сложно сказать, лучше потестировать: очень многое зависит как от самих текстов, так и от настройки tsearch.

Автор оригинала: kyzma
А как вот на PHP реализовать поиск по базе Postgres с условиями (по всем полям, по одному полю)?
Вопрос непонятен. Ответ зависит от того, какое средство ты собираешься использовать для поиска.
 

kyzma

Новичок
echo "<H1>Поиск по базе: ".pg_dbname()."</H1>";
?>

<FORM action=search.php method="POST">
<CENTER>
<INPUT TYPE="TEXT" name="q" size="60"> <INPUT TYPE="SUBMIT" name="search" value="Искать">
<BR>
Где искать:
<SELECT name="method">
<OPTION selected value="all">Везде</OPTION>
<OPTION value="name">По названию</OPTION>
<OPTION value="type">Типу</OPTION>
<OPTION value="num">Номеру</OPTION>
</SELECT>

Как искать:
<SELECT name="acc">
<OPTION selected value="all">Все</OPTION>
<OPTION value="true">Открытый доступ</OPTION>
<OPTION value="false">Закрытый доступ</OPTION>
</SELECT>
</CENTER>
</FORM>


Ищу через запрос, а потом передаю в переменную:
PHP:
case 'all':{
                          $res1 = pg_query($conn, "SELECT * FROM lib WHERE
                                                            description LIKE '%$q%'
                                                        OR  name      LIKE '%$q%'
                                                        OR  num          LIKE '%$q%'
...
                                                        ") or die('Error!'); 
...
Хочу использовать своё средство, но как его сделать, кто бы опытом поделился!
 
Сверху