
•Query server. A query server hosts query components and index
partitions
Query components return search results. Each query component is part
of an index partition, which is associated with a specific property
database that contains metadata associated with a specific set of
crawled content. You can make an index partition redundant by adding
"mirror" query components to an index partition and putting them on
different farm servers.
Index partitions are groups of query components, each of which holds a
subset of the full text index and returns search results. Each index
partition is associated with a specific property database that
contains metadata that is associated with a specific set of crawled
content. You can decide which servers in a farm will handle queries by
creating a query component on that server. If you want to balance the
load of handling queries across multiple farm servers, add query
components to an index partition and associate them with the servers
that you want to use to handle queries. For more information, see Add
or remove a query component. You can make an index partition redundant
by adding mirror query components to an index partition and putting
them on different query servers.
•Crawl server. A crawl server hosts crawl components and a search
administration component.
Crawl components process crawls of content sources, propagate the
resulting index files to query components, and add information about
the location and crawl schedule of content sources to their associated
crawl databases. Crawl components are associated with a single Search
service application. You can distribute the crawl load by adding crawl
components to different crawl servers. You can have as many crawl
components on a given crawl server as resources allow. If you have
many content locations, you can add crawl components and crawl
databases and dedicate them to specific content. Each crawl component
on a given crawl server should be associated with a separate crawl
database. For redundancy, we recommend that you have at least two
crawl components. Each crawl component should be set to crawl both
crawl databases. If a database grows to more than 25 million items, we
recommend that you add a new crawl database and crawl component. The
search administration component monitors incoming user actions and
updates the search administration database. Only one search
administration component is allowed per Search service application.The
search administration component can run on any server, preferably
either a crawl server or a query server.
http://technet.microsoft.com/en-gb/library/cc748824(v=office.14).aspx
dedicated server search
http://technet.microsoft.com/en-us/library/cc263144(v=office.12).aspx
bottom line its faster to index on another server and to query that server and giving you the power to have multiple Shared Services Provider (SSP), you can have it on the front end server but that means only one ssp. Seperating the functions into multiple servers means increase in speed and time to performe tasks. this is all under the same farm as you can see in the image above its more for mid to large scale. Rule is the more you seperate the servers functionality so they are dedicated to only that function the faster sharepoint becomes but also the cost ;)