|
247 | 247 | "\n",
|
248 | 248 | " return (where, params) \n",
|
249 | 249 | "\n",
|
250 |
| - " def search_query(self, query_embedding: Optional[List[float]], k: int=10, filter: Optional[Union[Dict[str, str], List[Dict[str, str]]]] = None) -> Tuple[str, List]:\n", |
| 250 | + " def search_query(self, query_embedding: Optional[List[float]], limit: int=10, filter: Optional[Union[Dict[str, str], List[Dict[str, str]]]] = None) -> Tuple[str, List]:\n", |
251 | 251 | " \"\"\"\n",
|
252 | 252 | " Generates a similarity query.\n",
|
253 | 253 | "\n",
|
|
278 | 278 | " WHERE \n",
|
279 | 279 | " {where}\n",
|
280 | 280 | " {order_by_clause}\n",
|
281 |
| - " LIMIT {k}\n", |
282 |
| - " '''.format(distance=distance, order_by_clause=order_by_clause, where=where, table_name=self._quote_ident(self.table_name), k=k)\n", |
| 281 | + " LIMIT {limit}\n", |
| 282 | + " '''.format(distance=distance, order_by_clause=order_by_clause, where=where, table_name=self._quote_ident(self.table_name), limit=limit)\n", |
283 | 283 | " return (query, params)"
|
284 | 284 | ]
|
285 | 285 | },
|
|
510 | 510 | "\n",
|
511 | 511 | " async def search(self, \n",
|
512 | 512 | " query_embedding: Optional[List[float]] = None, # vector to search for\n",
|
513 |
| - " k: int=10, # The number of nearest neighbors to retrieve. Default is 10.\n", |
| 513 | + " limit: int=10, # The number of nearest neighbors to retrieve. Default is 10.\n", |
514 | 514 | " filter: Optional[Union[Dict[str, str], List[Dict[str, str]]]] = None): # A filter for metadata. Default is None.\n",
|
515 | 515 | " \"\"\"\n",
|
516 | 516 | " Retrieves similar records using a similarity query.\n",
|
517 | 517 | "\n",
|
518 | 518 | " Returns:\n",
|
519 | 519 | " List: List of similar records.\n",
|
520 | 520 | " \"\"\"\n",
|
521 |
| - " (query, params) = self.builder.search_query(query_embedding, k, filter)\n", |
| 521 | + " (query, params) = self.builder.search_query(query_embedding, limit, filter)\n", |
522 | 522 | " async with await self.connect() as pool:\n",
|
523 | 523 | " return await pool.fetch(query, *params)"
|
524 | 524 | ]
|
|
627 | 627 | "\n",
|
628 | 628 | "### Async.search\n",
|
629 | 629 | "\n",
|
630 |
| - "> Async.search (query_embedding:Optional[List[float]]=None, k:int=10,\n", |
| 630 | + "> Async.search (query_embedding:Optional[List[float]]=None, limit:int=10,\n", |
631 | 631 | "> filter:Union[Dict[str,str],List[Dict[str,str]],NoneType]=No\n",
|
632 | 632 | "> ne)\n",
|
633 | 633 | "\n",
|
|
643 | 643 | "\n",
|
644 | 644 | "### Async.search\n",
|
645 | 645 | "\n",
|
646 |
| - "> Async.search (query_embedding:Optional[List[float]]=None, k:int=10,\n", |
| 646 | + "> Async.search (query_embedding:Optional[List[float]]=None, limit:int=10,\n", |
647 | 647 | "> filter:Union[Dict[str,str],List[Dict[str,str]],NoneType]=No\n",
|
648 | 648 | "> ne)\n",
|
649 | 649 | "\n",
|
|
718 | 718 | "\n",
|
719 | 719 | "rec = await vec.search([1.0, 2.0])\n",
|
720 | 720 | "assert len(rec) == 10\n",
|
721 |
| - "rec = await vec.search([1.0, 2.0], k=4)\n", |
| 721 | + "rec = await vec.search([1.0, 2.0], limit=4)\n", |
722 | 722 | "assert len(rec) == 4\n",
|
723 |
| - "rec = await vec.search(k=4)\n", |
| 723 | + "rec = await vec.search(limit=4)\n", |
724 | 724 | "assert len(rec) == 4\n",
|
725 |
| - "rec = await vec.search([1.0, 2.0], k=4, filter={\"key2\":\"val2\"})\n", |
| 725 | + "rec = await vec.search([1.0, 2.0], limit=4, filter={\"key2\":\"val2\"})\n", |
726 | 726 | "assert len(rec) == 1\n",
|
727 |
| - "rec = await vec.search([1.0, 2.0], k=4, filter={\"key2\":\"does not exist\"})\n", |
| 727 | + "rec = await vec.search([1.0, 2.0], limit=4, filter={\"key2\":\"does not exist\"})\n", |
728 | 728 | "assert len(rec) == 0\n",
|
729 |
| - "rec = await vec.search([1.0, 2.0], k=4, filter={\"key_1\":\"val_1\"})\n", |
| 729 | + "rec = await vec.search([1.0, 2.0], limit=4, filter={\"key_1\":\"val_1\"})\n", |
730 | 730 | "assert len(rec) == 1\n",
|
731 | 731 | "rec = await vec.search([1.0, 2.0], filter={\"key_1\":\"val_1\", \"key_2\":\"val_2\"})\n",
|
732 | 732 | "assert len(rec) == 1\n",
|
733 |
| - "rec = await vec.search([1.0, 2.0], k=4, filter={\"key_1\":\"val_1\", \"key_2\":\"val_3\"})\n", |
| 733 | + "rec = await vec.search([1.0, 2.0], limit=4, filter={\"key_1\":\"val_1\", \"key_2\":\"val_3\"})\n", |
734 | 734 | "assert len(rec) == 0\n",
|
735 |
| - "rec = await vec.search(k=4, filter={\"key_1\":\"val_1\", \"key_2\":\"val_3\"})\n", |
| 735 | + "rec = await vec.search(limit=4, filter={\"key_1\":\"val_1\", \"key_2\":\"val_3\"})\n", |
736 | 736 | "assert len(rec) == 0\n",
|
737 |
| - "rec = await vec.search([1.0, 2.0], k=4, filter=[{\"key_1\":\"val_1\"}, {\"key2\":\"val2\"}])\n", |
| 737 | + "rec = await vec.search([1.0, 2.0], limit=4, filter=[{\"key_1\":\"val_1\"}, {\"key2\":\"val2\"}])\n", |
738 | 738 | "assert len(rec) == 2\n",
|
739 |
| - "rec = await vec.search(k=4, filter=[{\"key_1\":\"val_1\"}, {\"key2\":\"val2\"}])\n", |
| 739 | + "rec = await vec.search(limit=4, filter=[{\"key_1\":\"val_1\"}, {\"key2\":\"val2\"}])\n", |
740 | 740 | "assert len(rec) == 2\n",
|
741 | 741 | "\n",
|
742 |
| - "rec = await vec.search([1.0, 2.0], k=4, filter=[{\"key_1\":\"val_1\"}, {\"key2\":\"val2\"}, {\"no such key\": \"no such val\"}])\n", |
| 742 | + "rec = await vec.search([1.0, 2.0], limit=4, filter=[{\"key_1\":\"val_1\"}, {\"key2\":\"val2\"}, {\"no such key\": \"no such val\"}])\n", |
743 | 743 | "assert len(rec) == 2\n",
|
744 | 744 | "\n",
|
745 | 745 | "assert isinstance(rec[0][SEARCH_RESULT_METADATA_IDX], dict)\n",
|
|
764 | 764 | "except BaseException as e:\n",
|
765 | 765 | " pass\n",
|
766 | 766 | "\n",
|
767 |
| - "rec = await vec.search([1.0, 2.0], k=4, filter=[{\"key_1\":\"val_1\"}, {\"key2\":\"val2\"}])\n", |
| 767 | + "rec = await vec.search([1.0, 2.0], limit=4, filter=[{\"key_1\":\"val_1\"}, {\"key2\":\"val2\"}])\n", |
768 | 768 | "assert len(rec) == 2\n",
|
769 | 769 | "await vec.delete_by_ids([rec[0][SEARCH_RESULT_ID_IDX]])\n",
|
770 |
| - "rec = await vec.search([1.0, 2.0], k=4, filter=[{\"key_1\":\"val_1\"}, {\"key2\":\"val2\"}])\n", |
| 770 | + "rec = await vec.search([1.0, 2.0], limit=4, filter=[{\"key_1\":\"val_1\"}, {\"key2\":\"val2\"}])\n", |
771 | 771 | "assert len(rec) == 1\n",
|
772 | 772 | "await vec.delete_by_metadata([{\"key_1\":\"val_1\"}, {\"key2\":\"val2\"}])\n",
|
773 |
| - "rec = await vec.search([1.0, 2.0], k=4, filter=[{\"key_1\":\"val_1\"}, {\"key2\":\"val2\"}])\n", |
| 773 | + "rec = await vec.search([1.0, 2.0], limit=4, filter=[{\"key_1\":\"val_1\"}, {\"key2\":\"val2\"}])\n", |
774 | 774 | "assert len(rec) == 0\n",
|
775 |
| - "rec = await vec.search([1.0, 2.0], k=4, filter=[{\"key2\":\"val\"}])\n", |
| 775 | + "rec = await vec.search([1.0, 2.0], limit=4, filter=[{\"key2\":\"val\"}])\n", |
776 | 776 | "assert len(rec) == 4\n",
|
777 | 777 | "await vec.delete_by_metadata([{\"key2\":\"val\"}])\n",
|
778 |
| - "rec = await vec.search([1.0, 2.0], k=4, filter=[{\"key2\":\"val\"}])\n", |
| 778 | + "rec = await vec.search([1.0, 2.0], limit=4, filter=[{\"key2\":\"val\"}])\n", |
779 | 779 | "assert len(rec) == 0\n",
|
780 | 780 | "\n",
|
781 | 781 | "assert not await vec.table_is_empty()\n",
|
|
1020 | 1020 | " with conn.cursor() as cur:\n",
|
1021 | 1021 | " cur.execute(query)\n",
|
1022 | 1022 | "\n",
|
1023 |
| - " def search(self, query_embedding: Optional[List[float]]=None, k: int=10, filter: Optional[Union[Dict[str, str], List[Dict[str, str]]]] = None):\n", |
| 1023 | + " def search(self, query_embedding: Optional[List[float]]=None, limit: int=10, filter: Optional[Union[Dict[str, str], List[Dict[str, str]]]] = None):\n", |
1024 | 1024 | " \"\"\"\n",
|
1025 | 1025 | " Retrieves similar records using a similarity query.\n",
|
1026 | 1026 | "\n",
|
|
1035 | 1035 | " if query_embedding is not None:\n",
|
1036 | 1036 | " query_embedding = np.array(query_embedding)\n",
|
1037 | 1037 | " \n",
|
1038 |
| - " (query, params) = self.builder.search_query(query_embedding, k, filter)\n", |
| 1038 | + " (query, params) = self.builder.search_query(query_embedding, limit, filter)\n", |
1039 | 1039 | " query, params = self._translate_to_pyformat(query, params)\n",
|
1040 | 1040 | " with self.connect() as conn:\n",
|
1041 | 1041 | " with conn.cursor() as cur:\n",
|
|
1153 | 1153 | "\n",
|
1154 | 1154 | "### Sync.search\n",
|
1155 | 1155 | "\n",
|
1156 |
| - "> Sync.search (query_embedding:Optional[List[float]]=None, k:int=10,\n", |
| 1156 | + "> Sync.search (query_embedding:Optional[List[float]]=None, limit:int=10,\n", |
1157 | 1157 | "> filter:Union[Dict[str,str],List[Dict[str,str]],NoneType]=Non\n",
|
1158 | 1158 | "> e)\n",
|
1159 | 1159 | "\n",
|
|
1174 | 1174 | "\n",
|
1175 | 1175 | "### Sync.search\n",
|
1176 | 1176 | "\n",
|
1177 |
| - "> Sync.search (query_embedding:Optional[List[float]]=None, k:int=10,\n", |
| 1177 | + "> Sync.search (query_embedding:Optional[List[float]]=None, limit:int=10,\n", |
1178 | 1178 | "> filter:Union[Dict[str,str],List[Dict[str,str]],NoneType]=Non\n",
|
1179 | 1179 | "> e)\n",
|
1180 | 1180 | "\n",
|
|
1257 | 1257 | "assert len(rec) == 10\n",
|
1258 | 1258 | "rec = vec.search(np.array([1.0, 2.0]))\n",
|
1259 | 1259 | "assert len(rec) == 10\n",
|
1260 |
| - "rec = vec.search([1.0, 2.0], k=4)\n", |
| 1260 | + "rec = vec.search([1.0, 2.0], limit=4)\n", |
1261 | 1261 | "assert len(rec) == 4\n",
|
1262 |
| - "rec = vec.search(k=4)\n", |
| 1262 | + "rec = vec.search(limit=4)\n", |
1263 | 1263 | "assert len(rec) == 4\n",
|
1264 |
| - "rec = vec.search([1.0, 2.0], k=4, filter={\"key2\":\"val2\"})\n", |
| 1264 | + "rec = vec.search([1.0, 2.0], limit=4, filter={\"key2\":\"val2\"})\n", |
1265 | 1265 | "assert len(rec) == 1\n",
|
1266 |
| - "rec = vec.search([1.0, 2.0], k=4, filter={\"key2\":\"does not exist\"})\n", |
| 1266 | + "rec = vec.search([1.0, 2.0], limit=4, filter={\"key2\":\"does not exist\"})\n", |
1267 | 1267 | "assert len(rec) == 0\n",
|
1268 |
| - "rec = vec.search(k=4, filter={\"key2\":\"does not exist\"})\n", |
| 1268 | + "rec = vec.search(limit=4, filter={\"key2\":\"does not exist\"})\n", |
1269 | 1269 | "assert len(rec) == 0\n",
|
1270 |
| - "rec = vec.search([1.0, 2.0], k=4, filter={\"key_1\":\"val_1\"})\n", |
| 1270 | + "rec = vec.search([1.0, 2.0], limit=4, filter={\"key_1\":\"val_1\"})\n", |
1271 | 1271 | "assert len(rec) == 1\n",
|
1272 | 1272 | "rec = vec.search([1.0, 2.0], filter={\"key_1\":\"val_1\", \"key_2\":\"val_2\"})\n",
|
1273 | 1273 | "assert len(rec) == 1\n",
|
1274 |
| - "rec = vec.search([1.0, 2.0], k=4, filter={\"key_1\":\"val_1\", \"key_2\":\"val_3\"})\n", |
| 1274 | + "rec = vec.search([1.0, 2.0], limit=4, filter={\"key_1\":\"val_1\", \"key_2\":\"val_3\"})\n", |
1275 | 1275 | "assert len(rec) == 0\n",
|
1276 | 1276 | "\n",
|
1277 |
| - "rec = vec.search([1.0, 2.0], k=4, filter=[{\"key_1\":\"val_1\"}, {\"key2\":\"val2\"}])\n", |
| 1277 | + "rec = vec.search([1.0, 2.0], limit=4, filter=[{\"key_1\":\"val_1\"}, {\"key2\":\"val2\"}])\n", |
1278 | 1278 | "assert len(rec) == 2\n",
|
1279 | 1279 | "\n",
|
1280 |
| - "rec = vec.search([1.0, 2.0], k=4, filter=[{\"key_1\":\"val_1\"}, {\"key2\":\"val2\"}, {\"no such key\": \"no such val\"}])\n", |
| 1280 | + "rec = vec.search([1.0, 2.0], limit=4, filter=[{\"key_1\":\"val_1\"}, {\"key2\":\"val2\"}, {\"no such key\": \"no such val\"}])\n", |
1281 | 1281 | "assert len(rec) == 2\n",
|
1282 | 1282 | "\n",
|
1283 | 1283 | "try:\n",
|
|
1306 | 1306 | "assert isinstance(rec[0][SEARCH_RESULT_METADATA_IDX], dict)\n",
|
1307 | 1307 | "assert rec[0][SEARCH_RESULT_DISTANCE_IDX] == 0.0009438353921149556\n",
|
1308 | 1308 | "\n",
|
1309 |
| - "rec = vec.search([1.0, 2.0], k=4, filter=[{\"key_1\":\"val_1\"}, {\"key2\":\"val2\"}])\n", |
| 1309 | + "rec = vec.search([1.0, 2.0], limit=4, filter=[{\"key_1\":\"val_1\"}, {\"key2\":\"val2\"}])\n", |
1310 | 1310 | "len(rec) == 2\n",
|
1311 | 1311 | "vec.delete_by_ids([rec[0][SEARCH_RESULT_ID_IDX]])\n",
|
1312 |
| - "rec = vec.search([1.0, 2.0], k=4, filter=[{\"key_1\":\"val_1\"}, {\"key2\":\"val2\"}])\n", |
| 1312 | + "rec = vec.search([1.0, 2.0], limit=4, filter=[{\"key_1\":\"val_1\"}, {\"key2\":\"val2\"}])\n", |
1313 | 1313 | "assert len(rec) == 1\n",
|
1314 | 1314 | "vec.delete_by_metadata([{\"key_1\":\"val_1\"}, {\"key2\":\"val2\"}])\n",
|
1315 |
| - "rec = vec.search([1.0, 2.0], k=4, filter=[{\"key_1\":\"val_1\"}, {\"key2\":\"val2\"}])\n", |
| 1315 | + "rec = vec.search([1.0, 2.0], limit=4, filter=[{\"key_1\":\"val_1\"}, {\"key2\":\"val2\"}])\n", |
1316 | 1316 | "assert len(rec) == 0\n",
|
1317 |
| - "rec = vec.search([1.0, 2.0], k=4, filter=[{\"key2\":\"val\"}])\n", |
| 1317 | + "rec = vec.search([1.0, 2.0], limit=4, filter=[{\"key2\":\"val\"}])\n", |
1318 | 1318 | "assert len(rec) == 4\n",
|
1319 | 1319 | "vec.delete_by_metadata([{\"key2\":\"val\"}])\n",
|
1320 |
| - "rec = vec.search([1.0, 2.0], k=4, filter=[{\"key2\":\"val\"}])\n", |
| 1320 | + "rec = vec.search([1.0, 2.0], limit=4, filter=[{\"key2\":\"val\"}])\n", |
1321 | 1321 | "len(rec) == 0\n",
|
1322 | 1322 | "\n",
|
1323 | 1323 | "assert not vec.table_is_empty()\n",
|
|
0 commit comments