ruby-search-engine¶ ↑
NOTE: As of May 2016, Google has deprecated this method and so the gem no longer works. We will leave the code up for educational purposes. For alternatives, please refer to Google’s official API and documentation. Thank you to everyone who has used our gem and we apologize for any inconvenience.
-Matt Le
- Author
-
Martin Velez, Michael Yen, Matthew Le
- Copyright
-
Copyright © 2016 Authors
- License
-
MIT
Description ¶ ↑
Search the web using Ruby with this fast and lightweight gem, made to prioritize speed and efficiency. Compared to other search gems, this aims to be minimal, easy to use and most importantly, quick. For any inquiries, please feel free to contact us via email or a pull request. I hope you enjoy using the ruby-search-engine as much as we have had while making it!
-Matt Le
Design¶ ↑
The ruby-search-engine performs a low-level Google search using Google’s UDS (User Distributed Search) which will return a JSON object containing the query’s results per page. The object is then parsed and stored into a Ruby hash. From there, depending on the fields entered, the search() method will return the desired fields. There is also the option to specify how many pages will be returned. The usage section provides examples of this.
Fields/options:
-
GsearchResultClass
-
unescapedUrl
-
url
-
visibleUrl
-
cacheUrl
-
title
-
titleNoFormatting
-
content
**Note: fields must be entered as a symbol, ie. :url**
Installation¶ ↑
gem install ruby-search-engine
Usage¶ ↑
For a full example, go to bin/ruby_search_engine.rb
From within your app:
query = ARGV.join(" ") # gets query from command line, also can use ARGF.read # or query = "my query" # query can be any string search_engine = SearchEngine.new results = search_engine.search(query, :url, pages: 2) # Calls the search method with the query, url for the field and 2 pages. # results will be an array containing the first 2 pages worth of urls.
You can also provide input via STDIN on the command line.
$ ruby ruby_search_engine.rb QUERY
You can also run the executable via the ruby_cli gem which can help you make a command line app.
For a simple query, defaults to 1 page of results:
$ ./ruby_search_engine.rb QUERY
To specify the number of pages wanted:
$ ./ruby_search_engine.rb -p 2 QUERY
Dependencies¶ ↑
-
Ruby 1.9.1 or greater
-
ruby_cli to run the gem executable (optional)
Alternative Tools¶ ↑
TODO¶ ↑
-
Further optimization?
-
Test to determine limits of current approach, which parses and stores JSON objects.
-
-
Future features
-
Different search engines?
-
Source Code¶ ↑
https://github.com/martinvelez/ruby-search-engine