Releases: milvus-io/pymilvus
PyMilvus 2.4.0 Release Notes
Milvus 2.4.0-rc.1 related scenario-based features:
Milvus has released version 2.4.0-rc.1. This version of pymilvus incorporates the new features introduced in Milvus 2.4.0-rc.1
- New GPU Index named CAGRA
Thanks to NVIDIA's contribution, this new GPU index provides a 10x performance boost, especially for batch searches. Please refer to the sample code inexamples/example_gpu_cagra.py
- Multi-vector and hybrid search
This feature helps store vector embeddings generated from multiple models and conduct multi-vector searches accordingly. Please refer to the sample code inexamples/hello_hybrid_sparse_dense.py
- Sparse vectors
Sparse vectors are ideal for keyword interpretation and analysis. Your collection can now process sparse vectors. Please refer to the sample code inexamples/hello_sparse.py
- Grouping search
Categorical aggregation helps you achieve document-level recall for Retrieval-Augmented Generation (RAG) applications. Please refer to the sample code inexamples/example_group_by.py
- Inverted index and fuzzy matching
Inverted index and fuzzy match capabilities for scalar fields help improve keyword retrieval capability. Please refer to the sample code inexamples/inverted_index_example.py
andexamples/fuzzy_match.py
- New Vector DataType Float16 and BFloat16
Half precision like Float16 and BFloat16 are widely used in hardware and software for machine learning or neural networks. While Float16/BFloat16 sacrifices some accuracy, it offers improved query efficiency and more efficient memory usage. Please refer to the sample code inexamples/bfloat16_example.py
andexamples/float16_example.py
Model library for pymilvus
The model library converts text to vectors using open-source embedding models and the OpenAI embedding service, accessible with
pip install pymilvus[model]
Additionally, it supports generating sparse vectors with BM25 and SPLADE, as well as both dense and sparse vectors simultaneously with BGE-M3. For detailed usage, please refer to examples/hello_model.py
.
MilvusClient
Furthermore, this version also includes the refactoring of MilvusClient that was introduced in version 2.3.7 (refer to pymilvus2.3.7). MilvusClient provides a simple and easy-to-use alternative to the ORM approach. It adopts a purely functional approach to simplify interactions with the server. Each MilvusClient establishes a gRPC connection to the server. To set up multiple connections, you can create multiple MilvusClient instances.
MilvusClient module has integrated various functional methods, making its most of functionality align with that of the ORM module.
PyMilvus 2.3.7 Release Notes
MilvusClient provides a simple and easy-to-use alternative to the legacy ORM approach. It adopts a purely functional approach to simplify interactions with the server. Each MilvusClient establishes a gRPC connection to the server you specified. To set up multiple connections, you can create multiple MilvusClient instances.
Install & Update
You can run the following command to install the latest PyMilvus or update your PyMilvus to this version.
pip install --upgrade pymilvus==v2.3.7
After the installation, you can check the pymilvus version by running the following
from pymilvus import __version__
print(__version__)
#v2.3.7
Connect to Milvus
from pymilvus import MilvusClient
# Authentication not enabled
client = MilvusClient("http://localhost:19530")
# Authentication enabled with the root user
client = MilvusClient(
uri="http://localhost:19530",
token="root:Milvus",
db_name="default"
)
# Authentication enabled with a non-root user
client = MilvusClient(
uri="http://localhost:19530",
token="user:password", # replace this with your token
db_name="default"
)
What's New
In this version, PyMilvus adds a MilvusClient module that incorporates several functional methods, aligning its functionality overall with that of the legacy ORM module.
Collection-related methods
- create_collection()
- rename_collection()
- describe_collection()
- has_collection()
- list_collections()
- drop_collection()
- get_collection_stats()
- load_collection()
- release_collection()
- get_load_state()
- refresh_load()
Data-related methods
- insert()
- upsert()
- search()
- query()
- delete()
Alias-related methods
- create_alias()
- drop_alias()
- alter_alias()
- describe_alias()
- list_aliases()
Partition-related methods
- create_partition()
- drop_partition()
- has_partition()
- list_partitions()
- load_partitions()
- release_partitions()
- get_partition_stats()
Index-related methods
- create_index()
- list_indexes()
- drop_index
- describe_index()
User- and RBAC-related methods
- create_user()
- drop_user()
- update_password()
- list_users()
- describe_user()
- grant_role()
- revoke_role()
- create_role()
- drop_role()
- describe_role()
- list_roles()
- grant_privilege()
- revoke_privilege()
Examples
In addition to the documents, you can also refer to the example sets in our GitHub repo.
Feedback & Issues
If you are having trouble or have questions about PyMilvus, ask your question on our PyMilvus Community Forum. Once you get an answer, it’d be great if you could work it back into this documentation and contribute!
Contributions
We are committed to building a collaborative, exuberant open-source community for PyMilvus. Therefore, contributions to PyMilvus are welcome from everyone. Refer to Contributing Guideline before making contributions to this project. You can file an issue or contact us on Slack if you need any assistance or want to propose your ideas about PyMilvus.
PyMilvus 2.3.6 Release Notes
What's Changed
- Support python3.12 by @XuanYang-cn in #1861
- Change BulkWriter default parameters by @yhmo in #1876
- fix: Fix bug for add connection when url is https by @xiaocai2333 in #1852
- Multi-cherry bug fixes from master by @XuanYang-cn in #1890
Full Changelog: v2.3.5...v2.3.6
PyMilvus 2.3.5 Release Notes
What's Changed
- add limit for too large ef to avoid huge latency for iterator(#1814) by @MrPresent-Han in #1815
- Set default port to 443 with https scheme by @XuanYang-cn in #1819
- use custmized version by @XuanYang-cn in #1818
- Enable actions on 2.3 branch by @XuanYang-cn in #1821
- cp: Fix 1823-2.3 by @MrPresent-Han in #1825
- set reduce_stop_for_best for iterator by default(#1830) by @MrPresent-Han in #1832
- Bulkwriter set row group for parquet by @yhmo in #1836
- [Cherry-pick] Support delete with consistency level by @aoiasd in #1841
- [cherry-pick] Enable to set retry times by @XuanYang-cn in #1827
- Auto reconnection when channel state changed to idle by @haorenfsa in #1846
Full Changelog: v2.3.4...v2.3.5
PyMilvus 2.3.4 Release Notes
What's Changed
- enhance: remove partition existance check by @yah01 in #1792
- search iterator support range-search paramter(#1793) by @MrPresent-Han in #1795
- adjust metrics comparison by @MrPresent-Han in #1798
- enhance search iterator extension by @MrPresent-Han in #1799
- Fix connect timeout bug by @junjiejiangjjj in #1802
- Bulkwriter supports parquet by @yhmo in #1803
- fix: Fix compactibility of exception with Milvus 2.2.x by @bigsheeper in #1805
- fix: Fix check_status for create_alias func by @bigsheeper in #1807
New Contributors
- @junjiejiangjjj made their first contribution in #1802
Full Changelog: v2.3.3...v2.3.4
PyMilvus 2.3.3 Release Notes
What's Changed
- Change unimpleted log level to debug by @xiaocai2333 in #1760
- Convert the result to python basic types to enable json dumps by @xiaocai2333 in #1765
- Remove unused code for milvus client by @xiaocai2333 in #1769
- fix: load_state parameter type err by @simonwei97 in #1768
- Modify highlevel delete to not return any value by @czs007 in #1777
- Refine highlevel delete code comments by @czs007 in #1778
- Add filter parameter to delete by @czs007 in #1779
New Contributors
- @simonwei97 made their first contribution in #1768
- @Writer-X made their first contribution in #1772
Full Changelog: v2.3.2...v2.3.3
PyMilvus 2.2.17 Release Notes
What's Changed
- Enable ignored checker PYI024 by @XuanYang-cn in #1702
- [cherry-pick] Support numpy type value for bulkwriter by @yhmo in #1721
- [Cherry-Pick]: Improve the default db for the rbac (#1752) by @SimFG in #1753
- Change unimpleted log level to debug by @xiaocai2333 in #1761
- Convert the result to python basic types to enable json dumps by @xiaocai2333 in #1766
- Remove unused code for milvus client by @xiaocai2333 in #1770
Full Changelog: v2.2.16...v2.2.17
PyMilvus 2.3.2 Release Notes
New Features
- Support new DataType: Array by @xiaocai2333 in #1681
What's Changed
- Change error_code to code by @jiaoew1991 in #1696
- Support numpy type value for bulkwriter by @yhmo in #1718
- support best_reduce(#1711) by @MrPresent-Han in #1712
- Fix the tls example by @SimFG in #1723
- Bump urllib3 from 1.26.5 to 1.26.17 by @dependabot in #1725
- Fix INDEX_NOT_EXIST error code by @XuanYang-cn in #1736
- Remove redundant type inference when insert data by @czs007 in #1739
- Enhance search result by @XuanYang-cn in #1727
- Fix rename_collection will move collection to default db by @smellthemoon in #1740
- Bump urllib3 from 1.26.17 to 1.26.18 by @dependabot in #1738
- Fix a typo by @CsterKuroi in #1732
- Fix orm SearchFuture bug by @XuanYang-cn in #1744
- add judgement for isPrimary by @MrPresent-Han in #1745
- Fix search result by @XuanYang-cn in #1748
- Add a lower bound for minio by @XuanYang-cn in #1743
- Update milvus-proto to tag==v2.3.2 by @XuanYang-cn in #1747
- Fix has_collection result with Milvus2.2 by @XuanYang-cn in #1750
- Update proto again by @XuanYang-cn in #1751
- Improve the default db for the rbac by @SimFG in #1752
- Fix api key by @bigsheeper in #1757
New Contributors
- @CsterKuroi made their first contribution in #1732
Full Changelog: v2.3.1...v2.3.2
PyMilvus 2.3.1 Release Notes
What's Changed
- Use flush_ts and collection_name when getting flush state by @bigsheeper in #1675
- Pass segment ids when get flush state by @bigsheeper in #1677
- while parse uri, overwrite the db_name with default by @PowderLi in #1682
- Update grpcio version range by @XuanYang-cn in #1692
- Add github action for publish on release by @XuanYang-cn in #1695
- Add db parameter in flush_all by @wayblink in #1701
- Enable ignored checker PYI024 by @XuanYang-cn in #1703
- Fix pass extra param by @smellthemoon in #1713
- fix conflict for ef and batch size by @MrPresent-Han in #1716
New Features
Full Changelog: v2.3.0...v2.3.1
PyMilvus 2.2.16 Release Notes
What's Changed
- Fix lint error by @yhmo in #1668
- while parse uri, overwrite the db_name with default by @PowderLi in #1683
- Update grpcio version range by @XuanYang-cn in #1693
- Update 2.2.x readme by @XuanYang-cn in #1700
Features
Full Changelog: v2.2.15...v2.2.16