Releases: loupe-php/loupe
0.3.0
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
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
andIS NOT NULL
operator -
Added support for the
IS EMPTY
andIS 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
- @fiedsch made their first contribution in #5
- @alexander-schranz made their first contribution in #14
Full Changelog: 0.1.0...0.2.0
0.1.0 - Initial version 🎉
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.