I'm starting implementation of the Mnet enabled Global Search. Here are some ideas I'm upon to put in :
- The mnet harvesting will be separately disabled using an additional block_search configuration switch.
- In order to protect remote hosts against massive load attacks comming from heavy search activity, an additional configuration parameter should limit the amount of records that will be fetched through the network call.
Mnet search will add a new mnet service so called "mnet_search".
Publishing that service will allow to accept remote query calls and give back a hitset.
Suscribing to this service allows launching queries through the network.
The first version of the mnet search capability will be using synchronous calls, from the local querier, which is not that performant. I am thinking about using parallel Ajax queries to get remote results and aggregate results client side. Asynchronous calls will anyway use a local wrapper that must suscribe to the mnet_search service. This will be the next step. A new config switch will allow to choose how this harvesting is processed.
As most probable, synchronous calls will aggregate hits to the local hitset before results caching, thus navigating using the search cache WILL NOT throw network calls again.
OPEN QUESTION : Should aggregated results better be presented "by host", or should results be ordered by relevance ?
More news as development runs ahead.