github.com/weaviate/weaviate@v1.24.6/adapters/handlers/graphql/local/get/explore_argument.go (about) 1 // _ _ 2 // __ _____ __ ___ ___ __ _| |_ ___ 3 // \ \ /\ / / _ \/ _` \ \ / / |/ _` | __/ _ \ 4 // \ V V / __/ (_| |\ V /| | (_| | || __/ 5 // \_/\_/ \___|\__,_| \_/ |_|\__,_|\__\___| 6 // 7 // Copyright © 2016 - 2024 Weaviate B.V. All rights reserved. 8 // 9 // CONTACT: hello@weaviate.io 10 // 11 12 package get 13 14 import ( 15 "fmt" 16 17 "github.com/tailor-inc/graphql" 18 "github.com/weaviate/weaviate/adapters/handlers/graphql/local/common_filters" 19 20 "github.com/weaviate/weaviate/adapters/handlers/graphql/descriptions" 21 ) 22 23 func nearVectorArgument(className string) *graphql.ArgumentConfig { 24 return common_filters.NearVectorArgument("GetObjects", className) 25 } 26 27 func nearObjectArgument(className string) *graphql.ArgumentConfig { 28 return common_filters.NearObjectArgument("GetObjects", className) 29 } 30 31 func nearTextFields(prefix string) graphql.InputObjectConfigFieldMap { 32 nearTextFields := graphql.InputObjectConfigFieldMap{ 33 "concepts": &graphql.InputObjectFieldConfig{ 34 // Description: descriptions.Concepts, 35 Type: graphql.NewNonNull(graphql.NewList(graphql.String)), 36 }, 37 "moveTo": &graphql.InputObjectFieldConfig{ 38 Description: descriptions.VectorMovement, 39 Type: graphql.NewInputObject( 40 graphql.InputObjectConfig{ 41 Name: fmt.Sprintf("%sMoveTo", prefix), 42 Fields: movementInp(fmt.Sprintf("%sMoveTo", prefix)), 43 }), 44 }, 45 "certainty": &graphql.InputObjectFieldConfig{ 46 Description: descriptions.Certainty, 47 Type: graphql.Float, 48 }, 49 "distance": &graphql.InputObjectFieldConfig{ 50 Description: descriptions.Distance, 51 Type: graphql.Float, 52 }, 53 "moveAwayFrom": &graphql.InputObjectFieldConfig{ 54 Description: descriptions.VectorMovement, 55 Type: graphql.NewInputObject( 56 graphql.InputObjectConfig{ 57 Name: fmt.Sprintf("%sMoveAwayFrom", prefix), 58 Fields: movementInp(fmt.Sprintf("%sMoveAwayFrom", prefix)), 59 }), 60 }, 61 } 62 return nearTextFields 63 } 64 65 func movementInp(prefix string) graphql.InputObjectConfigFieldMap { 66 return graphql.InputObjectConfigFieldMap{ 67 "concepts": &graphql.InputObjectFieldConfig{ 68 Description: descriptions.Keywords, 69 Type: graphql.NewList(graphql.String), 70 }, 71 "objects": &graphql.InputObjectFieldConfig{ 72 Description: "objects", 73 Type: graphql.NewList(objectsInpObj(prefix)), 74 }, 75 "force": &graphql.InputObjectFieldConfig{ 76 Description: descriptions.Force, 77 Type: graphql.NewNonNull(graphql.Float), 78 }, 79 } 80 } 81 82 func objectsInpObj(prefix string) *graphql.InputObject { 83 return graphql.NewInputObject( 84 graphql.InputObjectConfig{ 85 Name: fmt.Sprintf("%sMovementObjectsInpObj", prefix), 86 Fields: graphql.InputObjectConfigFieldMap{ 87 "id": &graphql.InputObjectFieldConfig{ 88 Type: graphql.String, 89 Description: "id of an object", 90 }, 91 "beacon": &graphql.InputObjectFieldConfig{ 92 Type: graphql.String, 93 Description: descriptions.Beacon, 94 }, 95 }, 96 Description: "Movement Object", 97 }, 98 ) 99 }