All Projects → piotrl → understand-full-text-search

piotrl / understand-full-text-search

Licence: other
📖 Support examples for learning full-text search with use of PostgreSQL. Ready to run.

Projects that are alternatives of or similar to understand-full-text-search

Walrus
Lightweight Python utilities for working with Redis
Stars: ✭ 846 (+763.27%)
Mutual labels:  full-text-search
Radon
RadonDB is an open source, cloud-native MySQL database for building global, scalable cloud services
Stars: ✭ 1,584 (+1516.33%)
Mutual labels:  full-text-search
Tntsearch
A fully featured full text search engine written in PHP
Stars: ✭ 2,693 (+2647.96%)
Mutual labels:  full-text-search
Lunr.js
A bit like Solr, but much smaller and not as bright
Stars: ✭ 7,846 (+7906.12%)
Mutual labels:  full-text-search
Ndx
🔍 Full text indexing and searching library
Stars: ✭ 94 (-4.08%)
Mutual labels:  full-text-search
Riddle
Ruby Client API for Sphinx
Stars: ✭ 139 (+41.84%)
Mutual labels:  full-text-search
Groonga
An embeddable fulltext search engine. Groonga is the successor project to Senna.
Stars: ✭ 617 (+529.59%)
Mutual labels:  full-text-search
Library-Spring
The library web application where you can borrow books. It's Spring MVC and Hibernate project.
Stars: ✭ 73 (-25.51%)
Mutual labels:  full-text-search
Elman
Full text searching Linux man pages with Elasticsearch 🐧
Stars: ✭ 103 (+5.1%)
Mutual labels:  full-text-search
Recoll Webui
web interface for recoll desktop search
Stars: ✭ 204 (+108.16%)
Mutual labels:  full-text-search
Lifti
A lightweight full text indexer for .NET
Stars: ✭ 61 (-37.76%)
Mutual labels:  full-text-search
Ftserver Cs
Lightweight iBoxDB Full Text Search Server for C#
Stars: ✭ 81 (-17.35%)
Mutual labels:  full-text-search
Laravel Scout Postgres
PostgreSQL Full Text Search Engine for Laravel Scout
Stars: ✭ 140 (+42.86%)
Mutual labels:  full-text-search
Flexsearch
Next-Generation full text search library for Browser and Node.js
Stars: ✭ 8,108 (+8173.47%)
Mutual labels:  full-text-search
Scout
RESTful search server written in Python, powered by SQLite.
Stars: ✭ 213 (+117.35%)
Mutual labels:  full-text-search
Raftman
A syslog server with integrated full text search via a JSON API and Web UI
Stars: ✭ 26 (-73.47%)
Mutual labels:  full-text-search
Srchx
A standalone lightweight full-text search engine built on top of blevesearch and Go with multiple storage (scorch, boltdb, leveldb, badger)
Stars: ✭ 118 (+20.41%)
Mutual labels:  full-text-search
bulksearch
Lightweight and read-write optimized full text search library.
Stars: ✭ 108 (+10.2%)
Mutual labels:  full-text-search
Ftserver
Lightweight Embeddable iBoxDB Full Text Search Server for Java
Stars: ✭ 219 (+123.47%)
Mutual labels:  full-text-search
Everywhere
🔧 A tool can really search everywhere for you.
Stars: ✭ 147 (+50%)
Mutual labels:  full-text-search

Understand full-text search with Postgres

forthebadge

Piotr Lewandowski, @constjs


Table of content

  1. Create demo DB tables
  2. Stemmer — Building documents
  3. Search — Building queries
  4. Performance practises
  5. Setting weight and ranking
  6. Improve search quality
  7. Further reading

When full-text search?

  • Search by content created by people (not programmers)
  • Divide more and less important fragments of document
  • Searching database dumps from WikiLeaks

Why just not RegEx?

  • RegEx is good to find only simple, finite languages

  • Helpless for grammar

  • Slow (Can be improved with Trigram Indexes)

  • Lots of pitfalls even for simple languages like HTML

  • Complicated to maintain, e.g.

    ^(?=[A-Z0-9][A-Z0-9@._%+-]{5,253}$)[A-Z0-9._%+-]{1,64}@(?:(?=[A-Z0-9-]{1,63}\.)[A-Z0-9]+(?:-[A-Z0-9]+)*\.){1,8}[A-Z]{2,63}$
    

Why Postgres?

  • Pretty rich in features
  • Flexible and extensible
  • Maybe you already have it
    • Low entry point
    • If your technology stack is already over-engineered
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].