Skip to content

Commit 8062f67

Browse files
committed
Add tests
1 parent 5361d29 commit 8062f67

File tree

2 files changed

+201
-0
lines changed

2 files changed

+201
-0
lines changed

x-pack/plugin/inference/src/yamlRestTest/resources/rest-api-spec/test/inference/10_semantic_text_field_mapping.yml

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -833,3 +833,104 @@ setup:
833833
type: int8_flat
834834

835835
- match: { status: 400 }
836+
837+
838+
---
839+
"Displaying default index_options with and without include_defaults":
840+
- requires:
841+
cluster_features: "semantic_text.index_options"
842+
reason: Index options introduced in 8.19.0
843+
844+
# Semantic text defaults to BBQ HNSW starting in 8.19.0/9.1.0
845+
- do:
846+
indices.create:
847+
index: test-index-options-dense
848+
body:
849+
settings:
850+
index:
851+
mapping:
852+
semantic_text:
853+
use_legacy_format: false
854+
mappings:
855+
properties:
856+
semantic_field:
857+
type: semantic_text
858+
inference_id: dense-inference-id-compatible-with-bbq
859+
860+
- do:
861+
indices.get_mapping:
862+
index: test-index-options-dense
863+
864+
- not_exists: test-index-options-dense.mappings.properties.semantic_field.index_options
865+
866+
- do:
867+
indices.get_field_mapping:
868+
index: test-index-options-dense
869+
fields: semantic_field
870+
include_defaults: true
871+
872+
- match: { "test-index-options-dense.mappings.semantic_field.mapping.semantic_field.index_options.dense_vector.type": "bbq_hnsw" }
873+
- match: { "test-index-options-dense.mappings.semantic_field.mapping.semantic_field.index_options.dense_vector.m": 16 }
874+
- match: { "test-index-options-dense.mappings.semantic_field.mapping.semantic_field.index_options.dense_vector.ef_construction": 100 }
875+
- match: { "test-index-options-dense.mappings.semantic_field.mapping.semantic_field.index_options.dense_vector.rescore_vector.oversample": 3 }
876+
877+
# Indices not compatible with BBQ for whatever reason will fall back to whatever `dense_vector` defaults are.
878+
- do:
879+
indices.create:
880+
index: test-index-options-dense-no-bbq
881+
body:
882+
settings:
883+
index:
884+
mapping:
885+
semantic_text:
886+
use_legacy_format: false
887+
mappings:
888+
properties:
889+
semantic_field:
890+
type: semantic_text
891+
inference_id: dense-inference-id
892+
893+
- do:
894+
indices.get_mapping:
895+
index: test-index-options-dense-no-bbq
896+
897+
- not_exists: test-index-options-dense-no-bbq.mappings.properties.semantic_field.index_options
898+
899+
- do:
900+
indices.get_field_mapping:
901+
index: test-index-options-dense-no-bbq
902+
fields: semantic_field
903+
include_defaults: true
904+
905+
- not_exists: test-index-options-dense-no-bbq.mappings.properties.semantic_field.index_options
906+
907+
# Sparse embeddings models do not have index options for semantic_text in 8.19/9.1.
908+
- do:
909+
indices.create:
910+
index: test-index-options-sparse
911+
body:
912+
settings:
913+
index:
914+
mapping:
915+
semantic_text:
916+
use_legacy_format: false
917+
mappings:
918+
properties:
919+
semantic_field:
920+
type: semantic_text
921+
inference_id: sparse-inference-id
922+
923+
- do:
924+
indices.get_mapping:
925+
index: test-index-options-sparse
926+
927+
- not_exists: test-index-options-sparse.mappings.properties.semantic_field.index_options
928+
929+
- do:
930+
indices.get_field_mapping:
931+
index: test-index-options-sparse
932+
fields: semantic_field
933+
include_defaults: true
934+
935+
- match: { "test-index-options-sparse.mappings.semantic_field.mapping.semantic_field.index_options": null }
936+

x-pack/plugin/inference/src/yamlRestTest/resources/rest-api-spec/test/inference/10_semantic_text_field_mapping_bwc.yml

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -736,3 +736,103 @@ setup:
736736
type: int8_flat
737737

738738
- match: { status: 400 }
739+
740+
---
741+
"Displaying default index_options with and without include_defaults":
742+
- requires:
743+
cluster_features: "semantic_text.index_options"
744+
reason: Index options introduced in 8.19.0
745+
746+
# Semantic text defaults to BBQ HNSW starting in 8.19.0/9.1.0
747+
- do:
748+
indices.create:
749+
index: test-index-options-dense
750+
body:
751+
settings:
752+
index:
753+
mapping:
754+
semantic_text:
755+
use_legacy_format: true
756+
mappings:
757+
properties:
758+
semantic_field:
759+
type: semantic_text
760+
inference_id: dense-inference-id-compatible-with-bbq
761+
762+
- do:
763+
indices.get_mapping:
764+
index: test-index-options-dense
765+
766+
- not_exists: test-index-options-dense.mappings.properties.semantic_field.index_options
767+
768+
- do:
769+
indices.get_field_mapping:
770+
index: test-index-options-dense
771+
fields: semantic_field
772+
include_defaults: true
773+
774+
- match: { "test-index-options-dense.mappings.semantic_field.mapping.semantic_field.index_options.dense_vector.type": "bbq_hnsw" }
775+
- match: { "test-index-options-dense.mappings.semantic_field.mapping.semantic_field.index_options.dense_vector.m": 16 }
776+
- match: { "test-index-options-dense.mappings.semantic_field.mapping.semantic_field.index_options.dense_vector.ef_construction": 100 }
777+
- match: { "test-index-options-dense.mappings.semantic_field.mapping.semantic_field.index_options.dense_vector.rescore_vector.oversample": 3 }
778+
779+
# Indices not compatible with BBQ for whatever reason will fall back to whatever `dense_vector` defaults are.
780+
- do:
781+
indices.create:
782+
index: test-index-options-dense-no-bbq
783+
body:
784+
settings:
785+
index:
786+
mapping:
787+
semantic_text:
788+
use_legacy_format: true
789+
mappings:
790+
properties:
791+
semantic_field:
792+
type: semantic_text
793+
inference_id: dense-inference-id
794+
795+
- do:
796+
indices.get_mapping:
797+
index: test-index-options-dense-no-bbq
798+
799+
- not_exists: test-index-options-dense-no-bbq.mappings.properties.semantic_field.index_options
800+
801+
- do:
802+
indices.get_field_mapping:
803+
index: test-index-options-dense-no-bbq
804+
fields: semantic_field
805+
include_defaults: true
806+
807+
- not_exists: test-index-options-dense-no-bbq.mappings.properties.semantic_field.index_options
808+
809+
# Sparse embeddings models do not have index options for semantic_text in 8.19/9.1.
810+
- do:
811+
indices.create:
812+
index: test-index-options-sparse
813+
body:
814+
settings:
815+
index:
816+
mapping:
817+
semantic_text:
818+
use_legacy_format: true
819+
mappings:
820+
properties:
821+
semantic_field:
822+
type: semantic_text
823+
inference_id: sparse-inference-id
824+
825+
- do:
826+
indices.get_mapping:
827+
index: test-index-options-sparse
828+
829+
- not_exists: test-index-options-sparse.mappings.properties.semantic_field.index_options
830+
831+
- do:
832+
indices.get_field_mapping:
833+
index: test-index-options-sparse
834+
fields: semantic_field
835+
include_defaults: true
836+
837+
- match: { "test-index-options-sparse.mappings.semantic_field.mapping.semantic_field.index_options": null }
838+

0 commit comments

Comments
 (0)