2015-01-12 13 views
7

È possibile forzare la ricerca personalizzata di Google per utilizzare la modalità verbatim come predefinita?Forza la modalità verbatim in Google Ricerca personalizzata

Per lo scopo in cui lo sto utilizzando, la modalità letterale produrrà i risultati più pertinenti ma gli utenti potrebbero non sapere di mettere la ricerca tra virgolette.

Ho un'idea che dovrei essere in grado di aggiungere le virgolette con Javascript prima che la stringa venga inviata a Google, ma non riesco a capire come.

Qualsiasi aiuto sarebbe molto apprezzato!

risposta

0

La soluzione migliore è utilizzare un proxy PHP o qualcosa di simile per modificare la query per aggiungere % 22 che trasforma la query in "query" prima di attivare la richiesta.

header('Content-type: application/json'); 

# Setup Base URL and array for Parameters 
$host = 'https://www.googleapis.com/customsearch/v1?'; 
$queries = array(); 
$queries['cx'] = "CSEKey"; 
$queries['key'] = "YourAPIKey"; 

# Setup possible incoming params 
if (isset($_GET['search_term'])) $queries['q'] = "%22"+ $_GET['search_term']+ "%22"; 
if (isset($_GET['result_count'])) $queries['result_count'] = $_GET['result_count']; 
if (isset($_GET['callback'])) $queries['callback'] = $_GET['callback']; 

# Build query and Final URL 
$queriesURL = http_build_query($queries); 
$finalURL = $host.$queriesURL; 
/* 
    DEBUG generated URL 
    echo $finalURL; 
*/ 

$response = file_get_contents($finalURL); 

echo $response; 
?> 

Credo che questa tecnica ha costretto modalità Verbatim perché la nuova risposta JSON mancava la solita strana ortografia suggerita del nome:

"spelling": { 
    "correctedQuery": "Deo Vandski", 
    "htmlCorrectedQuery": "\u003cb\u003e\u003ci\u003eDeo Vandski\u003c/i\u003e\u003c/b\u003e" 
}, 

Ho visto anche qualcosa su aggiungendo &tbs=li:1, ma non ho visto alcuna differenza quando ho provato le mie ricerche ...

Problemi correlati