@@ -1682,6 +1682,109 @@ setup:
1682
1682
- match : { test_index.mappings.properties.embedding.index_options.confidence_interval: 0.3 }
1683
1683
1684
1684
---
1685
+ " Allowed dense vector updates on same type but different other index_options, bbq_disk " :
1686
+ - requires :
1687
+ cluster_features : " mapper.vectors.diskbbq_on_disk_rescoring"
1688
+ reason : ' diskbbq needs to support on-disk rescoring'
1689
+ - requires :
1690
+ test_runner_features : [ contains ]
1691
+ - do :
1692
+ indices.create :
1693
+ index : test_index
1694
+
1695
+ - do :
1696
+ indices.put_mapping :
1697
+ index : test_index
1698
+ body :
1699
+ properties :
1700
+ embedding :
1701
+ type : dense_vector
1702
+ dims : 64
1703
+ index_options :
1704
+ type : bbq_disk
1705
+
1706
+ - do :
1707
+ indices.get_mapping :
1708
+ index : test_index
1709
+
1710
+ - match : { test_index.mappings.properties.embedding.type: dense_vector }
1711
+ - match : { test_index.mappings.properties.embedding.index_options.type: bbq_disk }
1712
+
1713
+ - do :
1714
+ index :
1715
+ index : test_index
1716
+ id : " 1"
1717
+ body :
1718
+ embedding : [0.077, 0.32 , -0.205, 0.63 , 0.032, 0.201, 0.167, -0.313,
1719
+ 0.176, 0.531, -0.375, 0.334, -0.046, 0.078, -0.349, 0.272,
1720
+ 0.307, -0.083, 0.504, 0.255, -0.404, 0.289, -0.226, -0.132,
1721
+ -0.216, 0.49 , 0.039, 0.507, -0.307, 0.107, 0.09 , -0.265,
1722
+ -0.285, 0.336, -0.272, 0.369, -0.282, 0.086, -0.132, 0.475,
1723
+ -0.224, 0.203, 0.439, 0.064, 0.246, -0.396, 0.297, 0.242,
1724
+ -0.028, 0.321, -0.022, -0.009, -0.001 , 0.031, -0.533, 0.45,
1725
+ -0.683, 1.331, 0.194, -0.157, -0.1 , -0.279, -0.098, -0.176]
1726
+ - do :
1727
+ indices.flush :
1728
+ index : test_index
1729
+
1730
+ - do :
1731
+ indices.put_mapping :
1732
+ index : test_index
1733
+ body :
1734
+ properties :
1735
+ embedding :
1736
+ type : dense_vector
1737
+ dims : 64
1738
+ index_options :
1739
+ type : bbq_disk
1740
+ on_disk_rescoring : true
1741
+
1742
+ - do :
1743
+ indices.get_mapping :
1744
+ index : test_index
1745
+
1746
+ - match : { test_index.mappings.properties.embedding.type: dense_vector }
1747
+ - match : { test_index.mappings.properties.embedding.index_options.type: bbq_disk }
1748
+ - match : { test_index.mappings.properties.embedding.index_options.on_disk_rescoring: true }
1749
+
1750
+ - do :
1751
+ index :
1752
+ index : test_index
1753
+ id : " 2"
1754
+ body :
1755
+ embedding : [0.196, 0.514, 0.039, 0.555, -0.042, 0.242, 0.463, -0.348,
1756
+ -0.08 , 0.442, -0.067, -0.05 , -0.001, 0.298, -0.377, 0.048,
1757
+ 0.307, 0.159, 0.278, 0.119, -0.057, 0.333, -0.289, -0.438,
1758
+ -0.014, 0.361, -0.169, 0.292, -0.229, 0.123, 0.031, -0.138,
1759
+ -0.139, 0.315, -0.216, 0.322, -0.445, -0.059, 0.071, 0.429,
1760
+ -0.602, -0.142, 0.11 , 0.192, 0.259, -0.241, 0.181, -0.166,
1761
+ 0.082, 0.107, -0.05 , 0.155, 0.011, 0.161, -0.486, 0.569,
1762
+ -0.489, 0.901, 0.208, 0.011, -0.209, -0.153, -0.27 , -0.013]
1763
+ - do :
1764
+ indices.flush :
1765
+ index : test_index
1766
+ - do :
1767
+ indices.refresh : { }
1768
+ - do :
1769
+ search :
1770
+ index : test_index
1771
+ body :
1772
+ knn :
1773
+ field : embedding
1774
+ query_vector : [ 0.128, 0.067, -0.08 , 0.395, -0.11 , -0.259, 0.473, -0.393,
1775
+ 0.292, 0.571, -0.491, 0.444, -0.288, 0.198, -0.343, 0.015,
1776
+ 0.232, 0.088, 0.228, 0.151, -0.136, 0.236, -0.273, -0.259,
1777
+ -0.217, 0.359, -0.207, 0.352, -0.142, 0.192, -0.061, -0.17 ,
1778
+ -0.343, 0.189, -0.221, 0.32 , -0.301, -0.1 , 0.005, 0.232,
1779
+ -0.344, 0.136, 0.252, 0.157, -0.13 , -0.244, 0.193, -0.034,
1780
+ -0.12 , -0.193, -0.102, 0.252, -0.185, -0.167, -0.575, 0.582,
1781
+ -0.426, 0.983, 0.212, 0.204, 0.03 , -0.276, -0.425, -0.158 ]
1782
+ k : 2
1783
+ num_candidates : 2
1784
+
1785
+ - match : { hits.hits.0._id: "1" }
1786
+ - match : { hits.hits.1._id: "2" }
1787
+ ---
1685
1788
" Test create and update dense vector mapping to int4 with per-doc indexing and flush " :
1686
1789
- requires :
1687
1790
cluster_features : " gte_v8.16.0"
0 commit comments