對於使用MySQL數據庫的Cakephp應用程序進行基於文本的搜索的哪個實現是「最好的」?CakePHP搜索MySQL
7
A
回答
0
我總是傾向於做一個「搜索」的模式,「SearchesController」和意見,然後寫我自己的自定義腳本中使用搜索我的數據庫,
$this->Search->query("SELECT * FROM table WHERE condition 1 AND condition 2");
,我不知道有任何「最佳」的搜索,但可能有組件和插件會爲你做這樣的事情。最好先檢查麪包店http://bakery.cakephp.org/
1
斯芬克斯是最強大的SQL文本的搜索引擎之一 - http://sphinxsearch.com/
有在麪包店寫了一個CakePHP的行爲: http://bakery.cakephp.org/articles/view/sphinx-behavior
要注意的一點是, Sphinx有幾個組件,有些需要在你的機器上作爲守護進程運行(類似於運行apache或mysql進程)。此外,您需要每隔一段時間對數據庫進行「索引」,以保持結果的新鮮度。起初設置起來可能令人望而生畏,但如果您有大量記錄和大量文本搜索,絕對值得您付出努力。
7
我是如何實現的帖子搜索:
搜索表單代碼:
<?php
echo $form->create('Deal',array('action' => 'search'));
echo $form->input('Deal.search');
echo $form->end('Search');
?>
在Controller中,把下面的查詢功能:
function search()
{
if (!empty($this->data)) {
$searchstr = $this->data['Post']['search'];
$this->set('searchstring', $this->data['Post']['search']);
$conditions = array(
'conditions' => array(
'or' => array(
"Post.title LIKE" => "%$searchstr%",
"Post.description LIKE" => "%$searchstr%"
)
)
);
$this->set('posts', $this->Post->find('all', $conditions));
}
}
視圖代碼:
<?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; ?>
可能不是最好的/優雅的,但適用於簡單的查詢。
相關問題
- 1. 搜索使用CakePHP和MySQL
- 2. CakePHP的CakePHP搜索插件
- 3. 使用CakePHP搜索
- 4. 搜索在CakePHP 1.2
- 5. CakePHP搜索插件
- 6. cakephp的搜索功能
- 7. CakePHP過濾器搜索
- 8. CakePHP在首頁做搜索
- 9. CakePHP的自定義搜索
- 10. CakePHP的多個或搜索
- 11. CakePHP可搜索標籤
- 12. 搜索代碼優化 - CakePHP
- 13. 在cakephp中搜索緩存
- 14. 分頁+在cakephp中搜索
- 15. CakePHP的搜索功能
- 16. autocomplete搜索表單cakephp
- 17. CakePHP的和Ajax搜索
- 18. cakephp搜索數據庫
- 19. cakePHP - 記住搜索FIlters
- 20. CakePHP 2.1 + AJAX搜索/ JsHelper
- 21. MySQL索引搜索
- 22. Mysql搜索
- 23. MySQL的搜索
- 24. MySQL搜索
- 25. Mysql的搜索
- 26. 搜索在MySQL
- 27. 搜索在MySQL
- 28. MySQL的搜索
- 29. MySQL FULLTEXT搜索
- 30. 搜索在MySQL
除非您有複雜的搜索需求,否則這是最好的選擇。 – 2012-06-10 22:20:15