Wie vergleichen sich die Volltextsuchsysteme von PostgreSQL und MySQL? Ist es eindeutig besser als die? Auf welche Weise sind sie anders?Die Volltextsuche von PostgreSQL und MySQL
Antwort
Ich bin leider nicht sehr gut mit PostgreSQL vertraut, aber wenn Sie die FULL TEXT-Suche in MySQL verwenden, sind Sie sofort mit MyISAM verbunden. Wenn Sie InnoDB verwenden möchten (und wenn die ACID-Kompatibilität Ihnen etwas bedeutet, sollten Sie InnoDB verwenden), müssen Sie andere Lösungen verwenden.
Zwei beliebte Alternativen, die oft ausgerollt werden, sind Lucene (ein Apache-Projekt mit einem Zend-Modul, wenn Sie PHP verwenden) und Sphinx.
Ich denke, Sie können Sphinx mit MySQL und Postgres verwenden. ist hier an article zu erklären, wie Sphinx mit MySQL verwenden (Sie es als Plugin hinzufügen)
Sphinx funktioniert nur mit MySQL. Das heißt, es unterstützt nur das Abrufen von Daten von MySQL. – Timmmm
PostgreSQL 8.3 wird in Volltextsuche gebaut, die eine integrierte Version des „tsearch2“
Hier sind die Dokumentation: http://www.postgresql.org/docs/8.3/static/textsearch.html
Und das Beispiel aus der Dokumentation:
SELECT title
FROM pgweb
WHERE to_tsvector(body) @@ to_tsquery('friend');
Wo Körper ein Textfeld ist. Sie können speziell für diese Sucharten indizieren und sie können natürlich komplexer werden als dieses einfache Beispiel. Die Funktionalität ist sehr solide und es lohnt sich, in sie einzutauchen, während Sie Ihre Entscheidung treffen.
Viel Glück.
Out of the Box ist die Volltextsuche ziemlich langsam, stellen Sie sicher, gründlich Abfrage-Optimierungsstrategien auf diesem, weil sonst Ihre UX schrecklich wie 28,8k Modems sein wird. –
Wenn Sie Hibernate als ORM verwenden, empfehle ich dringend, die Hibernate-Suche zu verwenden. Es baut auf Lucene, also ist es super schnell.
Karl
Ich habe ziemlich gute Erfahrung mit postgresql/tsearch2 habe, zumal es in die Standard-Distribution gerollt wurde (vor Version 8.0 - denke ich - es war eine optionale contrib-Funktion und Modernisierung beteiligt tsearch2 ein bisschen Arbeit).
Wenn ich mich richtig erinnere, müssen Sie einige Eigenschaften (Fuzzy Matching, Wörterbuch Zeug) vor dem Start festlegen, während auf anderen Datenbanken diese Dinge flexibel durch die Volltextsyntax selbst ausgesetzt sind (ich denke Oracle Text, hier, aber Ich weiß, dass das für deine Frage nicht relevant ist).
Mysql Volltextsuche ist sehr langsam. Daten können nicht mehr als 1 Million (mehrere zehn Sekunden pro Abfrage) verarbeitet werden.
Ich habe keine Erfahrung mit Postgresql Volltextsuche.
Ich habe sphinxsearch verwendet. Es ist sehr schnell und einfach zu bedienen. Aber es ist nicht so mächtig. Ich meine die Suchfunktionalität. Zum Beispiel unterstützt es nicht wie 'abc?', Wo '?' steht für jeden Charakter.
Ich kenne auch Lucene. Es ist mächtig, aber es ist schwer zu lernen.
- 1. PostgreSQL Volltextsuche und Trigramm Confusion
- 2. PDO und MySQL Volltextsuche
- 3. MYSQL Volltextsuche und LIKE
- 4. MySQL Volltextsuche und SOUNDEX
- 5. Postgresql Volltextsuche Tokenizer
- 6. Volltextsuche und Hervorhebung von PHP und MySQL?
- 7. MySQL Volltextsuche?
- 8. Standardeinstellung für die Volltextsuche mysql
- 9. Mysql Volltextsuche mit und gegen
- 10. Postgresql Volltextsuche Teil der Wörter
- 11. Wie funktioniert die umgekehrte Volltextsuche in MySQL?
- 12. Wordpress verwendet MySQL Volltextsuche?
- 13. MySQL Volltextsuche mit Wortgrenzen
- 14. Django MySQL Volltextsuche
- 15. mySQL Volltextsuche Probleme
- 16. MySQL Alter Volltextsuche Spalten
- 17. Volltextsuche in MySQL und PHP funktioniert nicht
- 18. MySQL Volltextsuche und Ergebnis nicht ziehen Ergebnisse
- 19. Präfix und Suffix Wildcards in Mysql Volltextsuche
- 20. Wie implementiere ich die Volltextsuche in Chinesisch auf PostgreSQL?
- 21. vorschlagen, wie Google mit Postgresql Trigramme und Volltextsuche
- 22. Mehrere Synonymwörterbuch Übereinstimmungen in PostgreSQL Volltextsuche
- 23. MySQL Volltextsuche Plural/Singular Form von Worten
- 24. Wie konfigurieren Sie PostgreSQL Tokenization für die Volltextsuche?
- 25. PostgreSQL-Volltextsuche vs. NHibernate.Search via Lucene.Net
- 26. mysql Volltextsuche mit null Spalten
- 27. PostgreSQL Volltextsuche: Cant erhält eine teilweise Übereinstimmung von tsvector
- 28. MySQL Volltextsuche über mehrere Tabellen
- 29. MySQL Volltextsuche Booleschen Modus Verwirrung
- 30. MySQL Volltextsuche ideografisch (asiatische) Zeichen
Für alle, die dies jetzt lesen, unterstützt InnoDB ab MySQL 5.6 die Volltextsuche. – YeB