Changelog¶
Version 2¶
- Version 2.3.1
Fixing micrometer version conflict
Migrate authentication to spring recommendation
- Version 2.3.0
Expose ‘resultModifications’ coming from NeuralInfusion(R)
Add extended integration with SearchCollector sessionId to support better query-testing
Add improved support for timed redirects
Removed compatibilty to Java 8
unify dependencies with smartSuggest module
- Version 2.2.0
- Cache fuzzy mapping results (generated by preDict)
use bloom filter to skip known unmappable queries
Use small LRU cache for matching mappings
Expose Caching metrics
Make cache & filter parameters configurable
- Version 2.1.2
Update vulnerable feign to fixed version 13.2.1
OCS Plugin: update OCS SPI version
Update to predict 1.0.8 w/o unnecessary dependencies
- Version 2.1.1
A single fuzzy match is not used as master-query mapping anymore, instead just as a potential correction
- Version 2.1.0
Expose Api2.1 features: resultModifications + relatedQueries
- Version 2.0.5
Update fuzzy-mapping library preDICT
- Version 2.0.4
Improve fuzzy-mapping (more normalization to get rid of unwanted effects)
- Version 2.0.3
Don’t return the user query as part of the potentialCorrections
- Version 2.0.x
Update internal API to version 2 (new data exchange format)
Use Minimal-Perfect-Hash Map implementation to reduce memory-footprint
Add fuzzy lookup of queries that can’t be mapped directly
Add potentialCorrections in response in case of ambiguous corrections (usable for “did you mean” feedback)
Version 1¶
- Version 1.3.1
Fix NPE for invalid queries
- Version 1.3.0
Add isSameIntend to QueryMapper
Improve java-doc for mapQuery
Fix potential NPE
ocs-smartquery-plugin: Add support for redirect response
- Version 1.2.12
spring-boot update
Improve documentation around the changes of spring-boot
- Version 1.2.11
Improve precision around ‘FingerprintQueryMapper’ (a minimal fuzzy mapper)
Fix error in unicode handling
- Version 1.2.10
Update to spring-boot 2
Build docker image for smartQuery service with custom base-image
Track smartQuery app type (part of mapping stats)
- Version 1.2.9
Internal DevOps fixes
- Version 1.2.8
Update dependencies
Improve documentation
- Version 1.2.7
Update stats-collector to 1.3
- Version 1.2.6
Fix dependency problem with stats-collector
- Version 1.2.5
Update internal API to 1.6
- Version 1.2.4
Update internal API to 1.5
- Version 1.2.3
Updated internal API to 1.4
- Version 1.2.2
Fix: QueryMapper keeps data even if no updates are possible anymore (Since version 1.1 it could happen, that if data update failed, smartQuery stopped doing the mappings)
- Version 1.2.1
Update to latest searchHub API with extended data models
- Version 1.2
Add OCS smartQuery Plugin
Update to stats-collector 1.2 (update to latest searchHub API version) fixing dependency divergence
- Version 1.1
Add data modification time to tracked mappings
Add update reschedule limiter, that decreases update rate for failing updates
Add validation of data modification time, fixing potential update failures that cause old data not being replaced
Improve concurrency safety
Improve logging (also for all kind of uncaught critical errors)
Improve documentation
- Version 1.0.14
Improve mapping by doing minimal normalization on user input step by step
The impact is a higher mapping rate: User-Input with multiple spaces or other useless characters were not mapped before, even if there practically was a mapping for it
- Version 1.0.13
Optimized dependencies of smartQuery-service, to reduce deployment size
- Version 1.0.12
Update to stats-collector 1.1.1:
Use OKHttp to make proxy communication possible through feign
Fix usage of optional micrometer dependency
- Version 1.0.11
Fix IndexOutOfBoundsException at bypass-query handling
- Version 1.0.10
Add QueryMapping.getMasterQuery() method in case old logic should stay the same
- Version 1.0.9
Fix scheme parsing at configured http proxy
- Version 1.0.8
Add logging for activated http proxy
- Version 1.0.7
Fix port-parsing of http proxy variable
- Version 1.0.6
Add option for http proxy for searchHub API Access
smartQuery can be used in a secured network to go trough the http-proxy when fetching searchHub data.
- Version 1.0.5
Update stats collector
- Version 1.0.4
Log critical errors (java.lang.Error) that were hidden by background update thread
Customer admins can know see in the logs, if smartQuery runs into memory issues during data update.
Improve rescheduling of broken update task
Add timeout to update task
- Version 1.0.3
Add documentation for QueryAssessment.isOnlyWordReorder:
This method tells the implementor, if the query was essentially changed or not. It can be used to decide when to show the ‘query correction feedback’
- Version 1.0.2
- Security Updates
Update OpenFeign from 9.5.0 to 10.8
Update SLF4j from 1.7.26 to 1.7.30
Update Lombok from 1.18.6 to 1.18.12
Update Micrometer from 1.1.4 to 1.3.5
- Version 1.0.1
Update to fixed stats-collector (wrong data serialization)
- Version 1.0
Add support for redirect feature
Fingerprint mapper picks best master if more than one is matching
Track smartQuery version and Java version as user-agent with stats-collector
Version 0¶
- Version 0.11.8
Fix missing tracking of bypassed queries: We get the information about when smartQuery was bypassed, e.g. when a query-correction was reverted
- Version 0.11.7
Add Utility method QueryAssessment.isOnlyWordReorder that can be used to avoid displaying ‘search your query instead’ message
- Version 0.11.6
Fix potential mapping update flooding due to broken updater
- Version 0.11.5
Fix prometheus endpoint must not be secured
- Version 0.11.4
Add CORS support, allow all origins
- Version 0.11.3
Stop smartQuery service if still running from previous job
Add potential NPE in MappingUpdater metrics
Always log if there are new mapping data
- Version 0.11.2
Optional basic auth security to smartQuery service
Fix missing artifacts to build docker image
- Version 0.11.1
Reworked Fingerprints to be more precise and avoid conflicts
In case of Fingerprint conflict, according mappings are dropped
queries are normalized before searching for mappings
- Version 0.11.0
Added optional monitoring SPI
bypass-query: User queries that are quoted (start and end with a quote char “), won’t be mapped
Improved QueryMapperManagerBuilder to support preloading tenants
Added prometheus endpoint to smartQuery-service that uses the monitoring SPI
Added configuration support to smartQuery-service. All options that are available at the QueryMapperManagerBuilder can be configured using application.properties and/or startup parameters
- Version 0.10.7
Deprecated: Instead using QueryMapperManager setters, use the QueryMapperManagerBuilder to construct a QueryMapperManager instance
smartQuery-service uses SQ_INIT_TENANTS env-var to init tenant data on startup
QueryMapperManagerBuilder for better QueryMapperManager instance construction
Add mappingThreshold and mappingThresholdPerTenant options
Stop updates in case of more then 5 consecutive failures. Restart update task, if further used
Improve error handling at background update task
- Version 0.10.6
Add default settings for smartQuery-service
Renamed “service” into “smartQuery-service”
- Version 0.10.5
smartQuery as http service, packaged as docker container
- Version 0.10.4
Use tenant specific locale for internal mapper operations
Use UTF as API response encoding, instead system default encoding
- Version 0.10.3
Remove dependency to guava and commons-lang libraries. Implement required functionality directly
- Version 0.10.2
“noop” channel: It’s possible to create a QueryMapper for a tenant with the channel “noop”, that however will never be updated. Stat logs will be collected however.
- Version 0.10.0
Deprecated: Usage of disableResponseValidation flag is discouraged, since this was only introduced to work around an encoding bug
Experimental class QueryMapperManagerFactory to add support for environments without lifecycle management
Add stats-collector that sends information about applied mappings to import.searchhub.io
Use a ThreadFactory that creates daemon threads for the ScheduledExecutorService. This way a shutdown is not prevented by these threads in case the QueryMapperManager isn’t closed by the application.
- Version 0.9.7
Use UTF8 instead system encoding to verify response at ResponseValidator
- Version 0.9.6
Add disableResponseValidation flag in case response validation fails for unknown reason (Workaround)
Add more java-doc
Updater stops in case request is returned as unauthenticated