Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
c72eda6
Add BFloat16 raw vector format to bbq_hnsw and bbq_disk
thecoop Oct 10, 2025
b4c682a
Remove tripping assertion
thecoop Oct 10, 2025
803dfc1
Enable direct IO and bfloat16
thecoop Oct 10, 2025
c2c52e7
[CI] Auto commit changes from spotless
Oct 10, 2025
05f0b71
Merge branch 'bbq_hnsw-bfloat16' into hnsw-directio-bfloat16-enabled
thecoop Oct 10, 2025
2f8e975
Remove tripping assertion
thecoop Oct 10, 2025
4030f47
PR comments
thecoop Oct 10, 2025
17a58a2
Merge branch 'bbq_hnsw-bfloat16' into hnsw-directio-bfloat16-enabled
thecoop Oct 10, 2025
e910cd5
Propagate files across
thecoop Oct 10, 2025
5ef4cf1
PR comments
thecoop Oct 10, 2025
69f52cb
Turn the generic format into a proper format
thecoop Oct 10, 2025
2c31186
Merge branch 'bbq_hnsw-bfloat16' into hnsw-directio-bfloat16-enabled
thecoop Oct 10, 2025
5ce914d
More propagation
thecoop Oct 10, 2025
2e815fe
Add a basic generic HNSW implementation
thecoop Oct 10, 2025
9c81e33
Relax unit vector check for bfloat16
thecoop Oct 13, 2025
90ca761
Merge branch 'main' into bbq_hnsw-bfloat16
thecoop Oct 13, 2025
ce690ff
Add tests for ES93HnswVectorsFormat
thecoop Oct 13, 2025
1de5bd8
Remove unquantized format
thecoop Oct 13, 2025
e54d4c6
Consolidate parameter order
thecoop Oct 13, 2025
80d9809
Use the correct values
thecoop Oct 13, 2025
d6491a2
Merge branch 'main' into bbq_hnsw-bfloat16
thecoop Oct 14, 2025
74bb130
Remove unneeded method
thecoop Oct 14, 2025
37e3257
Merge commit '74bb130' into bbq_hnsw-bfloat16-format
thecoop Oct 14, 2025
4c669ec
Merge branch 'main' into bbq_hnsw-bfloat16-format
thecoop Oct 14, 2025
be062e7
Merge commit '4c669ec513f' into hnsw-directio-bfloat16-enabled
thecoop Oct 14, 2025
38183b7
Use bfloat16/directio in rescore tests
thecoop Oct 14, 2025
5277641
Test updates
thecoop Oct 14, 2025
201ed46
Get parameters the right way round
thecoop Oct 15, 2025
9258804
Merge branch 'main' into hnsw-directio-bfloat16-enabled
thecoop Oct 15, 2025
5e6ddc9
Use ElementType
thecoop Oct 15, 2025
0b8fcf2
Add basic HNSW support
thecoop Oct 15, 2025
a3e7cb6
Merge branch 'main' into hnsw-directio-bfloat16-enabled
thecoop Oct 23, 2025
2766e4b
Use new formats
thecoop Oct 23, 2025
f352602
Add normal HNSW
thecoop Oct 23, 2025
415bc94
Merge branch 'main' into hnsw-directio-bfloat16-enabled
thecoop Oct 24, 2025
ca4551c
Update for merge
thecoop Oct 24, 2025
8f92014
Update tests
thecoop Oct 24, 2025
8c697c3
Leave semantic text and rank vectors alone for the moment
thecoop Oct 24, 2025
99395e5
Need some basic support in downstream classes
thecoop Oct 24, 2025
297db11
Test updates
thecoop Oct 24, 2025
5965de3
Non-quantized HNSW doesn't need direct IO
thecoop Oct 24, 2025
ba7427f
Merge branch 'main' into hnsw-directio-bfloat16-enabled
thecoop Oct 30, 2025
2bd4423
Use DenseVectorFieldMapper ElementType
thecoop Oct 30, 2025
a87ffd7
Update docs/changelog/135940.yaml
thecoop Oct 30, 2025
e871fbc
Some updates
thecoop Oct 30, 2025
4f2f673
Provide some more implementations
thecoop Oct 30, 2025
8395687
Test and fixes
thecoop Oct 30, 2025
a8de10f
Merge branch 'main' into hnsw-directio-bfloat16-enabled
thecoop Oct 30, 2025
9eaa152
PR comments
thecoop Oct 31, 2025
7b36722
Merge branch 'main' into hnsw-directio-bfloat16-enabled
thecoop Nov 5, 2025
6bef1f0
Add assert for an interface it shouldn't implement yet
thecoop Nov 5, 2025
1e905de
Add case
thecoop Nov 5, 2025
e2c2730
Base64 support
thecoop Nov 5, 2025
cc414b0
Merge branch 'main' into hnsw-directio-bfloat16-enabled
thecoop Nov 5, 2025
ee46e00
Add a feature flag for the new formats
thecoop Nov 5, 2025
9db655c
Merge branch 'main' into hnsw-directio-bfloat16-enabled
thecoop Nov 6, 2025
dce8dd8
Update the feature flag & cluster feature names
thecoop Nov 6, 2025
66aa767
Remove obsoleted yaml tests
thecoop Nov 6, 2025
eed749e
Turn off yaml tests for now
thecoop Nov 6, 2025
ab5ee25
Remove index version (not needed yet)
thecoop Nov 7, 2025
2a58d2f
Don't accept the rescore option if the flag is not enabled
thecoop Nov 7, 2025
749780d
Add generic vector flag to the yaml runners
thecoop Nov 7, 2025
2a0d9ba
Merge branch 'main' into hnsw-directio-bfloat16-enabled
thecoop Nov 7, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,8 @@ public class CcsCommonYamlTestSuiteIT extends ESClientYamlSuiteTestCase {
// geohex_grid requires gold license
.setting("xpack.license.self_generated.type", "trial")
.feature(FeatureFlag.TIME_SERIES_MODE)
.feature(FeatureFlag.SYNTHETIC_VECTORS);
.feature(FeatureFlag.SYNTHETIC_VECTORS)
.feature(FeatureFlag.GENERIC_VECTOR_FORMAT);

private static ElasticsearchCluster remoteCluster = ElasticsearchCluster.local()
.name(REMOTE_CLUSTER_NAME)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,7 @@ public class RcsCcsCommonYamlTestSuiteIT extends ESClientYamlSuiteTestCase {
.setting("xpack.security.remote_cluster_client.ssl.enabled", "false")
.feature(FeatureFlag.TIME_SERIES_MODE)
.feature(FeatureFlag.SYNTHETIC_VECTORS)
.feature(FeatureFlag.GENERIC_VECTOR_FORMAT)
.user("test_admin", "x-pack-test-password");

private static ElasticsearchCluster fulfillingCluster = ElasticsearchCluster.local()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ public class SmokeTestMultiNodeClientYamlTestSuiteIT extends ESClientYamlSuiteTe
.feature(FeatureFlag.DOC_VALUES_SKIPPER)
.feature(FeatureFlag.SYNTHETIC_VECTORS)
.feature(FeatureFlag.RANDOM_SAMPLING)
.feature(FeatureFlag.GENERIC_VECTOR_FORMAT)
.build();

public SmokeTestMultiNodeClientYamlTestSuiteIT(@Name("yaml") ClientYamlTestCandidate testCandidate) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ public class ClientYamlTestSuiteIT extends ESClientYamlSuiteTestCase {
.feature(FeatureFlag.DOC_VALUES_SKIPPER)
.feature(FeatureFlag.SYNTHETIC_VECTORS)
.feature(FeatureFlag.RANDOM_SAMPLING)
.feature(FeatureFlag.GENERIC_VECTOR_FORMAT)
.build();

public ClientYamlTestSuiteIT(@Name("yaml") ClientYamlTestCandidate testCandidate) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,6 @@ setup:
- match: {hits.hits.0.fields.vector5.0: [1, 111, -13, 15, -128]}
- match: {hits.hits.0.fields.vector6.0: [-1, 11, 0, 12, 111]}


- match: {hits.hits.1._id: "2"}
- match: {hits.hits.1.fields.name.0: "moose.jpg"}

Expand All @@ -143,7 +142,6 @@ setup:
- match: {hits.hits.1.fields.vector4.0: [-1, 50, -1, 1, 120]}
- match: {hits.hits.1.fields.vector5.0: [1, 111, -13, 15, -128]}


- match: {hits.hits.2._id: "3"}
- match: {hits.hits.2.fields.name.0: "rabbit.jpg"}

Expand All @@ -161,3 +159,103 @@ setup:
- close_to: { hits.hits.2.fields.vector2.0.4: { value: -100.0, error: 0.001 } }

- match: {hits.hits.2.fields.vector3.0: [-1, 100, -13, 15, -128]}

---
"dense_vector docvalues with bfloat16":
- requires:
cluster_features: [ "mapper.vectors.generic_vector_format" ]
reason: Needs generic vector support
- do:
indices.create:
index: test-bfloat16
body:
mappings:
properties:
name:
type: keyword
vector7:
type: dense_vector
element_type: bfloat16
dims: 5
index: true
vector8:
type: dense_vector
element_type: bfloat16
dims: 5
index: false

- do:
index:
index: test-bfloat16
id: "1"
body:
name: cow.jpg
vector7: [230.0, 300.33, -34.8988, 15.555, -200.0]
vector8: [130.0, 115.0, -1.02, 15.555, -100.0]
- do:
index:
index: test-bfloat16
id: "2"
body:
name: moose.jpg
vector7: [-0.5, 100.0, -13, 14.8, -156.0]
- do:
index:
index: test-bfloat16
id: "3"
body:
name: rabbit.jpg
vector8: [130.0, 115.0, -1.02, 15.555, -100.0]

- do:
indices.refresh: {}

- do:
search:
_source: false
index: test-bfloat16
body:
docvalue_fields: [name, vector7, vector8]
sort: name

- match: {hits.hits.0._id: "1"}
- match: {hits.hits.0.fields.name.0: "cow.jpg"}

- length: {hits.hits.0.fields.vector7.0: 5}
- length: {hits.hits.0.fields.vector8.0: 5}

- close_to: { hits.hits.0.fields.vector7.0.0: { value: 230.0, error: 0.1 } }
- close_to: { hits.hits.0.fields.vector7.0.1: { value: 300.33, error: 0.1 } }
- close_to: { hits.hits.0.fields.vector7.0.2: { value: -34.8988, error: 0.1 } }
- close_to: { hits.hits.0.fields.vector7.0.3: { value: 15.555, error: 0.1 } }
- close_to: { hits.hits.0.fields.vector7.0.4: { value: -200.0, error: 0.1 } }

- close_to: { hits.hits.0.fields.vector8.0.0: { value: 130.0, error: 0.1 } }
- close_to: { hits.hits.0.fields.vector8.0.1: { value: 115.0, error: 0.1 } }
- close_to: { hits.hits.0.fields.vector8.0.2: { value: -1.02, error: 0.1 } }
- close_to: { hits.hits.0.fields.vector8.0.3: { value: 15.555, error: 0.1 } }
- close_to: { hits.hits.0.fields.vector8.0.4: { value: -100.0, error: 0.1 } }

- match: {hits.hits.1._id: "2"}
- match: {hits.hits.1.fields.name.0: "moose.jpg"}

- length: {hits.hits.1.fields.vector7.0: 5}
- match: {hits.hits.1.fields.vector8: null}

- close_to: { hits.hits.1.fields.vector7.0.0: { value: -0.5, error: 0.1 } }
- close_to: { hits.hits.1.fields.vector7.0.1: { value: 100.0, error: 0.1 } }
- close_to: { hits.hits.1.fields.vector7.0.2: { value: -13, error: 0.1 } }
- close_to: { hits.hits.1.fields.vector7.0.3: { value: 14.8, error: 0.1 } }
- close_to: { hits.hits.1.fields.vector7.0.4: { value: -156.0, error: 0.1 } }

- match: {hits.hits.2._id: "3"}
- match: {hits.hits.2.fields.name.0: "rabbit.jpg"}

- length: {hits.hits.2.fields.vector8.0: 5}
- match: {hits.hits.2.fields.vector7: null}

- close_to: { hits.hits.2.fields.vector8.0.0: { value: 130.0, error: 0.1 } }
- close_to: { hits.hits.2.fields.vector8.0.1: { value: 115.0, error: 0.1 } }
- close_to: { hits.hits.2.fields.vector8.0.2: { value: -1.02, error: 0.1 } }
- close_to: { hits.hits.2.fields.vector8.0.3: { value: 15.555, error: 0.1 } }
- close_to: { hits.hits.2.fields.vector8.0.4: { value: -100.0, error: 0.1 } }
Loading