Quale implementazione di una ricerca basata su testo per un'applicazione Cakephp che utilizza un database MySQL è "migliore"?Cakephp Cerca MySQL
risposta
ho sempre avuto la tendenza a fare un 'Cerca' modello 'SearchesController' e vista, quindi scrivere il mio script personalizzato per cercare il mio database utilizzando,
$this->Search->query("SELECT * FROM table WHERE condition 1 AND condition 2");
Non sono a conoscenza di alcun "migliore" di ricerca , ma potrebbero esserci componenti e plugin che faranno qualcosa del genere per te. Meglio controllare il Bakery http://bakery.cakephp.org/
Sfinge è uno dei più potenti motori di ricerca di testo SQL - http://sphinxsearch.com/
C'è un comportamento CakePHP redatto al panificio: http://bakery.cakephp.org/articles/view/sphinx-behavior
La cosa da notare è che Sphinx ha diversi componenti e alcuni devono essere eseguiti come demoni sul tuo computer (in modo simile ai processi Apache o MySQL in esecuzione). Inoltre è necessario "indicizzare" il proprio database ogni tanto per mantenere i risultati freschi. All'inizio può essere scoraggiante, ma sicuramente vale la pena se si hanno molti record e grossi pezzi di testo da cercare.
Come ho implementato Cerca Messaggi:
Il codice modulo di ricerca:
<?php
echo $form->create('Deal',array('action' => 'search'));
echo $form->input('Deal.search');
echo $form->end('Search');
?>
Nel Controller, ha messo la seguente funzione di ricerca:
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));
}
}
Il codice della vista:
<?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; ?>
Potrebbe non essere il migliore/elegante, ma funziona bene per le query semplici.
- 1. MySQL - Cerca script PHP
- 2. mysql cerca segmento di nome tabella
- 3. CakePHP: impossibile accedere al database MySQL
- 4. Come creare query MySQL personalizzate in CakePHP?
- 5. Applicazione CakePHP/CakePHP 2.4
- 6. Cerca in tutte le tabelle utilizzando MySQL Workbench
- 7. Cerca grandi quantità di testo costantemente aggiornato in mysql
- 8. Cerca il valore nella colonna BLOB in MySQL
- 9. Cerca un'intera tabella in mySQL per una stringa
- 10. MySQL - Cerca in un campo che ignora gli spazi
- 11. Minimo e massimo di un campo in cakephp e mysql
- 12. Filtri + Cerca con Isotopi Breaks Cerca?
- 13. Accesso alla sessione cakephp (auth) dall'esterno cakephp
- 14. cakePHP security
- 15. Cakephp Security
- 16. Cakephp JsonView
- 17. Mostra una favicon PNG in CakePHP
- 18. Salvataggio dati spaziali in CakePHP
- 19. CakePHP multipla Selezionare "selezionato" non sta funzionando
- 20. Cakephp Come modificare la connessione al database
- 21. cakephp comet usleep blocca tutto
- 22. Rimuovi l'opzione 'cerca' ma lascia l'opzione 'cerca colonne'
- 23. CakePHP: Trova dove campo non è nullo
- 24. String.IsNullOrEmpty() Cerca spazio
- 25. C# Cerca dizionario
- 26. Cerca file in Xcode
- 27. Cerca "is_comparable" typetrait
- 28. testo Cerca in Linq
- 29. Posizione Cerca risultati overlay
- 30. Expressjs: Cerca query api
A meno che non si abbiano esigenze di ricerca complesse, questa è la soluzione migliore da seguire. –