Cakephp搜索MySQL

Cakephp搜索MySQL,php,cakephp,Php,Cakephp,对于使用MySQL数据库的Cakephp应用程序,哪种基于文本的搜索实现是“最好的”?我总是倾向于创建一个“搜索”模型、“搜索控制器”和视图,然后编写自己的自定义脚本,使用 $this->Search->query("SELECT * FROM table WHERE condition 1 AND condition 2"); 我不知道有什么“最佳”搜索,但可能有一些组件和插件可以为您做类似的事情。最好查看面包店Sphinx是最强大的SQL文本搜索引擎之一- 在面包店,有一种Ca

对于使用MySQL数据库的Cakephp应用程序,哪种基于文本的搜索实现是“最好的”?

我总是倾向于创建一个“搜索”模型、“搜索控制器”和视图,然后编写自己的自定义脚本,使用

$this->Search->query("SELECT * FROM table WHERE condition 1 AND condition 2");

我不知道有什么“最佳”搜索,但可能有一些组件和插件可以为您做类似的事情。最好查看面包店

Sphinx是最强大的SQL文本搜索引擎之一-

在面包店,有一种CakePHP行为被记录下来:


需要注意的是Sphinx有几个组件,有些组件需要在您的机器上作为守护进程运行(类似于让apache或mysql进程运行)。此外,您还需要每隔一段时间对数据库进行“索引”,以保持结果的新鲜度。刚开始设置可能会让人望而生畏,但如果你有大量记录和大块文本可供搜索,则绝对值得付出努力。

我是如何实现搜索帖子的:

搜索表单代码:

<?php
echo $form->create('Deal',array('action' => 'search'));
echo $form->input('Deal.search');
echo $form->end('Search');
?> 
查看代码:

<?php foreach ($posts as $post): ?>
    <tr>
        <td><?php echo $post['Post']['id']; ?></td>
        <td>
            <?php echo
$html->link($post['Post']['title'],'/posts/view/'.$post['Post']['id']);?>
                </td>
        <td><?php echo $post['Post']['created']; ?></td>
    </tr>
<?php endforeach; ?> 


可能不是最好的/优雅的,但对于简单的查询效果很好。

除非您有复杂的搜索需求,否则这是最好的选择。
<?php foreach ($posts as $post): ?>
    <tr>
        <td><?php echo $post['Post']['id']; ?></td>
        <td>
            <?php echo
$html->link($post['Post']['title'],'/posts/view/'.$post['Post']['id']);?>
                </td>
        <td><?php echo $post['Post']['created']; ?></td>
    </tr>
<?php endforeach; ?>