This is absolutely possible, but it's not very simple. First, you simply need to create a bot script that watches for the !V typing event from users, such as:
ON *:TEXT:!V *:#: {
; Everything you want the bot to do goes in here
}
You can set the '#channelname' to anything, but if you want the bot to respond to all requests in any channel, you would simply leave it as '#'.
The next thing on your list is comparing a search query within a set of text and whether or not the query exists. This is fairly simple to do as well:
ON *:TEXT:!V *:#: {
var %nickname = $nick, %string = $1-, %query = $gettok(%string,1,45), %searchin = $gettok(%string,2-,45)
if (%query iswm %searchin) {
.msg # %nickname $+ : " $+ %query $+ " was found in " $+ %searchin $+ ".
return
}
.msg # %nickname $+ : Search query " $+ %query $+ " was not found in your request: " $+ %searchin $+ ".
}
Now, what you're trying to accomplish is most likely even more complicated than this, such as highlighting/making-bold the spots in the search text where the query matches, and your request to have it search a website. You will want to read up on sockets and how to download binary information and strip html tags as well.
Good luck!