PHP: Как использовать MySQL полнотекстовый поиск и обрабатывать результаты полнотекстового поиска - PullRequest
1 голос
/ 08 марта 2010

Я попытался использовать полнотекстовый поиск mysql в своей внутренней сети. Я хотел использовать его для поиска в нескольких таблицах и получения независимых результатов в зависимости от таблиц на странице результатов.

Это то, что я сделал для поиска.

$query = "
        SELECT *
        FROM testtable t1, testtable2 t2, testtable3 t3
        WHERE match(t1.firstName, t1.lastName, t1.details) against(' ".$value."')
        or match(t2.others, t2.information, t2.details) against(' ".$value."')
        or match(t3.other, t2.info, t2.details) against(' ".$value."')
        ";

$result = mysql_query($query)or die('query error'.mysql_error());

while($row = mysql_fetch_assoc($result)){
    echo $row['firstName'];
    echo $row['lastName'];
    echo $row['details'].'<br />';
}

Есть ли у вас идеи по оптимизации запроса и форматированию вывода результатов поиска?

1 Ответ

0 голосов
/ 08 марта 2010

Нельзя создать fulltext index на нескольких таблицах. Поэтому я считаю fulltext index на каждой таблице и предложения or (как и вы) достаточно хорошими.

Однако вы можете создать представление (на основе трех таблиц) и создать полнотекстовый индекс для этого представления.

РЕДАКТИРОВАТЬ: К сожалению, вы не можете создать индекс для представления в Mysql

...