You need to create an interface.
interface Namer {
name: String! @search
}
type Book implements Namer {...}
type Movie implements Namer{...}
type Podcast implements Namer{...}
Then you can query something with somehting like that
query foo ($name:String!){
queryNamer(filter: {name:$name}) {
name
__typename
... on Book {
#book's field names here
}
... on Podcast {
}
}
}