Skip to content

Releases: milvus-io/pymilvus

PyMilvus 2.1.0 Release Notes

22 Jul 08:40
1477ce8
Compare
Choose a tag to compare

New Features

Load multiple memory replicas

collection.load(replica_number=2)

collection.get_replicas()

Support VARCHAR data type

  1. You can define VARCHAR field in schema, also VARCHAR field can be used as primary field:
FieldSchema(name="pk", dtype=DataType.VARCHAR, is_primary=True, auto_id=False, max_length=100)
  1. Just like other data type, you can insert string into VARCHAR field:
entities = [
    [str(i) for i in range(num_entities)],
]
insert_result = collection.insert(entities)
  1. You can also choose to build index for VARCHAR field, for now, the only supported index for string is Trie:
collection.create_index(field_name="pk", index_name="index_on_varchar")
  1. Just like other data type, scalar filtering expression on VARCHAR field is also supported, besides basic filters, prefix match is also supported. Please visist milvus.io for more detailed information.

  2. VARCHAR field as output fields is also supported when you are about to do a search or query:

res = collection.query(expr='pk > "str"', output_fields=["pk"])

Support to specify index name for index-related operations

Now, you can specify index name when you create index for field.

collection.create_index(field_name="field", index_name="index_name", index_params={})
collection.drop_index(index_name="index_name")

For backward compatibility, if you don't specify the index name, _default_idx will be used.

Support Basic Authentication

We add some APIs to support basic authentication:

  • create_credential
  • update_credential
  • delete_credential
  • list_cred_users

If there are any users in Milvus server, then the user and password are required to setup a connection:

connections.connect(host="host", port="port", user="user", password="password")

For more detailed information, please refer to mep27.

Support tls in RPC

Besides basic authentication, we also support to tls in RPC, you can setup a secure connection.

For one-way tls:

connections.connect(host=_HOST, port=_PORT, secure=True, server_pem_path="server.pem", server_name="localhost")

For two-way tls:

connections.connect(host=_HOST,
    port=_PORT,
    secure=True,
    client_pem_path="client.pem",
    client_key_path="client.key",
    ca_pem_path="ca.pem",
    server_name="localhost")

Enhancement

  1. Extend version range of grpcio and ujson
  2. Add milvus-proto as submodule
  3. Support full uri in connection
connections.connect(alias="test", uri="https://example.com:19530")

PyMilvus v2.0.2 Release

02 Apr 07:31
31e1594
Compare
Choose a tag to compare

Release date: 2022-04-02

Features:

  • Add support for numpy.ndarray for vector field (#937)

Fixed bugs:

  • Fix pymilvus unable to download on python3.8 (#931)
  • Fix loading progress output (#936)

Enhancements:

  • Remove load balance from doc (#929)
  • Fix readme bug (#934)
  • Fix create_partition doc string (#935)

PyMilvus v2.0.1 Release

23 Feb 08:17
65e22fe
Compare
Choose a tag to compare

Release date: 2022-02-23

Features:

  • Support secure gRPC channel for AWS (#894)

Fixed bugs:

  • Fix string consistency level not work (#896)
  • Fix partition unable to delete bug (#879)

Enhancements:

  • Speed up pack operation on float vector (#898)

PyMilvus v2.0.0 Release

25 Jan 10:42
Compare
Choose a tag to compare

PyMilvus 2.0.0 Release Notes

Along with Milvus 2.0.0, we are so glad to announce the release of PyMilvus 2.0.0.

From this version, PyMilvus's releases will no longer follow the release of Milvus. We'll focus on improving the codes quality and ease-of-use, and of course, support for new features from Milvus.

As for PyMilvus 2.0.0, there are some exciting news we want to share with you.

A. 1.x APIs (for Milvus 1.x) and orm-styled APIs (for Milvus 2.x) are finally physically separated.

For the convenience of the Milvus 1.x users, we had reserved PyMilvus 1.x APIs within all release-candidates versions of PyMilvus. Now it's time to say goodbye to those 1.x APIs if you're using Milvus 2.0.0.

Note: 1.x APIs means the usage of Milvus() class.

Here's why:

  • 1.x APIs won't be supported for Milvus 2.0.0 in long term.
  • No documentations were provided concerning 1.x API usage on Milvus 2.0.0.

The mixed usage of the 1.x APIs and the orm-styled APIs is not recommended, but you still can use 1.x APIs for Milvus 2.0.0 in PyMilvus2.0.0.

Here's what we've done to avoid the mixed usage:

  1. Separate the 1.x APIs and the orm-styled APIs completely. Now you cannot get a Milvus object through the orm-styled APIs.
  2. Mark Milvus class as deprecated. There'll be a warning every time you try to use 1.x Milvus class on Milvus 2.0.0.
  3. Flush in Milvus 2.0.0 refers to a completely different method. Whereas reads and writes are completely separated in Milvus 2.0.0, you don't need to flush to make the entity searchable by query node. Instead, consistency level is what you need to worry about.

If you encounter any problems while upgrading PyMilvus to 2.0.0, don't worry, it's just a few steps away, and we're always here to help. Here're some tips:

  • If you want to use the 1.x APIs on Milvus 2.0.0, just init Milvus() class and you are good to go.

Note: There is no documentation elaborating the usage of the 1.x APIs on Milvus 2.0.0, and we're planning to remove these APIs in the next release of PyMilvus.

  • If you're unaware of the mixed usage of these two sets of APIs, please refer to Milvus.io or examples/hello_milvus.py in PyMilvus GitHub repository for the correct usages.
  • If you want to use any of the 1.x APIs that is unavailable in orm-styled APIs, let us know. We'll be happy to support it in future releases.

B. Support delete

C. Consistency level

PyMilvus v2.0.0rc9 Release

31 Dec 11:31
8ae48b8
Compare
Choose a tag to compare

Release date: 2021-12-31

Fixed bugs:

  • Fix hello milvus (#829)

  • Check parameters related to guarantee_timestamp (#826)

Enhancements:

  • Add a English version of contributing_cn.md (#849)
  • Add hellomilvus in jupyter notebook (#848)
  • Support guarantee_timestamp and travel_timestamp for query (#847)
  • Support configure the consistency level (#845)
  • Enable get git commit for a given version (#839)
  • Move aliases operations into utility (#841)
  • Add utility functions to make hybrid timestamp (#831)
  • Rewrite the example.py (#789)
  • Enhance pymilvus proto generating procedure (#806)
  • Enable delete function (#803)

# PyMilvus v2.0.0rc8 Release

01 Nov 10:52
c9f015a
Compare
Choose a tag to compare

Release date:2021-11-1

Fixed bugs:

  • Fix check_pass_param check for ndarray (#756)
  • Improve client.check (#743)
  • Fix check limit error (#760)
  • Fixed all buggy instances of exception raises doc (#792)

Enhancements:

  • Converting for loops to list comprehensions (#746)
  • Expose guarantee_timestamp of search api (ref: #666) (#753)
  • Add github issue forms (#742)
  • Add util to calculate timestamp (#759)
  • Make gt avaliable (#761)
  • Remove docs/draft file (#771)
  • Add travel_timestamp parameter to search method (#773)
  • Remove examples/connections.py (#776)
  • Add get_query_segment_info (#772)
  • Throw exception when delete with invalid partition name (#780)
  • Remove insert request hash values (#782)
  • Skip validation check when partition name is None (#783)
  • Get query segment info from specified collection (#785)
  • Return segment state when get query segment info (#786)
  • Update milvus_pb2.py after update milvus.proto (#787)
  • Add repr in connection record (#790)
  • Check the travel timestamp (#793)

PyMilvus v2.0.0rc7 Release

11 Oct 12:50
64a0a7b
Compare
Choose a tag to compare

Release date:2021-10-11

Fixed bugs:

  • Fix nightly-ci schedule (#711)
  • Fix #7613 (#713)

Enhancements:

  • Update SchemaNotReady exception msg when collection not exist (#706)
  • Support _async paramter for Load() interfance (#708)
  • Implement alias api (#720)
  • Change startup logic: wait enough time for server healthy (#730)
  • For search funtion adding a round_decimal paramter to precision control
  • Add str methods to orm searchresult and hits
  • For old style search function also adding a round decimal paramter
  • Rename search_with_expression to search

PyMilvus v2.0.0rc6 Release

10 Sep 12:12
13325a3
Compare
Choose a tag to compare

Release date:2021-09-10

Fixed bugs:

  • Fix Milvus init error (#695)
  • Make wait for healthy timeout controllable (#681)
  • Fix not runnable examples (#680)
  • Raise error if connect after closing connection (#678)
  • Change value of standalone deployment key to keep same as server. (#691)
  • Remove retry logic when drop collection with deadline error (#673)

Enhancements:

  • Remove check connect (#699)
  • Test existing collection (#692)

PyMilvus v2.0.0rc5 Release

30 Aug 08:51
9aaee8a
Compare
Choose a tag to compare

Release date:2021-08-30

Fixed bugs:

  • Remove publish release package github action (#632)
  • Fix orm-style API cannot import problem (#633, #635, #637)
  • Sync milvus.proto from milvus master branch (#644)
  • Limit the grpc version in setup.py (#645)
  • Improper error returned by calc_distance (#647, #648)
  • calc_distance missed partition name (#650)
  • calc_distance error message bug (#655)
  • check calc_distance params (#656)
  • Fix minor doc display error (#643)
  • Fix metric error message inconsistent with input bug (#662)
  • Set the timeout when building indexes (#664)

Enhancements:

  • Add query example doc
  • Merge orm with PyMilvus (#632)
  • Update workflows for web-content (#638)
  • Add util function drop_collection (#658)
  • Add Nightly CI (#659)
  • Revealing sharding option in pymilvus and orm (#633)
  • Modify api description (#665)

PyMilvus v2.0.0rc4 Release

16 Aug 04:35
Compare
Choose a tag to compare

Release date:2021-08-16
Compatible with Milvus v2.x

Fixed bugs:

  • Remove a mistake check in search future (#608)
  • Fix the parameter timeout of load_collection API not working problem (#620)
  • Fix the logic of retry for RPC calling (#622)

Enhancements:

  • Add a check of parameter anns_field in search (#609)
  • Add a check of parameter search_data in search (#610)
  • Add a check of parameter output_fields in search (#613)
  • Set the default metric of calc_distance API (#616)
  • Provide more info when create index failed (#618)
  • Support output binary vector in query API (#623)