|  | @@ -0,0 +1,163 @@
 | 
	
		
			
				|  |  | +setup:
 | 
	
		
			
				|  |  | +  - requires:
 | 
	
		
			
				|  |  | +      capabilities:
 | 
	
		
			
				|  |  | +        - method: POST
 | 
	
		
			
				|  |  | +          path: /_search
 | 
	
		
			
				|  |  | +          capabilities: [ dense_vector_docvalue_fields ]
 | 
	
		
			
				|  |  | +      test_runner_features: [ capabilities, close_to ]
 | 
	
		
			
				|  |  | +      reason: Capability required to run test
 | 
	
		
			
				|  |  | +  - do:
 | 
	
		
			
				|  |  | +      indices.create:
 | 
	
		
			
				|  |  | +        index: test
 | 
	
		
			
				|  |  | +        body:
 | 
	
		
			
				|  |  | +          mappings:
 | 
	
		
			
				|  |  | +            properties:
 | 
	
		
			
				|  |  | +              name:
 | 
	
		
			
				|  |  | +                type: keyword
 | 
	
		
			
				|  |  | +              vector1:
 | 
	
		
			
				|  |  | +                type: dense_vector
 | 
	
		
			
				|  |  | +                element_type: float
 | 
	
		
			
				|  |  | +                dims: 5
 | 
	
		
			
				|  |  | +                index: true
 | 
	
		
			
				|  |  | +              vector2:
 | 
	
		
			
				|  |  | +                type: dense_vector
 | 
	
		
			
				|  |  | +                element_type: float
 | 
	
		
			
				|  |  | +                dims: 5
 | 
	
		
			
				|  |  | +                index: false
 | 
	
		
			
				|  |  | +              vector3:
 | 
	
		
			
				|  |  | +                type: dense_vector
 | 
	
		
			
				|  |  | +                element_type: byte
 | 
	
		
			
				|  |  | +                dims: 5
 | 
	
		
			
				|  |  | +                index: true
 | 
	
		
			
				|  |  | +              vector4:
 | 
	
		
			
				|  |  | +                type: dense_vector
 | 
	
		
			
				|  |  | +                element_type: byte
 | 
	
		
			
				|  |  | +                dims: 5
 | 
	
		
			
				|  |  | +                index: false
 | 
	
		
			
				|  |  | +              vector5:
 | 
	
		
			
				|  |  | +                type: dense_vector
 | 
	
		
			
				|  |  | +                element_type: bit
 | 
	
		
			
				|  |  | +                dims: 40
 | 
	
		
			
				|  |  | +                index: true
 | 
	
		
			
				|  |  | +              vector6:
 | 
	
		
			
				|  |  | +                type: dense_vector
 | 
	
		
			
				|  |  | +                element_type: bit
 | 
	
		
			
				|  |  | +                dims: 40
 | 
	
		
			
				|  |  | +                index: false
 | 
	
		
			
				|  |  | +  - do:
 | 
	
		
			
				|  |  | +      index:
 | 
	
		
			
				|  |  | +        index: test
 | 
	
		
			
				|  |  | +        id: "1"
 | 
	
		
			
				|  |  | +        body:
 | 
	
		
			
				|  |  | +          name: cow.jpg
 | 
	
		
			
				|  |  | +          vector1: [230.0, 300.33, -34.8988, 15.555, -200.0]
 | 
	
		
			
				|  |  | +          vector2: [130.0, 115.0, -1.02, 15.555, -100.0]
 | 
	
		
			
				|  |  | +          vector3: [-1, 100, -13, 15, -128]
 | 
	
		
			
				|  |  | +          vector4: [-1, 50, -1, 1, 120]
 | 
	
		
			
				|  |  | +          vector5: [1, 111, -13, 15, -128]
 | 
	
		
			
				|  |  | +          vector6: [-1, 11, 0, 12, 111]
 | 
	
		
			
				|  |  | +  - do:
 | 
	
		
			
				|  |  | +      index:
 | 
	
		
			
				|  |  | +        index: test
 | 
	
		
			
				|  |  | +        id: "2"
 | 
	
		
			
				|  |  | +        body:
 | 
	
		
			
				|  |  | +          name: moose.jpg
 | 
	
		
			
				|  |  | +          vector1: [-0.5, 100.0, -13, 14.8, -156.0]
 | 
	
		
			
				|  |  | +          vector4: [-1, 50, -1, 1, 120]
 | 
	
		
			
				|  |  | +          vector5: [1, 111, -13, 15, -128]
 | 
	
		
			
				|  |  | +          vector6: null
 | 
	
		
			
				|  |  | +  - do:
 | 
	
		
			
				|  |  | +      index:
 | 
	
		
			
				|  |  | +        index: test
 | 
	
		
			
				|  |  | +        id: "3"
 | 
	
		
			
				|  |  | +        body:
 | 
	
		
			
				|  |  | +          name: rabbit.jpg
 | 
	
		
			
				|  |  | +          vector2: [130.0, 115.0, -1.02, 15.555, -100.0]
 | 
	
		
			
				|  |  | +          vector3: [-1, 100, -13, 15, -128]
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  - do:
 | 
	
		
			
				|  |  | +      indices.refresh: {}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +---
 | 
	
		
			
				|  |  | +"Enable docvalue_fields parameter for dense_vector fields":
 | 
	
		
			
				|  |  | +  - requires:
 | 
	
		
			
				|  |  | +      capabilities:
 | 
	
		
			
				|  |  | +        - method: POST
 | 
	
		
			
				|  |  | +          path: /_search
 | 
	
		
			
				|  |  | +          capabilities: [ dense_vector_docvalue_fields ]
 | 
	
		
			
				|  |  | +      test_runner_features: capabilities
 | 
	
		
			
				|  |  | +      reason: "Support for dense vector doc value fields capability required"
 | 
	
		
			
				|  |  | +  - do:
 | 
	
		
			
				|  |  | +      search:
 | 
	
		
			
				|  |  | +        _source: false
 | 
	
		
			
				|  |  | +        index: test
 | 
	
		
			
				|  |  | +        body:
 | 
	
		
			
				|  |  | +          docvalue_fields: [name, vector1, vector2, vector3, vector4, vector5, vector6]
 | 
	
		
			
				|  |  | +          sort: name
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  - match: {hits.hits.0._id: "1"}
 | 
	
		
			
				|  |  | +  - match: {hits.hits.0.fields.name.0: "cow.jpg"}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  - length: {hits.hits.0.fields.vector1.0: 5}
 | 
	
		
			
				|  |  | +  - length: {hits.hits.0.fields.vector2.0: 5}
 | 
	
		
			
				|  |  | +  - length: {hits.hits.0.fields.vector3.0: 5}
 | 
	
		
			
				|  |  | +  - length: {hits.hits.0.fields.vector4.0: 5}
 | 
	
		
			
				|  |  | +  - length: {hits.hits.0.fields.vector5.0: 5}
 | 
	
		
			
				|  |  | +  - length: {hits.hits.0.fields.vector6.0: 5}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  - close_to: { hits.hits.0.fields.vector1.0.0: { value: 230.0, error: 0.001 } }
 | 
	
		
			
				|  |  | +  - close_to: { hits.hits.0.fields.vector1.0.1: { value: 300.33, error: 0.001 } }
 | 
	
		
			
				|  |  | +  - close_to: { hits.hits.0.fields.vector1.0.2: { value: -34.8988, error: 0.001 } }
 | 
	
		
			
				|  |  | +  - close_to: { hits.hits.0.fields.vector1.0.3: { value: 15.555, error: 0.001 } }
 | 
	
		
			
				|  |  | +  - close_to: { hits.hits.0.fields.vector1.0.4: { value: -200.0, error: 0.001 } }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  - close_to: { hits.hits.0.fields.vector2.0.0: { value: 130.0, error: 0.001 } }
 | 
	
		
			
				|  |  | +  - close_to: { hits.hits.0.fields.vector2.0.1: { value: 115.0, error: 0.001 } }
 | 
	
		
			
				|  |  | +  - close_to: { hits.hits.0.fields.vector2.0.2: { value: -1.02, error: 0.001 } }
 | 
	
		
			
				|  |  | +  - close_to: { hits.hits.0.fields.vector2.0.3: { value: 15.555, error: 0.001 } }
 | 
	
		
			
				|  |  | +  - close_to: { hits.hits.0.fields.vector2.0.4: { value: -100.0, error: 0.001 } }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  - match: {hits.hits.0.fields.vector3.0: [-1, 100, -13, 15, -128]}
 | 
	
		
			
				|  |  | +  - match: {hits.hits.0.fields.vector4.0: [-1, 50, -1, 1, 120]}
 | 
	
		
			
				|  |  | +  - 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"}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  - length: {hits.hits.1.fields.vector1.0: 5}
 | 
	
		
			
				|  |  | +  - length: {hits.hits.1.fields.vector4.0: 5}
 | 
	
		
			
				|  |  | +  - length: {hits.hits.1.fields.vector5.0: 5}
 | 
	
		
			
				|  |  | +  - match: {hits.hits.1.fields.vector2: null}
 | 
	
		
			
				|  |  | +  - match: {hits.hits.1.fields.vector3: null}
 | 
	
		
			
				|  |  | +  - match: {hits.hits.1.fields.vector6: null}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  - close_to: { hits.hits.1.fields.vector1.0.0: { value: -0.5, error: 0.001 } }
 | 
	
		
			
				|  |  | +  - close_to: { hits.hits.1.fields.vector1.0.1: { value: 100.0, error: 0.001 } }
 | 
	
		
			
				|  |  | +  - close_to: { hits.hits.1.fields.vector1.0.2: { value: -13, error: 0.001 } }
 | 
	
		
			
				|  |  | +  - close_to: { hits.hits.1.fields.vector1.0.3: { value: 14.8, error: 0.001 } }
 | 
	
		
			
				|  |  | +  - close_to: { hits.hits.1.fields.vector1.0.4: { value: -156.0, error: 0.001 } }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  - 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"}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  - length: {hits.hits.2.fields.vector2.0: 5}
 | 
	
		
			
				|  |  | +  - length: {hits.hits.2.fields.vector3.0: 5}
 | 
	
		
			
				|  |  | +  - match: {hits.hits.2.fields.vector1: null}
 | 
	
		
			
				|  |  | +  - match: {hits.hits.2.fields.vector4: null}
 | 
	
		
			
				|  |  | +  - match: {hits.hits.2.fields.vector5: null}
 | 
	
		
			
				|  |  | +  - match: {hits.hits.2.fields.vector6: null}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  - close_to: { hits.hits.2.fields.vector2.0.0: { value: 130.0, error: 0.001 } }
 | 
	
		
			
				|  |  | +  - close_to: { hits.hits.2.fields.vector2.0.1: { value: 115.0, error: 0.001 } }
 | 
	
		
			
				|  |  | +  - close_to: { hits.hits.2.fields.vector2.0.2: { value: -1.02, error: 0.001 } }
 | 
	
		
			
				|  |  | +  - close_to: { hits.hits.2.fields.vector2.0.3: { value: 15.555, error: 0.001 } }
 | 
	
		
			
				|  |  | +  - 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]}
 |