Can the Google CSE API provide the item relevance score? - google-search-api

I'm using the CSE JSON/XML API to search my custom search engine but the results do not include the actual relevance score for each item. Is this completely unsupported or is there a way to retrieve it? I can almost swear I've seen it in the API before :)
There's a "<RK>" ranking element in the (old?) XML API but it's always set to 10 it seems..

The exhaustive list of supported fields in json response is documented here:
https://developers.google.com/custom-search/json-api/v1/reference/cse/list#response
So it seems no, relevance score is not provided.

Related

Custom Search API not returning all results

I am a long time customer of using the Custom Search API.
The problem - as described in the CSE documentation - is that the API is intended to search your own site and not the web in general. It misses results, for example from books.google.com, and results from other languages etc.
Is there another (paid) API that returns all results?
Sample search string: "الاستخدامات التالية من التطبيق"
(The above search gets 1 result in Google Search but 0 results in the Custom Search I am paying for.)
Thanks.
I didn't want to switch to Bing, but I was getting better results in the end.
For anyone else having this issue:
https://learn.microsoft.com/en-us/rest/api/cognitiveservices/bing-web-api-v7-reference

Using Twitter's public API to find similar tweets

I am working on an application that amongst other things tries to find similar tweets based on a tweet's text as input. The similarity of the tweet would be based on the amount of matching text. I would like to use the public twitter search api to accomplish this.
The closest thing the twitter API offers is searching using OR operators. This however returns a list of seemingly randomly ordered tweets that contain any of the query's words, ussualy matching common words like 'with' or 'we' (which is expected behaviour of the OR operator). I however am interested in results with as much matching text as possible and also in results with text that is characteristic to the input tweet (matching common words is less relevant then matching uncommon words).
Is there any way I can use the twitter API to find results with as much matching words as possible?
Example of results from query with OR operators.
The Twitter REST API does not expose a function that does what you are describing. You will need to capture a large number of tweets (probably from the Streaming API and then do the comparisons/identifications of similar tweets in your own code.

Is there an API to get results similar to Google's "people also search for"?

I'm looking for an API that would give similar results to the Google's "people also search for" feature. So that, for instance, when I search for Stanley Kubrik, I see all the other film directors that people search for.
I know about the Freebase API but it simply provides information about the search item, not what other search items it may be related to.
There is also a TargetingIdeaSelector tool in Google AdWords API that shows related keywords, but that doesn't really range the results semantically.
Finally, there's a very simple Bing API that shows related searches (also here), but, again, it does not range information semantically.
Do you know of any API or maybe if there is something like that in Google's APIs that would show me related searches ranged semantically?
Google used to offer such API but it was decapricated a few years back. I am unsure why this was the case but my guess is because it housed no real benefit for them and likely cost a lot to maintain. most major search engines tend to not have search API's in my experience.
You could however try an make your own using a PHP and DOM Parser to parse the results from somewhere like google and export the data out as JSON.
available for download here http://simplehtmldom.sourceforge.net
This should pull out all the links from Google which you can then format out. You can parse all data and can target objects see the documentation for more
$search = $_GET['search'];
> $google_search = file_get_html('https://www.google.co.uk/?gws_rd=ssl#q=' . $search);
>
> foreach($google_search->find('a') as $item) {
> echo $item->href . '<br>';
> }
Hope that helps
The results that Google shows is based on massive amount of data that i guess built on "what X who searched for Y also searched for", "what other people similar to X who also searched for Y searched for" and so on. In addition maybe there is some reliance on semantic information coming from Freebase.
On an initiative to understand what kind of properties Google shows in their infoboxes, i.e. Why when we search for France we get a card with map, flag, capital, population ... etc. amongst the hundreds of properties relate to France i created a "Knowledge Base Extractor " that is able to parse the Google infobox and expose the data as RDF using the Fresnel Vocabulary.
The Algorithm implemented is the following:
Query DBpedia for all concepts (types) for which there is at least one instance that has a link to a Freebase ID
For each of these concepts pick (n) instances randomly
For each instance, issue a Google Search query:
if an infobox is available -> scrap the infobox to extract the properties
if no infoxbox is available, check if Google suggests "do you mean ... ?" and if so, traverse the link and look for an infobox
if no infobox or correction is available, disambiguate the concept (type) used in the search query and check if an infobox is returned
if Google suggests disambiguation in an infobox parse all the links in it -> it is best to find which suggestion maps to the current data-type we are using -> check the Freebase - DBpedia mappings
Cluster properties for each concept
I also capture that "people searched for" section, but you might also want to tweak it a bit more.
Also note that you might want to check the CSS selectors for the infobox as Google changes them often (maybe auto-generated). This is done in the options.json
"knowledgeBox" : "#kno-result",
"knowledgeBox_disambiguate" : ".kp-blk",
"property" : "._Nl",
"property_value" : ".kno-fv",
"label" : ".kno-ecr-pt",
"description" : ".kno-rdesc",
"type" : "._kx",
"images" : ".bicc",
"special_property" : ".kno-sh",
"special_property_value" : "._Zh",
"special_property_value_link" : "a._dt"

Getting Website Category Against Keywords Using Google Search API

As the question suggest, does the Google Custom Search API have function to return category (music, entertainment, news, gaming, etc) based on input keywords?
You can use Adwords Keyword Planner tool or display plannertool for getting related ideas of keywords.

Amazon API search results vs. Amazon.com search results

For our web app, which will use Amazon's API as a basis for some of the site's main interactions, we required the ability to do a generalized search of Amazon's products and return results based on relevancy. The expectation was that their API would work exactly like their actual site's search.
Unfortunately it does not. For instance, querying "joy of cooking" does not return a link to the famous cook book, but to some food processor. Contrarily, on the actual site, one would see the book isn't just first, but it and any derivations occupy the top 5 or so results.
Is there a way of getting this level of relevancy search from Amazon's API without specifying a node to browse through? We need to be able to search everything at once, and the API seems very limited on parameter sets.
The answer is that, if you use "All" as your sorting basis, rather than "Blended", you will get results that are inline with Amazon's own product search. Older docs don't seem to account for this discrepency, but testing both methods has shown "All" to be the preferred product sorting method.
http://docs.amazonwebservices.com/AWSECommerceService/2010-11-01/DG/
Pagesearch under "SearchIndex: All"
You don't get any item sorting options with this method, but if all you want is "most relevant" results, this is the preferred method.