Releases: marqo-ai/marqo
Releases · marqo-ai/marqo
Release 2.10.0
2.10.0
New features
- Hybrid Search (
"searchMethod": "HYBRID”
) (#845). Marqo now supports hybrid search, combining lexical and tensor search (using reciprocal rank fusion) to provide the best relevance possible. See usage here. - Lexical Search score modifiers (#884). Score modifiers are now supported for lexical search. Score modifiers are applied on all matches, not just the top k retrieved, resulting in more relevant hits. See usage here.
Bug fixes and minor changes
- Increase unstructured index default
filterStringMaxLength
to 50, from 20 (#887). Maximum length of string fields to be used in query filters now defaults to 50 characters long.
Contributor shout-outs
- Huge shoutout to all our 4.3k stargazers! We’ve come a long way as a team and as a community, so a huge thanks to everyone who continues to support Marqo.
- Feel free to keep on sharing questions and feedback on our forum and Slack channel! If you have any more inquiries or thoughts, please don’t hesitate to reach out.
Release 2.9.0
2.9.0
New features
- Numeric map data type. Add numeric map data types, available for filtering and score modification (#851). You can now store a map/dictionary of numeric value and use these in your filters and score modifiers, or simply retrieve these with your documents. See the new types here. For usage in search, see here. This is supported only for indexes created with Marqo 2.9 or later.
- Double and long score modifier fields. Support double and long in map and standard numeric fields for score modifiers in both structured and unstructured indexes (#851). You can now use double values with full precision as score modifiers, as well as integers with guaranteed precision up to
2^53 - 1
(increased from2^24 - 1
), with only negligible precision loss for larger values. For details on these new types, see the documentation here.
Bug fixes and minor changes
- Fix the bug in score modifiers where missing score modifiers in docs used in
multiply_score_by
lead to the multiplication of scores by0
instead of by1
(#851). - Improve upgrade stability (#874). Fix failure of state transfer between some versions of Marqo due to Vespa binaries being copied with state. For more information, see the documentation here
- Improve the model warmup strategy on instances with CUDA (#877). Marqo now requires less memory to warmup the models when spinning up .
- Improve create/delete index resilience to partial failures (#866). You can now bring Marqo to a consistent state by repeating the operation until getting a
200
response.
Contributor shout-outs
- Shoutouts to our valuable 4.3k stargazers!
- Thanks a lot for the discussion and suggestions in our community. We love to hear your thoughts and requests. Join our Slack channel and forum now.
Release 2.8.2
Release 2.8.1
2.8.1
Bug fixes and minor changes
- Fix a bug in Marqo where a 500 error is returned for the entire batch of documents when encountering an invalid document ID during image downloading. Marqo now correctly returns an error and rejects the invalid document, allowing successful indexing of other valid documents with a 200 response. (#860)
Release 2.8.0
2.8.0
New features
- Improve
add_documents
memory efficiency and throughput for CLIP and Open_CLIP models when indexing documents with images when no patch method is used (#849). The image downloading and preprocessing logic has been improved. Marqo now converts the images to tensors directly after downloading. In our tests, the memory usage has been reduced by 37.5% and the throughput has been increased by 7.5% (subject to your settings). Marqo is also more stable when indexing documents in a multi-threading scenario. - Add support for pre-warming patch models (#847). See usage (here)
Bug fixes and minor changes
- Replace the
requests
package withpycurl
for faster image downloads (#849). Marqo now downloads images 2-3x faster in our tests and the overall add_documents throughput is increased by 7.5%
Contributor shout-outs
- Shoutouts to our valuable 4.2k stargazers!
- Thanks a lot for the discussion and suggestions in our community. We love to hear your thoughts and requests. Join our Slack channel and forum now.
Release 2.7.2
Release 2.7.1
2.7.1
Bug fixes and minor changes
- Resolve an issue where Marqo could not create or delete an index when not connected to the Zookeeper server (#848). Users can now create or delete an index without needing to connect to the Zookeeper server. However, please note that without the Zookeeper server, your request is not protected in concurrent scenarios. For guidance on configuring your Zookeeper server, refer to this documentation.
Release 2.7.0
2.7.0
New features
- Update Open CLIP version and support new families of models, e.g.,
MetaCLIP
,DatacompCLIP
(#833). Update the Open CLIP version to2.24.0
which includes new and state-of-the-art multimodal models. You can choose these models to build your index. Check here for the available models. - Support lexical search with only a filter (#840). Marqo now supports a match-all query (
"*"
) with a filter in lexical search. This allows you to search your documents solely based on the filter content without considering the relevance. This is a community-requested feature (#770, #771) and we love to hear from our users.
Bug fixes and minor changes
- Improve the thread safety of index creation and deletion operations (#838). Marqo now returns an
operation_conflict_error(409)
if users try to delete or create an index when there is another index creation or deletion in progress. - Fix a bug that an empty string lexical search query (
""
) returns a 500 error (#840). Marqo now returns an empty search result for such a query. - Address verbose logging at the
WARNING
level whenattributes_to_retrieve
excludes fields required to build highlights. (#837)
Contributor shout-outs
- Shoutouts to our valuable 4.2k stargazers!
- Thanks @jesse-lord and @afroozsheikh for requesting valuable features to improve Marqo!
- Thanks a lot for the discussion and suggestions in our community. We love to hear your thoughts and requests. Join our Slack channel and forum now.