Full text search: Difference between revisions

From Rixort Wiki
Jump to navigation Jump to search
(Created page with "Full text searching in web applications means searching documents which have content and some metadata (usually at least a title). Examples include: * Blog posts * RSS feed items")
 
 
(3 intermediate revisions by the same user not shown)
Line 3: Line 3:
* Blog posts
* Blog posts
* RSS feed items
* RSS feed items
Full text searching eliminates stop words (e.g. 'and', 'the') and manages word stemming (e.g. 'jump' matches 'jump', 'jumping', 'jumped'). However it does not manage misspellings or 'nearby' words (e.g. 'jmup' will not match 'jump') - for that fuzzy matching is needed. It is possible to do full text searching with fuzzy matching, however this is not always supported 'out of the box'.
== MySQL ==
MySQL and MariaDB have the MATCH operator, which can perform basic full text searches.
Although older versions of MySQL only supported full text indexes on MyISAM tables, this is no longer the case and InnoDB tables can (and should!) be used.
== PostgreSQL ==
* [https://leandronsp.com/a-powerful-full-text-search-in-postgresql-in-less-than-20-lines A powerful full-text search in PostgreSQL in less than 20 lines]
* [https://compose.com/articles/mastering-postgresql-tools-full-text-search-and-phrase-search/ Mastering PostgreSQL Tools: Full-Text Search and Phrase Search]
== Apache Solr ==

Latest revision as of 11:01, 6 January 2022

Full text searching in web applications means searching documents which have content and some metadata (usually at least a title). Examples include:

  • Blog posts
  • RSS feed items

Full text searching eliminates stop words (e.g. 'and', 'the') and manages word stemming (e.g. 'jump' matches 'jump', 'jumping', 'jumped'). However it does not manage misspellings or 'nearby' words (e.g. 'jmup' will not match 'jump') - for that fuzzy matching is needed. It is possible to do full text searching with fuzzy matching, however this is not always supported 'out of the box'.

MySQL

MySQL and MariaDB have the MATCH operator, which can perform basic full text searches.

Although older versions of MySQL only supported full text indexes on MyISAM tables, this is no longer the case and InnoDB tables can (and should!) be used.

PostgreSQL

Apache Solr