Repository navigation
Releases: Collusion/pickmybrain
Release list
Version 1.0.23
Version 1.0.22
- 32bit searching might have halted due to missing decode_interval parameter in PMBApi.php
- Improved 32bit/64bit file detection mechanism
- Improved UTF-8 handling in API's SearchFocuser() method
Version 1.0.21
- Bug resulting in Notice: Undefined offset: 3 in decode_asc.php on line 165 error message is now fixed
- PHP 8 compatibility improvements
Version 1.0.20
- Search queries containing multiple identical keywords are now truly working: 'London London London' searchstring yields results and scores documents with three successive London's higher.
- New search operator, round brackets: (keyword1 keyword2) - Like "double quotes", ( ) operator matches only documents containing the given keywords in the given order - but unlike with the "" operators, prefix matches are also allowed
- New method: QualityScoreLimit(int $percentage) controls how much shorter the prefix matches are allowed to be (string length) vs given keyword
- New method: StemMinimumQuality(int $percentage) controls how much shorter the stemmed versions of the given keywords are allowed to be vs given keyword
- All PMBApi methods now allow numerical/integer input parameters in string format: for example, $pmbsearch->Search("keyword", "10", "30"); is now allowed, previously only pure integer values were accepted
- Performance improvement: searching performance is better in PMB_SORTBY_RELEVANCE sorting mode
- Performance improvement: fragmented database indexes with large differences in primary keys are now performing a tad better as well
- Bug fix: due to how document id ranges were formed and scanned in the PMBApi.php for lower memory consumption, the following document immediately after the document id range might have been left out/skipped. This is now fixed
- Bug fix: In 32-bit environments document ids larger than 2147483647 or PHP_INT_MAX were processed incorrectly & they overflowed.
- Bug fix: running the indexer via the web control panel manually might have not been working
- probably other fixes I forgot to mention here...
Version 1.0.11
Brand new demo search feature, bug fixes & code simplification!
- Now PMB comes with an easy to use demo search page, demo/demo.php.
- SetFieldWeights had a bug, which is now fixed
- 32bit version of PMBApi had a bug in SetFilterBy and SetFilterRange functions
- Cleaned up some redundant code + created a new method for commonly used code in PMBApi
Version 1.0.10
- Fixed deprecated curly bracket syntax for array indexes
- In some cases, an integer needle may have been passed to the strpos() function in Search() and SearchFocuser methods.
Version 1.0.9
To offer better support for shared hosting environments, 32bit PHP runtime environments are now supported. The control panel includes an automatic detection for your PHP environment type and prompts you to semi-manually or manually to replace the original binaries with 32bit ones if required. Even if implementing a variable byte encoding&decoding is much more tricky in 32bit environments, searching and indexing performance took luckily only a very minor hit (~5-10%).
There are also numerous smallish improvements, such as:
- better support for async curl script execution method with https protocol
- the index specific search window in control.php will now hide properly. Before it was hidden, but you still couldn't click or select any items under it
- the control.php self tests are now run only once after logging in. This should make the control panel slightly more responsive.
- exec() script execution method cannot be chosen, if it's detected to be unavailable.
Version 1.0.7
Compressed document id data can now be read and decompressed in both
directions - ascending and descending. This enables the PMBApi to choose
an appropriate direction when sorting by the internal @id attribute and
simply stop the decompression when a suitable amount of results has been
found. Huge performance improvements ( +1000% ) in selected situations.
Now, there is, however, a downside using the internal @id attribute for
sorting: the exact amount of results is unknown. Based on the density (
actual matches / decompressed values ) of results PMBApi attempts to
calculate an estimated number, but more often than not it is inaccurate.
Only way to know for sure would be to decompress all the data, like
before. For implementing this feature correctly please see the updated
PMBApi instructions on our website.
This release contains also numerous bug fixes. Updating is certainly
recommended.
Unfortunately the index data format has been also changed, so
re-indexing is required. If you are using the internal @id attribute for
sorting results descending order in your application, please refrain
from replacing the PMBApi.php file with the updated version until you've
had a change to re-index.
Version 1.0.6
New features/changes compared against v1.0.4
-
Users can now control the web crawler with a new setting: scan depth. When the indexer discovers links from pages defined as seed urls, it will store and eventually index them as well. This setting controls how deep the link discovery is allowed to go.
-
Search results from web indexes now contain also the meta description field.
-
The content field of web index results is not automatically focused anymore, users can do this manually with the SearchFocuser() method instead:
if you want to provide a focused version of your ( long )
indexed data field with highlighted keywords
$row["content"] = $pickmybrain->SearchFocuser($row["content"], $query, $chars_per_line, $max_len);
$query = "mykeyword"; // your search query
$stem_language = "fi"; // language for stemming ( en | fi )
$chars_per_line = 90; // how many chars before forced linebreak (
)
$max_len = 150; // how many chars the focused result may contain in total
Feature improvement: new sorting/grouping attribute @id (= document id). Results can now be ordered or organized within groups by internal @id attribute. This provides a faster alternative to external user defined attributes when indexed data is naturally ordered in certain manner ( for example, older entries have smaller @id ).
- Internal search feature has also been updated to support the new sorting/grouping attribute.
- Bug fix: when sorting by an external attribute, disabling certain fields did not have any effect.
v1.0.4
- New feature: keyword suggestions. Pickmybrain can automatically suggest better search terms, if the provided keywords seem to be mistyped. This feature is based on the double metaphone phonetic algorithm and works best with english language. See API how to implement and control this feature.