Comment les systèmes de recherche en texte intégral de PostgreSQL et MySQL se comparent-ils? Est-ce que tout est nettement meilleur que l'oder? En quoi sont-ils différents?Recherche plein texte de PostgreSQL et de MySQL
Répondre
Malheureusement, je ne connais pas très bien PostgreSQL, mais si vous utilisez la recherche FULL TEXT dans MySQL, vous êtes immédiatement lié à MyISAM. Si vous voulez utiliser InnoDB (et si la conformité ACID signifie quelque chose pour vous, vous devriez utiliser InnoDB) vous êtes coincé en utilisant d'autres solutions.
Deux alternatives populaires qui sont souvent lancées sont Lucene (un projet apache avec un module Zend si vous utilisez PHP) et Sphinx.
Je pense que vous pouvez utiliser Sphinx avec MySQL et Postgres. est ici an article pour expliquer comment utiliser Sphinx avec MySQL (vous pouvez l'ajouter en tant que plug-in)
Sphinx ne fonctionne qu'avec MySQL. Autrement dit, il ne supporte que l'extraction de données à partir de MySQL. – Timmmm
PostgreSQL 8.3 a construit à la recherche en texte intégral qui est une version intégrée du « tsearch2 »
Voici la documentation: http://www.postgresql.org/docs/8.3/static/textsearch.html
Et l'exemple de la documentation:
SELECT title
FROM pgweb
WHERE to_tsvector(body) @@ to_tsquery('friend');
où le corps est un champ de texte. Vous pouvez indexer spécifiquement pour ces types de recherches et, bien sûr, ils peuvent devenir plus complexes que cet exemple simple. La fonctionnalité est très solide et mérite d'être plongée dans votre décision.
Bonne chance.
En dehors de la boîte la recherche de texte intégral est assez lente, assurez-vous de bien étudier les stratégies d'optimisation des requêtes sur celui-ci, car sinon votre UX sera horrible comme modems 28.8k. –
Si vous utilisez Hibernate comme ORM, je recommande fortement d'utiliser la recherche Hibernate. Sa construction au dessus de Lucene est donc super rapide.
Karl
J'ai eu assez bonne expérience avec postgresql/tsearch2, en particulier depuis qu'il a été roulé dans la distribution standard (avant la version 8.0 - je pense - c'est une caractéristique contrib en option, et la mise à niveau à tsearch2 impliqués un peu de travail). Si je me souviens bien, vous devez définir certaines propriétés (correspondance floue, dictionnaire) avant le démarrage, alors que sur d'autres bases de données ces choses sont exposées de manière flexible à travers la syntaxe fulltext (je pense à Oracle Text, ici, Je sais que ce n'est pas pertinent pour votre question).
La recherche en texte intégral Mysql est très lente. Il ne peut pas gérer plus de 1 million de données (plusieurs dizaines de secondes par requête).
Je n'ai aucune expérience de la recherche textuelle postgresql.
J'ai utilisé la sphinxsearch. C'est très rapide et facile à utiliser. Mais ce n'est pas si puissant. Je veux dire la fonctionnalité de recherche. Par exemple, il ne supporte pas comme 'abc?', Où '?' représente n'importe quel personnage.
Je connais aussi lucene. C'est puissant, mais c'est difficile à apprendre.
- 1. MySQL Recherche plein texte et score pas de résultat
- 2. Recherche plein texte MySQL sur plusieurs tables
- 3. Recherche plein texte CONTAINSTABLE
- 4. Recherche plein texte SQL
- 5. recherche plein texte vista
- 6. postgres recherche plein texte
- 7. Recherche plein texte avec Firebird et Delphi
- 8. Recherche plein texte dans LINQ
- 9. recherche plein texte erreur de procédure stockée
- 10. recherche plein texte pour l'ensemble de données
- 11. Recherche plein texte MySQL pour les entités html
- 12. mysql recherche plein texte avec des colonnes nulles
- 13. recherche plein texte et mise en évidence par PHP et MySQL?
- 14. Recherche plein texte sur une table
- 15. Recherche plein texte SQL avec des colonnes de clé étrangères
- 16. Recherche de texte intégral PostgreSQL vs NHibernate.Search via Lucene.Net
- 17. Recherche plein texte MySQL pour les mots avec trois lettres ou moins
- 18. MySQL recherche plein texte avec le mot court comme mot-clé ne renvoie aucun résultat
- 19. Requête SQLite - Besoin d'aide pour la recherche plein texte
- 20. Qu'est-ce que la recherche plein texte vs LIKE
- 21. Comment faire une recherche plein texte dans Cocoa?
- 22. SQL Server Recherche plein texte Rechercher des caractères d'échappement?
- 23. Recherche plein texte pour plusieurs tables dans SQl Server 2005
- 24. SQl La recherche plein texte ne fonctionne pas?
- 25. recherche plein texte en utilisant sql server 2008
- 26. Sql Server recherche plein texte - Obtenir des occurrences de mot/emplacement dans le texte?
- 27. Passer de MySQL à PostgreSQL - trucs et astuces?
- 28. Wordpress utilise la recherche de texte intégral MySQL?
- 29. Comment utiliser Doctrine_RawSql pour une recherche plein texte et le tri par pertinence
- 30. Conversion de MySQL select en PostgreSQL
Pour quiconque lit ceci maintenant, à partir de MySQL 5.6, InnoDB supporte la recherche fulltext. – YeB