Skip to content

Releases: loupe-php/loupe

0.3.0

21 Aug 15:35
83baaa7
Compare
Choose a tag to compare

Version 0.3.0 🥳

New features

  • Entirely new language detection algorithm. Supported languages for detection can now be configured:

    $configuration = Configuration::create()
        ->withLanguages(['en', 'fr', 'de'])
    ;
  • Documented Tokenizer internals

  • Massively improved indexing performance. Based on the MeiliSearch 32k movies database we started out at about 15min (~35 documents per second) on version 0.2. Version 0.3 completes in less than 4min (~140 documents per second) 😎

0.2.0

17 Aug 14:36
6afc033
Compare
Choose a tag to compare

Version 0.2.0 🥳

New features

  • Added support for deleting documents:

    $loupe->deleteDocuments();
    $loupe->deleteDocument();
  • Better performance and the docs now contain a section about what you can expect from Loupe.

  • Added support for the != operator

  • Added support for the IS NULL and IS NOT NULL operator

  • Added support for the IS EMPTY and IS NOT EMPTY operator

  • All operators now also work on multi value attributes. So you can search attributes like departments = ['foo', 'bar'] using =, !=, >= etc.

  • Added better logging. All SQL queries are now logged so you know exactly what's going on in Loupe.

  • You can now only search for a subset of the searchable attributes:

    $searchParameters = SearchParameters::create()
        ->withAttributesToSearchOn(['firstname'])
    ;
  • You can now ask Loupe for the ranking score which will be a _rankingScore attribute on every hit:

    $searchParameters = SearchParameters::create()
        ->withShowRankingScore(true)
    ;
  • Typo tolerance can now be disabled a lot easier:

    $configuration = Configuration::create()
        ->withTypoTolerance(TypoTolerance::disabled())
    ;
  • Improved code quality. Loupe is now tested against PHPStan Level 8

  • Reworked and documented document schema

Bugfixes

  • Fixed issue with negative search on multi value attributes
  • Fixed adding new attributes to an existing schema was not possible
  • Lots of fixes regarding filtering and sorting null values

New Contributors

Full Changelog: 0.1.0...0.2.0

0.1.0 - Initial version 🎉

01 Aug 16:14
Compare
Choose a tag to compare

An SQLite based, PHP-only fulltext search engine.

Loupe…

  • …only requires PHP and SQLite, you don't need anything else - no containers, no nothing
  • …is typo-tolerant (based on the State Set Index Algorithm and Levenshtein)
  • …supports phrase search using " quotation marks
  • …supports filtering (and ordering) on any attribute with any SQL-inspired filter statement
  • …supports filtering (and ordering) on Geo distance
  • …orders relevance based on a typical TF-IDF Cosine similarity algorithm
  • …auto-detects languages
  • …supports stemming
  • …is very easy to use
  • …is all-in-all just the easiest way to replace your good old SQL LIKE %...% queries with a way better search
    experience but without all the hassle of an additional service to manage. SQLite is everywhere and all it needs is
    your filesystem.