├── .gitignore ├── Gemfile ├── Gemfile.lock ├── Rakefile ├── app ├── assets │ ├── images │ │ └── .keep │ ├── javascripts │ │ └── application.js │ └── stylesheets │ │ └── application.css ├── controllers │ ├── application_controller.rb │ ├── concerns │ │ └── .keep │ ├── definition_controller.rb │ ├── many_definitions_controller.rb │ ├── quick_search_controller.rb │ └── rich_search_controller.rb ├── helpers │ └── application_helper.rb ├── mailers │ └── .keep ├── models │ ├── .keep │ ├── concerns │ │ └── .keep │ ├── definition.rb │ ├── quote.rb │ ├── word.rb │ └── word_relationship.rb └── views │ └── layouts │ └── application.html.erb ├── benchmark ├── definition_domain_urls.txt ├── definition_postgresql_urls.txt ├── many_definitions_domain_urls.txt ├── many_definitions_postgresql_urls.txt ├── quick_search_domain_urls.txt ├── quick_search_pluck_urls.txt ├── quick_search_postgresql_urls.txt ├── rich_search_domain_urls.txt ├── rich_search_postgresql_urls.txt ├── rich_search_select_all_urls.txt └── words.txt ├── bin ├── bundle ├── rails ├── rake ├── setup └── spring ├── config.ru ├── config ├── application.rb ├── boot.rb ├── database.yml ├── environment.rb ├── environments │ ├── development.rb │ ├── production.rb │ └── test.rb ├── initializers │ ├── assets.rb │ ├── backtrace_silencers.rb │ ├── cookies_serializer.rb │ ├── db.rb │ ├── filter_parameter_logging.rb │ ├── inflections.rb │ ├── mime_types.rb │ ├── session_store.rb │ └── wrap_parameters.rb ├── locales │ └── en.yml ├── routes.rb ├── secrets.yml └── unicorn.rb ├── db ├── migrate │ ├── 20130114233033_create_words.rb │ ├── 20130114233931_create_definitions.rb │ ├── 20130114234642_create_quotes.rb │ └── 20130114235036_create_word_relationships.rb ├── seeds.rb └── structure.sql ├── lib ├── assets │ └── .keep └── tasks │ ├── .keep │ ├── benchmark_run.rake │ └── benchmark_setup.rake ├── log └── .keep ├── public ├── 404.html ├── 422.html ├── 500.html ├── favicon.ico └── robots.txt ├── readme.markdown └── vendor └── assets ├── javascripts └── .keep └── stylesheets └── .keep /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files for more about ignoring files. 2 | # 3 | # If you find yourself ignoring temporary files generated by your text editor 4 | # or operating system, you probably want to add a global ignore instead: 5 | # git config --global core.excludesfile '~/.gitignore_global' 6 | 7 | # Ignore bundler config. 8 | /.bundle 9 | 10 | # Ignore all logfiles and tempfiles. 11 | /log/* 12 | !/log/.keep 13 | /tmp 14 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | 3 | gem 'rails', '4.2.1' 4 | gem 'pg' 5 | gem 'jbuilder', '~> 2.0' 6 | gem 'terminal-table' 7 | gem 'unicorn' 8 | gem 'yajl-ruby', require: 'yajl' 9 | -------------------------------------------------------------------------------- /Gemfile.lock: -------------------------------------------------------------------------------- 1 | GEM 2 | remote: https://rubygems.org/ 3 | specs: 4 | actionmailer (4.2.1) 5 | actionpack (= 4.2.1) 6 | actionview (= 4.2.1) 7 | activejob (= 4.2.1) 8 | mail (~> 2.5, >= 2.5.4) 9 | rails-dom-testing (~> 1.0, >= 1.0.5) 10 | actionpack (4.2.1) 11 | actionview (= 4.2.1) 12 | activesupport (= 4.2.1) 13 | rack (~> 1.6) 14 | rack-test (~> 0.6.2) 15 | rails-dom-testing (~> 1.0, >= 1.0.5) 16 | rails-html-sanitizer (~> 1.0, >= 1.0.1) 17 | actionview (4.2.1) 18 | activesupport (= 4.2.1) 19 | builder (~> 3.1) 20 | erubis (~> 2.7.0) 21 | rails-dom-testing (~> 1.0, >= 1.0.5) 22 | rails-html-sanitizer (~> 1.0, >= 1.0.1) 23 | activejob (4.2.1) 24 | activesupport (= 4.2.1) 25 | globalid (>= 0.3.0) 26 | activemodel (4.2.1) 27 | activesupport (= 4.2.1) 28 | builder (~> 3.1) 29 | activerecord (4.2.1) 30 | activemodel (= 4.2.1) 31 | activesupport (= 4.2.1) 32 | arel (~> 6.0) 33 | activesupport (4.2.1) 34 | i18n (~> 0.7) 35 | json (~> 1.7, >= 1.7.7) 36 | minitest (~> 5.1) 37 | thread_safe (~> 0.3, >= 0.3.4) 38 | tzinfo (~> 1.1) 39 | arel (6.0.0) 40 | builder (3.2.3) 41 | concurrent-ruby (1.1.5) 42 | crass (1.0.5) 43 | erubis (2.7.0) 44 | globalid (0.3.3) 45 | activesupport (>= 4.1.0) 46 | i18n (0.9.5) 47 | concurrent-ruby (~> 1.0) 48 | jbuilder (2.2.12) 49 | activesupport (>= 3.0.0, < 5) 50 | multi_json (~> 1.2) 51 | json (1.8.6) 52 | kgio (2.9.3) 53 | loofah (2.3.1) 54 | crass (~> 1.0.2) 55 | nokogiri (>= 1.5.9) 56 | mail (2.6.3) 57 | mime-types (>= 1.16, < 3) 58 | mime-types (2.4.3) 59 | mini_portile2 (2.4.0) 60 | minitest (5.13.0) 61 | multi_json (1.14.1) 62 | nokogiri (1.10.5) 63 | mini_portile2 (~> 2.4.0) 64 | pg (0.18.1) 65 | rack (1.6.12) 66 | rack-test (0.6.3) 67 | rack (>= 1.0) 68 | rails (4.2.1) 69 | actionmailer (= 4.2.1) 70 | actionpack (= 4.2.1) 71 | actionview (= 4.2.1) 72 | activejob (= 4.2.1) 73 | activemodel (= 4.2.1) 74 | activerecord (= 4.2.1) 75 | activesupport (= 4.2.1) 76 | bundler (>= 1.3.0, < 2.0) 77 | railties (= 4.2.1) 78 | sprockets-rails 79 | rails-deprecated_sanitizer (1.0.3) 80 | activesupport (>= 4.2.0.alpha) 81 | rails-dom-testing (1.0.9) 82 | activesupport (>= 4.2.0, < 5.0) 83 | nokogiri (~> 1.6) 84 | rails-deprecated_sanitizer (>= 1.0.1) 85 | rails-html-sanitizer (1.3.0) 86 | loofah (~> 2.3) 87 | railties (4.2.1) 88 | actionpack (= 4.2.1) 89 | activesupport (= 4.2.1) 90 | rake (>= 0.8.7) 91 | thor (>= 0.18.1, < 2.0) 92 | raindrops (0.13.0) 93 | rake (10.4.2) 94 | sprockets (4.0.0) 95 | concurrent-ruby (~> 1.0) 96 | rack (> 1, < 3) 97 | sprockets-rails (3.2.1) 98 | actionpack (>= 4.0) 99 | activesupport (>= 4.0) 100 | sprockets (>= 3.0.0) 101 | terminal-table (1.4.5) 102 | thor (0.19.1) 103 | thread_safe (0.3.6) 104 | tzinfo (1.2.5) 105 | thread_safe (~> 0.1) 106 | unicorn (4.8.3) 107 | kgio (~> 2.6) 108 | rack 109 | raindrops (~> 0.7) 110 | yajl-ruby (1.3.1) 111 | 112 | PLATFORMS 113 | ruby 114 | 115 | DEPENDENCIES 116 | jbuilder (~> 2.0) 117 | pg 118 | rails (= 4.2.1) 119 | terminal-table 120 | unicorn 121 | yajl-ruby 122 | -------------------------------------------------------------------------------- /Rakefile: -------------------------------------------------------------------------------- 1 | # Add your own tasks in files placed in lib/tasks ending in .rake, 2 | # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. 3 | 4 | require File.expand_path('../config/application', __FILE__) 5 | 6 | Rails.application.load_tasks 7 | -------------------------------------------------------------------------------- /app/assets/images/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackc/json_api_bench/8482a2fd95bb15aee649a5b7887e4943e6d8a3a1/app/assets/images/.keep -------------------------------------------------------------------------------- /app/assets/javascripts/application.js: -------------------------------------------------------------------------------- 1 | // This is a manifest file that'll be compiled into application.js, which will include all the files 2 | // listed below. 3 | // 4 | // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts, 5 | // or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path. 6 | // 7 | // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the 8 | // compiled file. 9 | // 10 | // Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details 11 | // about supported directives. 12 | // 13 | //= require jquery 14 | //= require jquery_ujs 15 | //= require turbolinks 16 | //= require_tree . 17 | -------------------------------------------------------------------------------- /app/assets/stylesheets/application.css: -------------------------------------------------------------------------------- 1 | /* 2 | * This is a manifest file that'll be compiled into application.css, which will include all the files 3 | * listed below. 4 | * 5 | * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets, 6 | * or any plugin's vendor/assets/stylesheets directory can be referenced here using a relative path. 7 | * 8 | * You're free to add application-wide styles to this file and they'll appear at the bottom of the 9 | * compiled file so the styles you add here take precedence over styles defined in any styles 10 | * defined in the other CSS/SCSS files in this directory. It is generally better to create a new 11 | * file per style scope. 12 | * 13 | *= require_tree . 14 | *= require_self 15 | */ 16 | -------------------------------------------------------------------------------- /app/controllers/application_controller.rb: -------------------------------------------------------------------------------- 1 | class ApplicationController < ActionController::Base 2 | protect_from_forgery 3 | end 4 | -------------------------------------------------------------------------------- /app/controllers/concerns/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackc/json_api_bench/8482a2fd95bb15aee649a5b7887e4943e6d8a3a1/app/controllers/concerns/.keep -------------------------------------------------------------------------------- /app/controllers/definition_controller.rb: -------------------------------------------------------------------------------- 1 | class DefinitionController < ApplicationController 2 | def domain 3 | word = Word 4 | .includes(:definitions, :quotes, :synonyms, :antonyms) 5 | .where(text: params[:word]) 6 | .first 7 | 8 | for_json = { 9 | text: word.text, 10 | pronunciation: word.pronunciation, 11 | definitions: word.definitions.map { |d| d.attributes.slice "part_of_speech", "body" }, 12 | quotes: word.quotes.map { |q| q.attributes.slice "body", "source" }, 13 | synonyms: word.synonyms.map(&:text), 14 | antonyms: word.antonyms.map(&:text) 15 | } 16 | 17 | render json: for_json 18 | end 19 | 20 | def postgresql 21 | sql = <<-SQL 22 | select row_to_json(t) 23 | from ( 24 | select text, pronunciation, 25 | ( 26 | select array_to_json(array_agg(row_to_json(d))) 27 | from ( 28 | select part_of_speech, body 29 | from definitions 30 | where word_id=words.id 31 | order by position asc 32 | ) d 33 | ) as definitions, 34 | ( 35 | select array_to_json(array_agg(row_to_json(q))) 36 | from ( 37 | select body, source 38 | from quotes 39 | where word_id=words.id 40 | ) q 41 | ) as quotes, 42 | ( 43 | select array_to_json(array_agg(text)) 44 | from words related_words 45 | join word_relationships on related_words.id=word_relationships.destination_id 46 | where source_id=words.id 47 | and relationship='synonym' 48 | ) as synonyms, 49 | ( 50 | select array_to_json(array_agg(text)) 51 | from words related_words 52 | join word_relationships on related_words.id=word_relationships.destination_id 53 | where source_id=words.id 54 | and relationship='antonym' 55 | ) as antonyms 56 | from words 57 | where text = #{DB.quote(params[:word])} 58 | ) t 59 | SQL 60 | 61 | render json: DB.select_value(sql) 62 | end 63 | end 64 | -------------------------------------------------------------------------------- /app/controllers/many_definitions_controller.rb: -------------------------------------------------------------------------------- 1 | class ManyDefinitionsController < ApplicationController 2 | def domain 3 | words = Word 4 | .includes(:definitions, :quotes, :synonyms, :antonyms) 5 | .where('words.text like ?', "#{params[:word]}%") 6 | .all 7 | 8 | for_json = words.map do |word| 9 | { 10 | text: word.text, 11 | pronunciation: word.pronunciation, 12 | definitions: word.definitions.map { |d| d.attributes.slice "part_of_speech", "body" }, 13 | quotes: word.quotes.map { |q| q.attributes.slice "body", "source" }, 14 | synonyms: word.synonyms.map(&:text), 15 | antonyms: word.antonyms.map(&:text) 16 | } 17 | end 18 | 19 | render json: for_json 20 | end 21 | 22 | def postgresql 23 | sql = <<-SQL 24 | select array_to_json(array_agg(row_to_json(t))) 25 | from ( 26 | select text, pronunciation, 27 | ( 28 | select array_to_json(array_agg(row_to_json(d))) 29 | from ( 30 | select part_of_speech, body 31 | from definitions 32 | where word_id=words.id 33 | order by position asc 34 | ) d 35 | ) as definitions, 36 | ( 37 | select array_to_json(array_agg(row_to_json(q))) 38 | from ( 39 | select body, source 40 | from quotes 41 | where word_id=words.id 42 | ) q 43 | ) as quotes, 44 | ( 45 | select array_to_json(array_agg(text)) 46 | from words related_words 47 | join word_relationships on related_words.id=word_relationships.destination_id 48 | where source_id=words.id 49 | and relationship='synonym' 50 | ) as synonyms, 51 | ( 52 | select array_to_json(array_agg(text)) 53 | from words related_words 54 | join word_relationships on related_words.id=word_relationships.destination_id 55 | where source_id=words.id 56 | and relationship='antonym' 57 | ) as antonyms 58 | from words 59 | where text like #{DB.quote("#{params[:word]}%")} 60 | ) t 61 | SQL 62 | 63 | render json: DB.select_value(sql) 64 | end 65 | end 66 | -------------------------------------------------------------------------------- /app/controllers/quick_search_controller.rb: -------------------------------------------------------------------------------- 1 | class QuickSearchController < ApplicationController 2 | def domain 3 | words = Word 4 | .where('text like ?', "#{params[:word]}%") 5 | .order('text asc') 6 | .limit(10) 7 | 8 | render json: words.map(&:text) 9 | end 10 | 11 | def pluck 12 | word_texts = Word 13 | .where('text like ?', "#{params[:word]}%") 14 | .order('text asc') 15 | .limit(10) 16 | .pluck(:text) 17 | render json: word_texts 18 | end 19 | 20 | def postgresql 21 | sql = <<-SQL 22 | select array_to_json(array_agg(text)) 23 | from ( 24 | select text 25 | from words 26 | where text like #{DB.quote("#{params[:word]}%")} 27 | order by text asc 28 | limit 10 29 | ) t 30 | SQL 31 | 32 | render json: DB.select_value(sql) 33 | end 34 | end 35 | -------------------------------------------------------------------------------- /app/controllers/rich_search_controller.rb: -------------------------------------------------------------------------------- 1 | class RichSearchController < ApplicationController 2 | def domain 3 | words = Word 4 | .includes(:first_definition) 5 | .where('text like ?', "#{params[:word]}%") 6 | .order('text asc') 7 | .limit(10) 8 | 9 | for_json = words.map do |word| 10 | { 11 | text: word.text, 12 | pronunciation: word.pronunciation, 13 | part_of_speech: word.first_definition.part_of_speech, 14 | definition: word.first_definition.body 15 | } 16 | end 17 | 18 | render json: for_json 19 | end 20 | 21 | def select_all 22 | sql = Word 23 | .select('text, pronunciation, part_of_speech, body as definition') 24 | .joins(:first_definition) 25 | .where('text like ?', "#{params[:word]}%") 26 | .order('text asc') 27 | .limit(10) 28 | .to_sql 29 | 30 | render json: DB.select_all(sql) 31 | end 32 | 33 | def postgresql 34 | sql = <<-SQL 35 | select array_to_json(array_agg(row_to_json(t))) 36 | from ( 37 | select text, pronunciation, part_of_speech, body as definition 38 | from words 39 | join definitions on words.id=definitions.word_id 40 | where text like #{DB.quote("#{params[:word]}%")} 41 | and position=0 42 | order by text asc 43 | limit 10 44 | ) t 45 | SQL 46 | 47 | render json: DB.select_value(sql) 48 | end 49 | end 50 | -------------------------------------------------------------------------------- /app/helpers/application_helper.rb: -------------------------------------------------------------------------------- 1 | module ApplicationHelper 2 | end 3 | -------------------------------------------------------------------------------- /app/mailers/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackc/json_api_bench/8482a2fd95bb15aee649a5b7887e4943e6d8a3a1/app/mailers/.keep -------------------------------------------------------------------------------- /app/models/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackc/json_api_bench/8482a2fd95bb15aee649a5b7887e4943e6d8a3a1/app/models/.keep -------------------------------------------------------------------------------- /app/models/concerns/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackc/json_api_bench/8482a2fd95bb15aee649a5b7887e4943e6d8a3a1/app/models/concerns/.keep -------------------------------------------------------------------------------- /app/models/definition.rb: -------------------------------------------------------------------------------- 1 | class Definition < ActiveRecord::Base 2 | belongs_to :word 3 | end 4 | -------------------------------------------------------------------------------- /app/models/quote.rb: -------------------------------------------------------------------------------- 1 | class Quote < ActiveRecord::Base 2 | belongs_to :word 3 | end 4 | -------------------------------------------------------------------------------- /app/models/word.rb: -------------------------------------------------------------------------------- 1 | class Word < ActiveRecord::Base 2 | has_many :definitions, -> { order('position asc') } 3 | has_one :first_definition, 4 | -> { where(position: 0) }, 5 | class_name: 'Definition' 6 | has_many :quotes 7 | has_many :synonym_relationships, 8 | -> { where(relationship: 'synonym') }, 9 | class_name: 'WordRelationship', 10 | foreign_key: 'source_id' 11 | has_many :antonym_relationships, 12 | -> { where(relationship: 'antonym') }, 13 | class_name: 'WordRelationship', 14 | foreign_key: 'source_id' 15 | has_many :synonyms, through: :synonym_relationships, 16 | source: 'destination' 17 | has_many :antonyms, through: :antonym_relationships, 18 | source: 'destination' 19 | end 20 | -------------------------------------------------------------------------------- /app/models/word_relationship.rb: -------------------------------------------------------------------------------- 1 | class WordRelationship < ActiveRecord::Base 2 | belongs_to :source, class_name: 'Word' 3 | belongs_to :destination, class_name: 'Word' 4 | end 5 | -------------------------------------------------------------------------------- /app/views/layouts/application.html.erb: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | JsonApiBench 5 | <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %> 6 | <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %> 7 | <%= csrf_meta_tags %> 8 | 9 | 10 | 11 | <%= yield %> 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /benchmark/definition_domain_urls.txt: -------------------------------------------------------------------------------- 1 | http://localhost:8080/definition/domain?word=neuropterous 2 | http://localhost:8080/definition/domain?word=reputableness 3 | http://localhost:8080/definition/domain?word=parasitical 4 | http://localhost:8080/definition/domain?word=nephros 5 | http://localhost:8080/definition/domain?word=intercondenser 6 | http://localhost:8080/definition/domain?word=polystyle 7 | http://localhost:8080/definition/domain?word=jaculatory 8 | http://localhost:8080/definition/domain?word=unclimbing 9 | http://localhost:8080/definition/domain?word=vergency 10 | http://localhost:8080/definition/domain?word=hussyness 11 | http://localhost:8080/definition/domain?word=squamellate 12 | http://localhost:8080/definition/domain?word=nagman 13 | http://localhost:8080/definition/domain?word=opthalmophorium 14 | http://localhost:8080/definition/domain?word=unpenitentness 15 | http://localhost:8080/definition/domain?word=beauseant 16 | http://localhost:8080/definition/domain?word=bloodflower 17 | http://localhost:8080/definition/domain?word=anamniotic 18 | http://localhost:8080/definition/domain?word=termitophilous 19 | http://localhost:8080/definition/domain?word=snobber 20 | http://localhost:8080/definition/domain?word=trochleate 21 | http://localhost:8080/definition/domain?word=warship 22 | http://localhost:8080/definition/domain?word=stylopid 23 | http://localhost:8080/definition/domain?word=limulid 24 | http://localhost:8080/definition/domain?word=somatotype 25 | http://localhost:8080/definition/domain?word=casula 26 | http://localhost:8080/definition/domain?word=polythene 27 | http://localhost:8080/definition/domain?word=coadunite 28 | http://localhost:8080/definition/domain?word=unvocal 29 | http://localhost:8080/definition/domain?word=nakedish 30 | http://localhost:8080/definition/domain?word=intershock 31 | http://localhost:8080/definition/domain?word=exodermis 32 | http://localhost:8080/definition/domain?word=snailflower 33 | http://localhost:8080/definition/domain?word=akinesia 34 | http://localhost:8080/definition/domain?word=overcall 35 | http://localhost:8080/definition/domain?word=armoried 36 | http://localhost:8080/definition/domain?word=phytalbumose 37 | http://localhost:8080/definition/domain?word=photoelectricity 38 | http://localhost:8080/definition/domain?word=agathism 39 | http://localhost:8080/definition/domain?word=unveiler 40 | http://localhost:8080/definition/domain?word=rasp 41 | http://localhost:8080/definition/domain?word=hunanese 42 | http://localhost:8080/definition/domain?word=kusti 43 | http://localhost:8080/definition/domain?word=reimportune 44 | http://localhost:8080/definition/domain?word=affectationist 45 | http://localhost:8080/definition/domain?word=pulsatility 46 | http://localhost:8080/definition/domain?word=pyocele 47 | http://localhost:8080/definition/domain?word=draftsmanship 48 | http://localhost:8080/definition/domain?word=cobwebbery 49 | http://localhost:8080/definition/domain?word=griffade 50 | http://localhost:8080/definition/domain?word=hyoepiglottidean 51 | http://localhost:8080/definition/domain?word=oxalemia 52 | http://localhost:8080/definition/domain?word=lemurian 53 | http://localhost:8080/definition/domain?word=withholdable 54 | http://localhost:8080/definition/domain?word=chartless 55 | http://localhost:8080/definition/domain?word=dullish 56 | http://localhost:8080/definition/domain?word=decorator 57 | http://localhost:8080/definition/domain?word=prosodetic 58 | http://localhost:8080/definition/domain?word=fathom 59 | http://localhost:8080/definition/domain?word=massiest 60 | http://localhost:8080/definition/domain?word=expurgative 61 | http://localhost:8080/definition/domain?word=deditician 62 | http://localhost:8080/definition/domain?word=clumpish 63 | http://localhost:8080/definition/domain?word=pseudoerythrin 64 | http://localhost:8080/definition/domain?word=cotarnine 65 | http://localhost:8080/definition/domain?word=drawstring 66 | http://localhost:8080/definition/domain?word=indigitate 67 | http://localhost:8080/definition/domain?word=tentacula 68 | http://localhost:8080/definition/domain?word=choragion 69 | http://localhost:8080/definition/domain?word=titanical 70 | http://localhost:8080/definition/domain?word=christ 71 | http://localhost:8080/definition/domain?word=wapacut 72 | http://localhost:8080/definition/domain?word=metaconid 73 | http://localhost:8080/definition/domain?word=autogenetically 74 | http://localhost:8080/definition/domain?word=pikeman 75 | http://localhost:8080/definition/domain?word=sectionalism 76 | http://localhost:8080/definition/domain?word=brangling 77 | http://localhost:8080/definition/domain?word=gliosa 78 | http://localhost:8080/definition/domain?word=copperbottom 79 | http://localhost:8080/definition/domain?word=gymnocarpic 80 | http://localhost:8080/definition/domain?word=cordon 81 | http://localhost:8080/definition/domain?word=heteromyaria 82 | http://localhost:8080/definition/domain?word=labionasal 83 | http://localhost:8080/definition/domain?word=cataclastic 84 | http://localhost:8080/definition/domain?word=resift 85 | http://localhost:8080/definition/domain?word=abelia 86 | http://localhost:8080/definition/domain?word=ganglioform 87 | http://localhost:8080/definition/domain?word=nude 88 | http://localhost:8080/definition/domain?word=coenoecic 89 | http://localhost:8080/definition/domain?word=pentecostal 90 | http://localhost:8080/definition/domain?word=unsew 91 | http://localhost:8080/definition/domain?word=homeotic 92 | http://localhost:8080/definition/domain?word=reassumption 93 | http://localhost:8080/definition/domain?word=deluding 94 | http://localhost:8080/definition/domain?word=safi 95 | http://localhost:8080/definition/domain?word=halieutics 96 | http://localhost:8080/definition/domain?word=ekamanganese 97 | http://localhost:8080/definition/domain?word=anele 98 | http://localhost:8080/definition/domain?word=broguish 99 | http://localhost:8080/definition/domain?word=timberwright 100 | http://localhost:8080/definition/domain?word=bluebutton 101 | http://localhost:8080/definition/domain?word=anticomplementary 102 | http://localhost:8080/definition/domain?word=granulative 103 | http://localhost:8080/definition/domain?word=semicircumvolution 104 | http://localhost:8080/definition/domain?word=vestigian 105 | http://localhost:8080/definition/domain?word=gamostelic 106 | http://localhost:8080/definition/domain?word=perturbment 107 | http://localhost:8080/definition/domain?word=pinda 108 | http://localhost:8080/definition/domain?word=perovskite 109 | http://localhost:8080/definition/domain?word=firmisternia 110 | http://localhost:8080/definition/domain?word=valoniaceous 111 | http://localhost:8080/definition/domain?word=metaparapteral 112 | http://localhost:8080/definition/domain?word=tribalism 113 | http://localhost:8080/definition/domain?word=rubianic 114 | http://localhost:8080/definition/domain?word=hoist 115 | http://localhost:8080/definition/domain?word=agoge 116 | http://localhost:8080/definition/domain?word=lateritic 117 | http://localhost:8080/definition/domain?word=uncontainably 118 | http://localhost:8080/definition/domain?word=phylogeny 119 | http://localhost:8080/definition/domain?word=uncontroverted 120 | http://localhost:8080/definition/domain?word=rosario 121 | http://localhost:8080/definition/domain?word=awellimiden 122 | http://localhost:8080/definition/domain?word=nonpress 123 | http://localhost:8080/definition/domain?word=vasospasm 124 | http://localhost:8080/definition/domain?word=pyrotritartric 125 | http://localhost:8080/definition/domain?word=manurially 126 | http://localhost:8080/definition/domain?word=praisefully 127 | http://localhost:8080/definition/domain?word=cautelously 128 | http://localhost:8080/definition/domain?word=hyalotype 129 | http://localhost:8080/definition/domain?word=reclinable 130 | http://localhost:8080/definition/domain?word=homovanillic 131 | http://localhost:8080/definition/domain?word=proclamation 132 | http://localhost:8080/definition/domain?word=mesitite 133 | http://localhost:8080/definition/domain?word=druse 134 | http://localhost:8080/definition/domain?word=hydrazide 135 | http://localhost:8080/definition/domain?word=phragmoid 136 | http://localhost:8080/definition/domain?word=polygenism 137 | http://localhost:8080/definition/domain?word=phytoteratologist 138 | http://localhost:8080/definition/domain?word=recast 139 | http://localhost:8080/definition/domain?word=castalian 140 | http://localhost:8080/definition/domain?word=mick 141 | http://localhost:8080/definition/domain?word=unhoaxed 142 | http://localhost:8080/definition/domain?word=knock 143 | http://localhost:8080/definition/domain?word=misbehave 144 | http://localhost:8080/definition/domain?word=ungarland 145 | http://localhost:8080/definition/domain?word=terminableness 146 | http://localhost:8080/definition/domain?word=sapodilla 147 | http://localhost:8080/definition/domain?word=discolorment 148 | http://localhost:8080/definition/domain?word=unrequiting 149 | http://localhost:8080/definition/domain?word=scrobe 150 | http://localhost:8080/definition/domain?word=zymin 151 | http://localhost:8080/definition/domain?word=erotopathic 152 | http://localhost:8080/definition/domain?word=unbetrayed 153 | http://localhost:8080/definition/domain?word=asteraceous 154 | http://localhost:8080/definition/domain?word=provicariate 155 | http://localhost:8080/definition/domain?word=eelware 156 | http://localhost:8080/definition/domain?word=trochantinian 157 | http://localhost:8080/definition/domain?word=thermopolymerization 158 | http://localhost:8080/definition/domain?word=piney 159 | http://localhost:8080/definition/domain?word=meditrinalia 160 | http://localhost:8080/definition/domain?word=deradenoncus 161 | http://localhost:8080/definition/domain?word=sandbox 162 | http://localhost:8080/definition/domain?word=necktieless 163 | http://localhost:8080/definition/domain?word=shona 164 | http://localhost:8080/definition/domain?word=cheiropatagium 165 | http://localhost:8080/definition/domain?word=ait 166 | http://localhost:8080/definition/domain?word=typewriter 167 | http://localhost:8080/definition/domain?word=coinheritance 168 | http://localhost:8080/definition/domain?word=leewardness 169 | http://localhost:8080/definition/domain?word=skither 170 | http://localhost:8080/definition/domain?word=floriscope 171 | http://localhost:8080/definition/domain?word=paranthelion 172 | http://localhost:8080/definition/domain?word=depolarize 173 | http://localhost:8080/definition/domain?word=babelism 174 | http://localhost:8080/definition/domain?word=barbas 175 | http://localhost:8080/definition/domain?word=taxology 176 | http://localhost:8080/definition/domain?word=harmless 177 | http://localhost:8080/definition/domain?word=anticaste 178 | http://localhost:8080/definition/domain?word=unstrengthened 179 | http://localhost:8080/definition/domain?word=scrobis 180 | http://localhost:8080/definition/domain?word=debarration 181 | http://localhost:8080/definition/domain?word=forehoof 182 | http://localhost:8080/definition/domain?word=querecho 183 | http://localhost:8080/definition/domain?word=postvertebral 184 | http://localhost:8080/definition/domain?word=holly 185 | http://localhost:8080/definition/domain?word=algometrical 186 | http://localhost:8080/definition/domain?word=anywhen 187 | http://localhost:8080/definition/domain?word=phloretic 188 | http://localhost:8080/definition/domain?word=priodon 189 | http://localhost:8080/definition/domain?word=smyrniote 190 | http://localhost:8080/definition/domain?word=jesu 191 | http://localhost:8080/definition/domain?word=microscopize 192 | http://localhost:8080/definition/domain?word=harmonometer 193 | http://localhost:8080/definition/domain?word=grabbling 194 | http://localhost:8080/definition/domain?word=usward 195 | http://localhost:8080/definition/domain?word=spirochetosis 196 | http://localhost:8080/definition/domain?word=overswell 197 | http://localhost:8080/definition/domain?word=holocaust 198 | http://localhost:8080/definition/domain?word=iamb 199 | http://localhost:8080/definition/domain?word=dough 200 | http://localhost:8080/definition/domain?word=abrupt -------------------------------------------------------------------------------- /benchmark/definition_postgresql_urls.txt: -------------------------------------------------------------------------------- 1 | http://localhost:8080/definition/postgresql?word=neuropterous 2 | http://localhost:8080/definition/postgresql?word=reputableness 3 | http://localhost:8080/definition/postgresql?word=parasitical 4 | http://localhost:8080/definition/postgresql?word=nephros 5 | http://localhost:8080/definition/postgresql?word=intercondenser 6 | http://localhost:8080/definition/postgresql?word=polystyle 7 | http://localhost:8080/definition/postgresql?word=jaculatory 8 | http://localhost:8080/definition/postgresql?word=unclimbing 9 | http://localhost:8080/definition/postgresql?word=vergency 10 | http://localhost:8080/definition/postgresql?word=hussyness 11 | http://localhost:8080/definition/postgresql?word=squamellate 12 | http://localhost:8080/definition/postgresql?word=nagman 13 | http://localhost:8080/definition/postgresql?word=opthalmophorium 14 | http://localhost:8080/definition/postgresql?word=unpenitentness 15 | http://localhost:8080/definition/postgresql?word=beauseant 16 | http://localhost:8080/definition/postgresql?word=bloodflower 17 | http://localhost:8080/definition/postgresql?word=anamniotic 18 | http://localhost:8080/definition/postgresql?word=termitophilous 19 | http://localhost:8080/definition/postgresql?word=snobber 20 | http://localhost:8080/definition/postgresql?word=trochleate 21 | http://localhost:8080/definition/postgresql?word=warship 22 | http://localhost:8080/definition/postgresql?word=stylopid 23 | http://localhost:8080/definition/postgresql?word=limulid 24 | http://localhost:8080/definition/postgresql?word=somatotype 25 | http://localhost:8080/definition/postgresql?word=casula 26 | http://localhost:8080/definition/postgresql?word=polythene 27 | http://localhost:8080/definition/postgresql?word=coadunite 28 | http://localhost:8080/definition/postgresql?word=unvocal 29 | http://localhost:8080/definition/postgresql?word=nakedish 30 | http://localhost:8080/definition/postgresql?word=intershock 31 | http://localhost:8080/definition/postgresql?word=exodermis 32 | http://localhost:8080/definition/postgresql?word=snailflower 33 | http://localhost:8080/definition/postgresql?word=akinesia 34 | http://localhost:8080/definition/postgresql?word=overcall 35 | http://localhost:8080/definition/postgresql?word=armoried 36 | http://localhost:8080/definition/postgresql?word=phytalbumose 37 | http://localhost:8080/definition/postgresql?word=photoelectricity 38 | http://localhost:8080/definition/postgresql?word=agathism 39 | http://localhost:8080/definition/postgresql?word=unveiler 40 | http://localhost:8080/definition/postgresql?word=rasp 41 | http://localhost:8080/definition/postgresql?word=hunanese 42 | http://localhost:8080/definition/postgresql?word=kusti 43 | http://localhost:8080/definition/postgresql?word=reimportune 44 | http://localhost:8080/definition/postgresql?word=affectationist 45 | http://localhost:8080/definition/postgresql?word=pulsatility 46 | http://localhost:8080/definition/postgresql?word=pyocele 47 | http://localhost:8080/definition/postgresql?word=draftsmanship 48 | http://localhost:8080/definition/postgresql?word=cobwebbery 49 | http://localhost:8080/definition/postgresql?word=griffade 50 | http://localhost:8080/definition/postgresql?word=hyoepiglottidean 51 | http://localhost:8080/definition/postgresql?word=oxalemia 52 | http://localhost:8080/definition/postgresql?word=lemurian 53 | http://localhost:8080/definition/postgresql?word=withholdable 54 | http://localhost:8080/definition/postgresql?word=chartless 55 | http://localhost:8080/definition/postgresql?word=dullish 56 | http://localhost:8080/definition/postgresql?word=decorator 57 | http://localhost:8080/definition/postgresql?word=prosodetic 58 | http://localhost:8080/definition/postgresql?word=fathom 59 | http://localhost:8080/definition/postgresql?word=massiest 60 | http://localhost:8080/definition/postgresql?word=expurgative 61 | http://localhost:8080/definition/postgresql?word=deditician 62 | http://localhost:8080/definition/postgresql?word=clumpish 63 | http://localhost:8080/definition/postgresql?word=pseudoerythrin 64 | http://localhost:8080/definition/postgresql?word=cotarnine 65 | http://localhost:8080/definition/postgresql?word=drawstring 66 | http://localhost:8080/definition/postgresql?word=indigitate 67 | http://localhost:8080/definition/postgresql?word=tentacula 68 | http://localhost:8080/definition/postgresql?word=choragion 69 | http://localhost:8080/definition/postgresql?word=titanical 70 | http://localhost:8080/definition/postgresql?word=christ 71 | http://localhost:8080/definition/postgresql?word=wapacut 72 | http://localhost:8080/definition/postgresql?word=metaconid 73 | http://localhost:8080/definition/postgresql?word=autogenetically 74 | http://localhost:8080/definition/postgresql?word=pikeman 75 | http://localhost:8080/definition/postgresql?word=sectionalism 76 | http://localhost:8080/definition/postgresql?word=brangling 77 | http://localhost:8080/definition/postgresql?word=gliosa 78 | http://localhost:8080/definition/postgresql?word=copperbottom 79 | http://localhost:8080/definition/postgresql?word=gymnocarpic 80 | http://localhost:8080/definition/postgresql?word=cordon 81 | http://localhost:8080/definition/postgresql?word=heteromyaria 82 | http://localhost:8080/definition/postgresql?word=labionasal 83 | http://localhost:8080/definition/postgresql?word=cataclastic 84 | http://localhost:8080/definition/postgresql?word=resift 85 | http://localhost:8080/definition/postgresql?word=abelia 86 | http://localhost:8080/definition/postgresql?word=ganglioform 87 | http://localhost:8080/definition/postgresql?word=nude 88 | http://localhost:8080/definition/postgresql?word=coenoecic 89 | http://localhost:8080/definition/postgresql?word=pentecostal 90 | http://localhost:8080/definition/postgresql?word=unsew 91 | http://localhost:8080/definition/postgresql?word=homeotic 92 | http://localhost:8080/definition/postgresql?word=reassumption 93 | http://localhost:8080/definition/postgresql?word=deluding 94 | http://localhost:8080/definition/postgresql?word=safi 95 | http://localhost:8080/definition/postgresql?word=halieutics 96 | http://localhost:8080/definition/postgresql?word=ekamanganese 97 | http://localhost:8080/definition/postgresql?word=anele 98 | http://localhost:8080/definition/postgresql?word=broguish 99 | http://localhost:8080/definition/postgresql?word=timberwright 100 | http://localhost:8080/definition/postgresql?word=bluebutton 101 | http://localhost:8080/definition/postgresql?word=anticomplementary 102 | http://localhost:8080/definition/postgresql?word=granulative 103 | http://localhost:8080/definition/postgresql?word=semicircumvolution 104 | http://localhost:8080/definition/postgresql?word=vestigian 105 | http://localhost:8080/definition/postgresql?word=gamostelic 106 | http://localhost:8080/definition/postgresql?word=perturbment 107 | http://localhost:8080/definition/postgresql?word=pinda 108 | http://localhost:8080/definition/postgresql?word=perovskite 109 | http://localhost:8080/definition/postgresql?word=firmisternia 110 | http://localhost:8080/definition/postgresql?word=valoniaceous 111 | http://localhost:8080/definition/postgresql?word=metaparapteral 112 | http://localhost:8080/definition/postgresql?word=tribalism 113 | http://localhost:8080/definition/postgresql?word=rubianic 114 | http://localhost:8080/definition/postgresql?word=hoist 115 | http://localhost:8080/definition/postgresql?word=agoge 116 | http://localhost:8080/definition/postgresql?word=lateritic 117 | http://localhost:8080/definition/postgresql?word=uncontainably 118 | http://localhost:8080/definition/postgresql?word=phylogeny 119 | http://localhost:8080/definition/postgresql?word=uncontroverted 120 | http://localhost:8080/definition/postgresql?word=rosario 121 | http://localhost:8080/definition/postgresql?word=awellimiden 122 | http://localhost:8080/definition/postgresql?word=nonpress 123 | http://localhost:8080/definition/postgresql?word=vasospasm 124 | http://localhost:8080/definition/postgresql?word=pyrotritartric 125 | http://localhost:8080/definition/postgresql?word=manurially 126 | http://localhost:8080/definition/postgresql?word=praisefully 127 | http://localhost:8080/definition/postgresql?word=cautelously 128 | http://localhost:8080/definition/postgresql?word=hyalotype 129 | http://localhost:8080/definition/postgresql?word=reclinable 130 | http://localhost:8080/definition/postgresql?word=homovanillic 131 | http://localhost:8080/definition/postgresql?word=proclamation 132 | http://localhost:8080/definition/postgresql?word=mesitite 133 | http://localhost:8080/definition/postgresql?word=druse 134 | http://localhost:8080/definition/postgresql?word=hydrazide 135 | http://localhost:8080/definition/postgresql?word=phragmoid 136 | http://localhost:8080/definition/postgresql?word=polygenism 137 | http://localhost:8080/definition/postgresql?word=phytoteratologist 138 | http://localhost:8080/definition/postgresql?word=recast 139 | http://localhost:8080/definition/postgresql?word=castalian 140 | http://localhost:8080/definition/postgresql?word=mick 141 | http://localhost:8080/definition/postgresql?word=unhoaxed 142 | http://localhost:8080/definition/postgresql?word=knock 143 | http://localhost:8080/definition/postgresql?word=misbehave 144 | http://localhost:8080/definition/postgresql?word=ungarland 145 | http://localhost:8080/definition/postgresql?word=terminableness 146 | http://localhost:8080/definition/postgresql?word=sapodilla 147 | http://localhost:8080/definition/postgresql?word=discolorment 148 | http://localhost:8080/definition/postgresql?word=unrequiting 149 | http://localhost:8080/definition/postgresql?word=scrobe 150 | http://localhost:8080/definition/postgresql?word=zymin 151 | http://localhost:8080/definition/postgresql?word=erotopathic 152 | http://localhost:8080/definition/postgresql?word=unbetrayed 153 | http://localhost:8080/definition/postgresql?word=asteraceous 154 | http://localhost:8080/definition/postgresql?word=provicariate 155 | http://localhost:8080/definition/postgresql?word=eelware 156 | http://localhost:8080/definition/postgresql?word=trochantinian 157 | http://localhost:8080/definition/postgresql?word=thermopolymerization 158 | http://localhost:8080/definition/postgresql?word=piney 159 | http://localhost:8080/definition/postgresql?word=meditrinalia 160 | http://localhost:8080/definition/postgresql?word=deradenoncus 161 | http://localhost:8080/definition/postgresql?word=sandbox 162 | http://localhost:8080/definition/postgresql?word=necktieless 163 | http://localhost:8080/definition/postgresql?word=shona 164 | http://localhost:8080/definition/postgresql?word=cheiropatagium 165 | http://localhost:8080/definition/postgresql?word=ait 166 | http://localhost:8080/definition/postgresql?word=typewriter 167 | http://localhost:8080/definition/postgresql?word=coinheritance 168 | http://localhost:8080/definition/postgresql?word=leewardness 169 | http://localhost:8080/definition/postgresql?word=skither 170 | http://localhost:8080/definition/postgresql?word=floriscope 171 | http://localhost:8080/definition/postgresql?word=paranthelion 172 | http://localhost:8080/definition/postgresql?word=depolarize 173 | http://localhost:8080/definition/postgresql?word=babelism 174 | http://localhost:8080/definition/postgresql?word=barbas 175 | http://localhost:8080/definition/postgresql?word=taxology 176 | http://localhost:8080/definition/postgresql?word=harmless 177 | http://localhost:8080/definition/postgresql?word=anticaste 178 | http://localhost:8080/definition/postgresql?word=unstrengthened 179 | http://localhost:8080/definition/postgresql?word=scrobis 180 | http://localhost:8080/definition/postgresql?word=debarration 181 | http://localhost:8080/definition/postgresql?word=forehoof 182 | http://localhost:8080/definition/postgresql?word=querecho 183 | http://localhost:8080/definition/postgresql?word=postvertebral 184 | http://localhost:8080/definition/postgresql?word=holly 185 | http://localhost:8080/definition/postgresql?word=algometrical 186 | http://localhost:8080/definition/postgresql?word=anywhen 187 | http://localhost:8080/definition/postgresql?word=phloretic 188 | http://localhost:8080/definition/postgresql?word=priodon 189 | http://localhost:8080/definition/postgresql?word=smyrniote 190 | http://localhost:8080/definition/postgresql?word=jesu 191 | http://localhost:8080/definition/postgresql?word=microscopize 192 | http://localhost:8080/definition/postgresql?word=harmonometer 193 | http://localhost:8080/definition/postgresql?word=grabbling 194 | http://localhost:8080/definition/postgresql?word=usward 195 | http://localhost:8080/definition/postgresql?word=spirochetosis 196 | http://localhost:8080/definition/postgresql?word=overswell 197 | http://localhost:8080/definition/postgresql?word=holocaust 198 | http://localhost:8080/definition/postgresql?word=iamb 199 | http://localhost:8080/definition/postgresql?word=dough 200 | http://localhost:8080/definition/postgresql?word=abrupt -------------------------------------------------------------------------------- /benchmark/many_definitions_domain_urls.txt: -------------------------------------------------------------------------------- 1 | http://localhost:8080/many_definitions/domain?word=se 2 | http://localhost:8080/many_definitions/domain?word=ne 3 | http://localhost:8080/many_definitions/domain?word=re 4 | http://localhost:8080/many_definitions/domain?word=bo 5 | http://localhost:8080/many_definitions/domain?word=to 6 | http://localhost:8080/many_definitions/domain?word=co 7 | http://localhost:8080/many_definitions/domain?word=ma 8 | http://localhost:8080/many_definitions/domain?word=di 9 | http://localhost:8080/many_definitions/domain?word=bl 10 | http://localhost:8080/many_definitions/domain?word=pe 11 | http://localhost:8080/many_definitions/domain?word=gr 12 | http://localhost:8080/many_definitions/domain?word=br 13 | http://localhost:8080/many_definitions/domain?word=ac 14 | http://localhost:8080/many_definitions/domain?word=th 15 | http://localhost:8080/many_definitions/domain?word=mo 16 | http://localhost:8080/many_definitions/domain?word=be 17 | http://localhost:8080/many_definitions/domain?word=au 18 | http://localhost:8080/many_definitions/domain?word=ba 19 | http://localhost:8080/many_definitions/domain?word=va 20 | http://localhost:8080/many_definitions/domain?word=fe 21 | http://localhost:8080/many_definitions/domain?word=ex 22 | http://localhost:8080/many_definitions/domain?word=na 23 | http://localhost:8080/many_definitions/domain?word=po 24 | http://localhost:8080/many_definitions/domain?word=pr 25 | http://localhost:8080/many_definitions/domain?word=ha 26 | http://localhost:8080/many_definitions/domain?word=en 27 | http://localhost:8080/many_definitions/domain?word=li 28 | http://localhost:8080/many_definitions/domain?word=an 29 | http://localhost:8080/many_definitions/domain?word=ph 30 | http://localhost:8080/many_definitions/domain?word=pa 31 | http://localhost:8080/many_definitions/domain?word=lo 32 | http://localhost:8080/many_definitions/domain?word=ov 33 | http://localhost:8080/many_definitions/domain?word=tr 34 | http://localhost:8080/many_definitions/domain?word=ar 35 | http://localhost:8080/many_definitions/domain?word=bu 36 | http://localhost:8080/many_definitions/domain?word=al 37 | http://localhost:8080/many_definitions/domain?word=hy 38 | http://localhost:8080/many_definitions/domain?word=st 39 | http://localhost:8080/many_definitions/domain?word=fi 40 | http://localhost:8080/many_definitions/domain?word=sc 41 | http://localhost:8080/many_definitions/domain?word=sp 42 | http://localhost:8080/many_definitions/domain?word=mi 43 | http://localhost:8080/many_definitions/domain?word=de 44 | http://localhost:8080/many_definitions/domain?word=me 45 | http://localhost:8080/many_definitions/domain?word=wa 46 | http://localhost:8080/many_definitions/domain?word=te 47 | http://localhost:8080/many_definitions/domain?word=do 48 | http://localhost:8080/many_definitions/domain?word=pi 49 | http://localhost:8080/many_definitions/domain?word=ga 50 | http://localhost:8080/many_definitions/domain?word=ca -------------------------------------------------------------------------------- /benchmark/many_definitions_postgresql_urls.txt: -------------------------------------------------------------------------------- 1 | http://localhost:8080/many_definitions/postgresql?word=se 2 | http://localhost:8080/many_definitions/postgresql?word=ne 3 | http://localhost:8080/many_definitions/postgresql?word=re 4 | http://localhost:8080/many_definitions/postgresql?word=bo 5 | http://localhost:8080/many_definitions/postgresql?word=to 6 | http://localhost:8080/many_definitions/postgresql?word=co 7 | http://localhost:8080/many_definitions/postgresql?word=ma 8 | http://localhost:8080/many_definitions/postgresql?word=di 9 | http://localhost:8080/many_definitions/postgresql?word=bl 10 | http://localhost:8080/many_definitions/postgresql?word=pe 11 | http://localhost:8080/many_definitions/postgresql?word=gr 12 | http://localhost:8080/many_definitions/postgresql?word=br 13 | http://localhost:8080/many_definitions/postgresql?word=ac 14 | http://localhost:8080/many_definitions/postgresql?word=th 15 | http://localhost:8080/many_definitions/postgresql?word=mo 16 | http://localhost:8080/many_definitions/postgresql?word=be 17 | http://localhost:8080/many_definitions/postgresql?word=au 18 | http://localhost:8080/many_definitions/postgresql?word=ba 19 | http://localhost:8080/many_definitions/postgresql?word=va 20 | http://localhost:8080/many_definitions/postgresql?word=fe 21 | http://localhost:8080/many_definitions/postgresql?word=ex 22 | http://localhost:8080/many_definitions/postgresql?word=na 23 | http://localhost:8080/many_definitions/postgresql?word=po 24 | http://localhost:8080/many_definitions/postgresql?word=pr 25 | http://localhost:8080/many_definitions/postgresql?word=ha 26 | http://localhost:8080/many_definitions/postgresql?word=en 27 | http://localhost:8080/many_definitions/postgresql?word=li 28 | http://localhost:8080/many_definitions/postgresql?word=an 29 | http://localhost:8080/many_definitions/postgresql?word=ph 30 | http://localhost:8080/many_definitions/postgresql?word=pa 31 | http://localhost:8080/many_definitions/postgresql?word=lo 32 | http://localhost:8080/many_definitions/postgresql?word=ov 33 | http://localhost:8080/many_definitions/postgresql?word=tr 34 | http://localhost:8080/many_definitions/postgresql?word=ar 35 | http://localhost:8080/many_definitions/postgresql?word=bu 36 | http://localhost:8080/many_definitions/postgresql?word=al 37 | http://localhost:8080/many_definitions/postgresql?word=hy 38 | http://localhost:8080/many_definitions/postgresql?word=st 39 | http://localhost:8080/many_definitions/postgresql?word=fi 40 | http://localhost:8080/many_definitions/postgresql?word=sc 41 | http://localhost:8080/many_definitions/postgresql?word=sp 42 | http://localhost:8080/many_definitions/postgresql?word=mi 43 | http://localhost:8080/many_definitions/postgresql?word=de 44 | http://localhost:8080/many_definitions/postgresql?word=me 45 | http://localhost:8080/many_definitions/postgresql?word=wa 46 | http://localhost:8080/many_definitions/postgresql?word=te 47 | http://localhost:8080/many_definitions/postgresql?word=do 48 | http://localhost:8080/many_definitions/postgresql?word=pi 49 | http://localhost:8080/many_definitions/postgresql?word=ga 50 | http://localhost:8080/many_definitions/postgresql?word=ca -------------------------------------------------------------------------------- /benchmark/quick_search_domain_urls.txt: -------------------------------------------------------------------------------- 1 | http://localhost:8080/quick_search/domain?word=py 2 | http://localhost:8080/quick_search/domain?word=ev 3 | http://localhost:8080/quick_search/domain?word=ic 4 | http://localhost:8080/quick_search/domain?word=ve 5 | http://localhost:8080/quick_search/domain?word=vo 6 | http://localhost:8080/quick_search/domain?word=to 7 | http://localhost:8080/quick_search/domain?word=cu 8 | http://localhost:8080/quick_search/domain?word=wa 9 | http://localhost:8080/quick_search/domain?word=li 10 | http://localhost:8080/quick_search/domain?word=br 11 | http://localhost:8080/quick_search/domain?word=ku 12 | http://localhost:8080/quick_search/domain?word=ma 13 | http://localhost:8080/quick_search/domain?word=du 14 | http://localhost:8080/quick_search/domain?word=ti 15 | http://localhost:8080/quick_search/domain?word=no 16 | http://localhost:8080/quick_search/domain?word=le 17 | http://localhost:8080/quick_search/domain?word=gu 18 | http://localhost:8080/quick_search/domain?word=ur 19 | http://localhost:8080/quick_search/domain?word=sa 20 | http://localhost:8080/quick_search/domain?word=un 21 | http://localhost:8080/quick_search/domain?word=us 22 | http://localhost:8080/quick_search/domain?word=do 23 | http://localhost:8080/quick_search/domain?word=or 24 | http://localhost:8080/quick_search/domain?word=ye 25 | http://localhost:8080/quick_search/domain?word=ia 26 | http://localhost:8080/quick_search/domain?word=si 27 | http://localhost:8080/quick_search/domain?word=ac 28 | http://localhost:8080/quick_search/domain?word=co 29 | http://localhost:8080/quick_search/domain?word=dy 30 | http://localhost:8080/quick_search/domain?word=ha 31 | http://localhost:8080/quick_search/domain?word=op 32 | http://localhost:8080/quick_search/domain?word=wr 33 | http://localhost:8080/quick_search/domain?word=tu 34 | http://localhost:8080/quick_search/domain?word=sp 35 | http://localhost:8080/quick_search/domain?word=gr 36 | http://localhost:8080/quick_search/domain?word=ji 37 | http://localhost:8080/quick_search/domain?word=sw 38 | http://localhost:8080/quick_search/domain?word=se 39 | http://localhost:8080/quick_search/domain?word=af 40 | http://localhost:8080/quick_search/domain?word=re 41 | http://localhost:8080/quick_search/domain?word=fl 42 | http://localhost:8080/quick_search/domain?word=eq 43 | http://localhost:8080/quick_search/domain?word=st 44 | http://localhost:8080/quick_search/domain?word=ko 45 | http://localhost:8080/quick_search/domain?word=ap 46 | http://localhost:8080/quick_search/domain?word=by 47 | http://localhost:8080/quick_search/domain?word=je 48 | http://localhost:8080/quick_search/domain?word=hi 49 | http://localhost:8080/quick_search/domain?word=ea 50 | http://localhost:8080/quick_search/domain?word=eu 51 | http://localhost:8080/quick_search/domain?word=ca 52 | http://localhost:8080/quick_search/domain?word=bi 53 | http://localhost:8080/quick_search/domain?word=ov 54 | http://localhost:8080/quick_search/domain?word=da 55 | http://localhost:8080/quick_search/domain?word=go 56 | http://localhost:8080/quick_search/domain?word=er 57 | http://localhost:8080/quick_search/domain?word=hu 58 | http://localhost:8080/quick_search/domain?word=io 59 | http://localhost:8080/quick_search/domain?word=ra 60 | http://localhost:8080/quick_search/domain?word=ad 61 | http://localhost:8080/quick_search/domain?word=gy 62 | http://localhost:8080/quick_search/domain?word=eb 63 | http://localhost:8080/quick_search/domain?word=ja 64 | http://localhost:8080/quick_search/domain?word=sm 65 | http://localhost:8080/quick_search/domain?word=kh 66 | http://localhost:8080/quick_search/domain?word=ge 67 | http://localhost:8080/quick_search/domain?word=ae 68 | http://localhost:8080/quick_search/domain?word=ai 69 | http://localhost:8080/quick_search/domain?word=ir 70 | http://localhost:8080/quick_search/domain?word=ek 71 | http://localhost:8080/quick_search/domain?word=bu 72 | http://localhost:8080/quick_search/domain?word=au 73 | http://localhost:8080/quick_search/domain?word=wi 74 | http://localhost:8080/quick_search/domain?word=ee 75 | http://localhost:8080/quick_search/domain?word=ep 76 | http://localhost:8080/quick_search/domain?word=pa 77 | http://localhost:8080/quick_search/domain?word=me 78 | http://localhost:8080/quick_search/domain?word=ga 79 | http://localhost:8080/quick_search/domain?word=va 80 | http://localhost:8080/quick_search/domain?word=we 81 | http://localhost:8080/quick_search/domain?word=ri 82 | http://localhost:8080/quick_search/domain?word=el 83 | http://localhost:8080/quick_search/domain?word=sq 84 | http://localhost:8080/quick_search/domain?word=ph 85 | http://localhost:8080/quick_search/domain?word=ro 86 | http://localhost:8080/quick_search/domain?word=nu 87 | http://localhost:8080/quick_search/domain?word=gl 88 | http://localhost:8080/quick_search/domain?word=im 89 | http://localhost:8080/quick_search/domain?word=th 90 | http://localhost:8080/quick_search/domain?word=ar 91 | http://localhost:8080/quick_search/domain?word=sc 92 | http://localhost:8080/quick_search/domain?word=aw 93 | http://localhost:8080/quick_search/domain?word=ni 94 | http://localhost:8080/quick_search/domain?word=cl 95 | http://localhost:8080/quick_search/domain?word=xe 96 | http://localhost:8080/quick_search/domain?word=in 97 | http://localhost:8080/quick_search/domain?word=et 98 | http://localhost:8080/quick_search/domain?word=es 99 | http://localhost:8080/quick_search/domain?word=bo 100 | http://localhost:8080/quick_search/domain?word=rh 101 | http://localhost:8080/quick_search/domain?word=pr 102 | http://localhost:8080/quick_search/domain?word=xa 103 | http://localhost:8080/quick_search/domain?word=my 104 | http://localhost:8080/quick_search/domain?word=ed 105 | http://localhost:8080/quick_search/domain?word=so 106 | http://localhost:8080/quick_search/domain?word=ta 107 | http://localhost:8080/quick_search/domain?word=zu 108 | http://localhost:8080/quick_search/domain?word=ef 109 | http://localhost:8080/quick_search/domain?word=fr 110 | http://localhost:8080/quick_search/domain?word=ex 111 | http://localhost:8080/quick_search/domain?word=ju 112 | http://localhost:8080/quick_search/domain?word=is 113 | http://localhost:8080/quick_search/domain?word=dr 114 | http://localhost:8080/quick_search/domain?word=gi 115 | http://localhost:8080/quick_search/domain?word=ol 116 | http://localhost:8080/quick_search/domain?word=up 117 | http://localhost:8080/quick_search/domain?word=em 118 | http://localhost:8080/quick_search/domain?word=mi 119 | http://localhost:8080/quick_search/domain?word=ag 120 | http://localhost:8080/quick_search/domain?word=oy 121 | http://localhost:8080/quick_search/domain?word=hy 122 | http://localhost:8080/quick_search/domain?word=zy 123 | http://localhost:8080/quick_search/domain?word=an 124 | http://localhost:8080/quick_search/domain?word=as 125 | http://localhost:8080/quick_search/domain?word=po 126 | http://localhost:8080/quick_search/domain?word=ka 127 | http://localhost:8080/quick_search/domain?word=mu 128 | http://localhost:8080/quick_search/domain?word=lu 129 | http://localhost:8080/quick_search/domain?word=at 130 | http://localhost:8080/quick_search/domain?word=pl 131 | http://localhost:8080/quick_search/domain?word=jo 132 | http://localhost:8080/quick_search/domain?word=ox 133 | http://localhost:8080/quick_search/domain?word=de 134 | http://localhost:8080/quick_search/domain?word=zo 135 | http://localhost:8080/quick_search/domain?word=wh 136 | http://localhost:8080/quick_search/domain?word=ne 137 | http://localhost:8080/quick_search/domain?word=wo 138 | http://localhost:8080/quick_search/domain?word=ab 139 | http://localhost:8080/quick_search/domain?word=ou 140 | http://localhost:8080/quick_search/domain?word=cy 141 | http://localhost:8080/quick_search/domain?word=en 142 | http://localhost:8080/quick_search/domain?word=ci 143 | http://localhost:8080/quick_search/domain?word=he 144 | http://localhost:8080/quick_search/domain?word=di 145 | http://localhost:8080/quick_search/domain?word=lo 146 | http://localhost:8080/quick_search/domain?word=it 147 | http://localhost:8080/quick_search/domain?word=bl 148 | http://localhost:8080/quick_search/domain?word=ru 149 | http://localhost:8080/quick_search/domain?word=fo 150 | http://localhost:8080/quick_search/domain?word=ps 151 | http://localhost:8080/quick_search/domain?word=ty 152 | http://localhost:8080/quick_search/domain?word=am 153 | http://localhost:8080/quick_search/domain?word=ob 154 | http://localhost:8080/quick_search/domain?word=ba 155 | http://localhost:8080/quick_search/domain?word=qu 156 | http://localhost:8080/quick_search/domain?word=tr 157 | http://localhost:8080/quick_search/domain?word=ak 158 | http://localhost:8080/quick_search/domain?word=pi 159 | http://localhost:8080/quick_search/domain?word=na 160 | http://localhost:8080/quick_search/domain?word=sh 161 | http://localhost:8080/quick_search/domain?word=oc 162 | http://localhost:8080/quick_search/domain?word=ce 163 | http://localhost:8080/quick_search/domain?word=be 164 | http://localhost:8080/quick_search/domain?word=te 165 | http://localhost:8080/quick_search/domain?word=fe 166 | http://localhost:8080/quick_search/domain?word=su 167 | http://localhost:8080/quick_search/domain?word=oo 168 | http://localhost:8080/quick_search/domain?word=ul 169 | http://localhost:8080/quick_search/domain?word=la 170 | http://localhost:8080/quick_search/domain?word=kn 171 | http://localhost:8080/quick_search/domain?word=al 172 | http://localhost:8080/quick_search/domain?word=sk 173 | http://localhost:8080/quick_search/domain?word=pe 174 | http://localhost:8080/quick_search/domain?word=ke 175 | http://localhost:8080/quick_search/domain?word=ki 176 | http://localhost:8080/quick_search/domain?word=fa 177 | http://localhost:8080/quick_search/domain?word=mo 178 | http://localhost:8080/quick_search/domain?word=vi 179 | http://localhost:8080/quick_search/domain?word=sn 180 | http://localhost:8080/quick_search/domain?word=ch 181 | http://localhost:8080/quick_search/domain?word=sy 182 | http://localhost:8080/quick_search/domain?word=cr 183 | http://localhost:8080/quick_search/domain?word=pu 184 | http://localhost:8080/quick_search/domain?word=ho 185 | http://localhost:8080/quick_search/domain?word=fu 186 | http://localhost:8080/quick_search/domain?word=fi 187 | http://localhost:8080/quick_search/domain?word=oe -------------------------------------------------------------------------------- /benchmark/quick_search_pluck_urls.txt: -------------------------------------------------------------------------------- 1 | http://localhost:8080/quick_search/pluck?word=py 2 | http://localhost:8080/quick_search/pluck?word=ev 3 | http://localhost:8080/quick_search/pluck?word=ic 4 | http://localhost:8080/quick_search/pluck?word=ve 5 | http://localhost:8080/quick_search/pluck?word=vo 6 | http://localhost:8080/quick_search/pluck?word=to 7 | http://localhost:8080/quick_search/pluck?word=cu 8 | http://localhost:8080/quick_search/pluck?word=wa 9 | http://localhost:8080/quick_search/pluck?word=li 10 | http://localhost:8080/quick_search/pluck?word=br 11 | http://localhost:8080/quick_search/pluck?word=ku 12 | http://localhost:8080/quick_search/pluck?word=ma 13 | http://localhost:8080/quick_search/pluck?word=du 14 | http://localhost:8080/quick_search/pluck?word=ti 15 | http://localhost:8080/quick_search/pluck?word=no 16 | http://localhost:8080/quick_search/pluck?word=le 17 | http://localhost:8080/quick_search/pluck?word=gu 18 | http://localhost:8080/quick_search/pluck?word=ur 19 | http://localhost:8080/quick_search/pluck?word=sa 20 | http://localhost:8080/quick_search/pluck?word=un 21 | http://localhost:8080/quick_search/pluck?word=us 22 | http://localhost:8080/quick_search/pluck?word=do 23 | http://localhost:8080/quick_search/pluck?word=or 24 | http://localhost:8080/quick_search/pluck?word=ye 25 | http://localhost:8080/quick_search/pluck?word=ia 26 | http://localhost:8080/quick_search/pluck?word=si 27 | http://localhost:8080/quick_search/pluck?word=ac 28 | http://localhost:8080/quick_search/pluck?word=co 29 | http://localhost:8080/quick_search/pluck?word=dy 30 | http://localhost:8080/quick_search/pluck?word=ha 31 | http://localhost:8080/quick_search/pluck?word=op 32 | http://localhost:8080/quick_search/pluck?word=wr 33 | http://localhost:8080/quick_search/pluck?word=tu 34 | http://localhost:8080/quick_search/pluck?word=sp 35 | http://localhost:8080/quick_search/pluck?word=gr 36 | http://localhost:8080/quick_search/pluck?word=ji 37 | http://localhost:8080/quick_search/pluck?word=sw 38 | http://localhost:8080/quick_search/pluck?word=se 39 | http://localhost:8080/quick_search/pluck?word=af 40 | http://localhost:8080/quick_search/pluck?word=re 41 | http://localhost:8080/quick_search/pluck?word=fl 42 | http://localhost:8080/quick_search/pluck?word=eq 43 | http://localhost:8080/quick_search/pluck?word=st 44 | http://localhost:8080/quick_search/pluck?word=ko 45 | http://localhost:8080/quick_search/pluck?word=ap 46 | http://localhost:8080/quick_search/pluck?word=by 47 | http://localhost:8080/quick_search/pluck?word=je 48 | http://localhost:8080/quick_search/pluck?word=hi 49 | http://localhost:8080/quick_search/pluck?word=ea 50 | http://localhost:8080/quick_search/pluck?word=eu 51 | http://localhost:8080/quick_search/pluck?word=ca 52 | http://localhost:8080/quick_search/pluck?word=bi 53 | http://localhost:8080/quick_search/pluck?word=ov 54 | http://localhost:8080/quick_search/pluck?word=da 55 | http://localhost:8080/quick_search/pluck?word=go 56 | http://localhost:8080/quick_search/pluck?word=er 57 | http://localhost:8080/quick_search/pluck?word=hu 58 | http://localhost:8080/quick_search/pluck?word=io 59 | http://localhost:8080/quick_search/pluck?word=ra 60 | http://localhost:8080/quick_search/pluck?word=ad 61 | http://localhost:8080/quick_search/pluck?word=gy 62 | http://localhost:8080/quick_search/pluck?word=eb 63 | http://localhost:8080/quick_search/pluck?word=ja 64 | http://localhost:8080/quick_search/pluck?word=sm 65 | http://localhost:8080/quick_search/pluck?word=kh 66 | http://localhost:8080/quick_search/pluck?word=ge 67 | http://localhost:8080/quick_search/pluck?word=ae 68 | http://localhost:8080/quick_search/pluck?word=ai 69 | http://localhost:8080/quick_search/pluck?word=ir 70 | http://localhost:8080/quick_search/pluck?word=ek 71 | http://localhost:8080/quick_search/pluck?word=bu 72 | http://localhost:8080/quick_search/pluck?word=au 73 | http://localhost:8080/quick_search/pluck?word=wi 74 | http://localhost:8080/quick_search/pluck?word=ee 75 | http://localhost:8080/quick_search/pluck?word=ep 76 | http://localhost:8080/quick_search/pluck?word=pa 77 | http://localhost:8080/quick_search/pluck?word=me 78 | http://localhost:8080/quick_search/pluck?word=ga 79 | http://localhost:8080/quick_search/pluck?word=va 80 | http://localhost:8080/quick_search/pluck?word=we 81 | http://localhost:8080/quick_search/pluck?word=ri 82 | http://localhost:8080/quick_search/pluck?word=el 83 | http://localhost:8080/quick_search/pluck?word=sq 84 | http://localhost:8080/quick_search/pluck?word=ph 85 | http://localhost:8080/quick_search/pluck?word=ro 86 | http://localhost:8080/quick_search/pluck?word=nu 87 | http://localhost:8080/quick_search/pluck?word=gl 88 | http://localhost:8080/quick_search/pluck?word=im 89 | http://localhost:8080/quick_search/pluck?word=th 90 | http://localhost:8080/quick_search/pluck?word=ar 91 | http://localhost:8080/quick_search/pluck?word=sc 92 | http://localhost:8080/quick_search/pluck?word=aw 93 | http://localhost:8080/quick_search/pluck?word=ni 94 | http://localhost:8080/quick_search/pluck?word=cl 95 | http://localhost:8080/quick_search/pluck?word=xe 96 | http://localhost:8080/quick_search/pluck?word=in 97 | http://localhost:8080/quick_search/pluck?word=et 98 | http://localhost:8080/quick_search/pluck?word=es 99 | http://localhost:8080/quick_search/pluck?word=bo 100 | http://localhost:8080/quick_search/pluck?word=rh 101 | http://localhost:8080/quick_search/pluck?word=pr 102 | http://localhost:8080/quick_search/pluck?word=xa 103 | http://localhost:8080/quick_search/pluck?word=my 104 | http://localhost:8080/quick_search/pluck?word=ed 105 | http://localhost:8080/quick_search/pluck?word=so 106 | http://localhost:8080/quick_search/pluck?word=ta 107 | http://localhost:8080/quick_search/pluck?word=zu 108 | http://localhost:8080/quick_search/pluck?word=ef 109 | http://localhost:8080/quick_search/pluck?word=fr 110 | http://localhost:8080/quick_search/pluck?word=ex 111 | http://localhost:8080/quick_search/pluck?word=ju 112 | http://localhost:8080/quick_search/pluck?word=is 113 | http://localhost:8080/quick_search/pluck?word=dr 114 | http://localhost:8080/quick_search/pluck?word=gi 115 | http://localhost:8080/quick_search/pluck?word=ol 116 | http://localhost:8080/quick_search/pluck?word=up 117 | http://localhost:8080/quick_search/pluck?word=em 118 | http://localhost:8080/quick_search/pluck?word=mi 119 | http://localhost:8080/quick_search/pluck?word=ag 120 | http://localhost:8080/quick_search/pluck?word=oy 121 | http://localhost:8080/quick_search/pluck?word=hy 122 | http://localhost:8080/quick_search/pluck?word=zy 123 | http://localhost:8080/quick_search/pluck?word=an 124 | http://localhost:8080/quick_search/pluck?word=as 125 | http://localhost:8080/quick_search/pluck?word=po 126 | http://localhost:8080/quick_search/pluck?word=ka 127 | http://localhost:8080/quick_search/pluck?word=mu 128 | http://localhost:8080/quick_search/pluck?word=lu 129 | http://localhost:8080/quick_search/pluck?word=at 130 | http://localhost:8080/quick_search/pluck?word=pl 131 | http://localhost:8080/quick_search/pluck?word=jo 132 | http://localhost:8080/quick_search/pluck?word=ox 133 | http://localhost:8080/quick_search/pluck?word=de 134 | http://localhost:8080/quick_search/pluck?word=zo 135 | http://localhost:8080/quick_search/pluck?word=wh 136 | http://localhost:8080/quick_search/pluck?word=ne 137 | http://localhost:8080/quick_search/pluck?word=wo 138 | http://localhost:8080/quick_search/pluck?word=ab 139 | http://localhost:8080/quick_search/pluck?word=ou 140 | http://localhost:8080/quick_search/pluck?word=cy 141 | http://localhost:8080/quick_search/pluck?word=en 142 | http://localhost:8080/quick_search/pluck?word=ci 143 | http://localhost:8080/quick_search/pluck?word=he 144 | http://localhost:8080/quick_search/pluck?word=di 145 | http://localhost:8080/quick_search/pluck?word=lo 146 | http://localhost:8080/quick_search/pluck?word=it 147 | http://localhost:8080/quick_search/pluck?word=bl 148 | http://localhost:8080/quick_search/pluck?word=ru 149 | http://localhost:8080/quick_search/pluck?word=fo 150 | http://localhost:8080/quick_search/pluck?word=ps 151 | http://localhost:8080/quick_search/pluck?word=ty 152 | http://localhost:8080/quick_search/pluck?word=am 153 | http://localhost:8080/quick_search/pluck?word=ob 154 | http://localhost:8080/quick_search/pluck?word=ba 155 | http://localhost:8080/quick_search/pluck?word=qu 156 | http://localhost:8080/quick_search/pluck?word=tr 157 | http://localhost:8080/quick_search/pluck?word=ak 158 | http://localhost:8080/quick_search/pluck?word=pi 159 | http://localhost:8080/quick_search/pluck?word=na 160 | http://localhost:8080/quick_search/pluck?word=sh 161 | http://localhost:8080/quick_search/pluck?word=oc 162 | http://localhost:8080/quick_search/pluck?word=ce 163 | http://localhost:8080/quick_search/pluck?word=be 164 | http://localhost:8080/quick_search/pluck?word=te 165 | http://localhost:8080/quick_search/pluck?word=fe 166 | http://localhost:8080/quick_search/pluck?word=su 167 | http://localhost:8080/quick_search/pluck?word=oo 168 | http://localhost:8080/quick_search/pluck?word=ul 169 | http://localhost:8080/quick_search/pluck?word=la 170 | http://localhost:8080/quick_search/pluck?word=kn 171 | http://localhost:8080/quick_search/pluck?word=al 172 | http://localhost:8080/quick_search/pluck?word=sk 173 | http://localhost:8080/quick_search/pluck?word=pe 174 | http://localhost:8080/quick_search/pluck?word=ke 175 | http://localhost:8080/quick_search/pluck?word=ki 176 | http://localhost:8080/quick_search/pluck?word=fa 177 | http://localhost:8080/quick_search/pluck?word=mo 178 | http://localhost:8080/quick_search/pluck?word=vi 179 | http://localhost:8080/quick_search/pluck?word=sn 180 | http://localhost:8080/quick_search/pluck?word=ch 181 | http://localhost:8080/quick_search/pluck?word=sy 182 | http://localhost:8080/quick_search/pluck?word=cr 183 | http://localhost:8080/quick_search/pluck?word=pu 184 | http://localhost:8080/quick_search/pluck?word=ho 185 | http://localhost:8080/quick_search/pluck?word=fu 186 | http://localhost:8080/quick_search/pluck?word=fi 187 | http://localhost:8080/quick_search/pluck?word=oe -------------------------------------------------------------------------------- /benchmark/quick_search_postgresql_urls.txt: -------------------------------------------------------------------------------- 1 | http://localhost:8080/quick_search/postgresql?word=py 2 | http://localhost:8080/quick_search/postgresql?word=ev 3 | http://localhost:8080/quick_search/postgresql?word=ic 4 | http://localhost:8080/quick_search/postgresql?word=ve 5 | http://localhost:8080/quick_search/postgresql?word=vo 6 | http://localhost:8080/quick_search/postgresql?word=to 7 | http://localhost:8080/quick_search/postgresql?word=cu 8 | http://localhost:8080/quick_search/postgresql?word=wa 9 | http://localhost:8080/quick_search/postgresql?word=li 10 | http://localhost:8080/quick_search/postgresql?word=br 11 | http://localhost:8080/quick_search/postgresql?word=ku 12 | http://localhost:8080/quick_search/postgresql?word=ma 13 | http://localhost:8080/quick_search/postgresql?word=du 14 | http://localhost:8080/quick_search/postgresql?word=ti 15 | http://localhost:8080/quick_search/postgresql?word=no 16 | http://localhost:8080/quick_search/postgresql?word=le 17 | http://localhost:8080/quick_search/postgresql?word=gu 18 | http://localhost:8080/quick_search/postgresql?word=ur 19 | http://localhost:8080/quick_search/postgresql?word=sa 20 | http://localhost:8080/quick_search/postgresql?word=un 21 | http://localhost:8080/quick_search/postgresql?word=us 22 | http://localhost:8080/quick_search/postgresql?word=do 23 | http://localhost:8080/quick_search/postgresql?word=or 24 | http://localhost:8080/quick_search/postgresql?word=ye 25 | http://localhost:8080/quick_search/postgresql?word=ia 26 | http://localhost:8080/quick_search/postgresql?word=si 27 | http://localhost:8080/quick_search/postgresql?word=ac 28 | http://localhost:8080/quick_search/postgresql?word=co 29 | http://localhost:8080/quick_search/postgresql?word=dy 30 | http://localhost:8080/quick_search/postgresql?word=ha 31 | http://localhost:8080/quick_search/postgresql?word=op 32 | http://localhost:8080/quick_search/postgresql?word=wr 33 | http://localhost:8080/quick_search/postgresql?word=tu 34 | http://localhost:8080/quick_search/postgresql?word=sp 35 | http://localhost:8080/quick_search/postgresql?word=gr 36 | http://localhost:8080/quick_search/postgresql?word=ji 37 | http://localhost:8080/quick_search/postgresql?word=sw 38 | http://localhost:8080/quick_search/postgresql?word=se 39 | http://localhost:8080/quick_search/postgresql?word=af 40 | http://localhost:8080/quick_search/postgresql?word=re 41 | http://localhost:8080/quick_search/postgresql?word=fl 42 | http://localhost:8080/quick_search/postgresql?word=eq 43 | http://localhost:8080/quick_search/postgresql?word=st 44 | http://localhost:8080/quick_search/postgresql?word=ko 45 | http://localhost:8080/quick_search/postgresql?word=ap 46 | http://localhost:8080/quick_search/postgresql?word=by 47 | http://localhost:8080/quick_search/postgresql?word=je 48 | http://localhost:8080/quick_search/postgresql?word=hi 49 | http://localhost:8080/quick_search/postgresql?word=ea 50 | http://localhost:8080/quick_search/postgresql?word=eu 51 | http://localhost:8080/quick_search/postgresql?word=ca 52 | http://localhost:8080/quick_search/postgresql?word=bi 53 | http://localhost:8080/quick_search/postgresql?word=ov 54 | http://localhost:8080/quick_search/postgresql?word=da 55 | http://localhost:8080/quick_search/postgresql?word=go 56 | http://localhost:8080/quick_search/postgresql?word=er 57 | http://localhost:8080/quick_search/postgresql?word=hu 58 | http://localhost:8080/quick_search/postgresql?word=io 59 | http://localhost:8080/quick_search/postgresql?word=ra 60 | http://localhost:8080/quick_search/postgresql?word=ad 61 | http://localhost:8080/quick_search/postgresql?word=gy 62 | http://localhost:8080/quick_search/postgresql?word=eb 63 | http://localhost:8080/quick_search/postgresql?word=ja 64 | http://localhost:8080/quick_search/postgresql?word=sm 65 | http://localhost:8080/quick_search/postgresql?word=kh 66 | http://localhost:8080/quick_search/postgresql?word=ge 67 | http://localhost:8080/quick_search/postgresql?word=ae 68 | http://localhost:8080/quick_search/postgresql?word=ai 69 | http://localhost:8080/quick_search/postgresql?word=ir 70 | http://localhost:8080/quick_search/postgresql?word=ek 71 | http://localhost:8080/quick_search/postgresql?word=bu 72 | http://localhost:8080/quick_search/postgresql?word=au 73 | http://localhost:8080/quick_search/postgresql?word=wi 74 | http://localhost:8080/quick_search/postgresql?word=ee 75 | http://localhost:8080/quick_search/postgresql?word=ep 76 | http://localhost:8080/quick_search/postgresql?word=pa 77 | http://localhost:8080/quick_search/postgresql?word=me 78 | http://localhost:8080/quick_search/postgresql?word=ga 79 | http://localhost:8080/quick_search/postgresql?word=va 80 | http://localhost:8080/quick_search/postgresql?word=we 81 | http://localhost:8080/quick_search/postgresql?word=ri 82 | http://localhost:8080/quick_search/postgresql?word=el 83 | http://localhost:8080/quick_search/postgresql?word=sq 84 | http://localhost:8080/quick_search/postgresql?word=ph 85 | http://localhost:8080/quick_search/postgresql?word=ro 86 | http://localhost:8080/quick_search/postgresql?word=nu 87 | http://localhost:8080/quick_search/postgresql?word=gl 88 | http://localhost:8080/quick_search/postgresql?word=im 89 | http://localhost:8080/quick_search/postgresql?word=th 90 | http://localhost:8080/quick_search/postgresql?word=ar 91 | http://localhost:8080/quick_search/postgresql?word=sc 92 | http://localhost:8080/quick_search/postgresql?word=aw 93 | http://localhost:8080/quick_search/postgresql?word=ni 94 | http://localhost:8080/quick_search/postgresql?word=cl 95 | http://localhost:8080/quick_search/postgresql?word=xe 96 | http://localhost:8080/quick_search/postgresql?word=in 97 | http://localhost:8080/quick_search/postgresql?word=et 98 | http://localhost:8080/quick_search/postgresql?word=es 99 | http://localhost:8080/quick_search/postgresql?word=bo 100 | http://localhost:8080/quick_search/postgresql?word=rh 101 | http://localhost:8080/quick_search/postgresql?word=pr 102 | http://localhost:8080/quick_search/postgresql?word=xa 103 | http://localhost:8080/quick_search/postgresql?word=my 104 | http://localhost:8080/quick_search/postgresql?word=ed 105 | http://localhost:8080/quick_search/postgresql?word=so 106 | http://localhost:8080/quick_search/postgresql?word=ta 107 | http://localhost:8080/quick_search/postgresql?word=zu 108 | http://localhost:8080/quick_search/postgresql?word=ef 109 | http://localhost:8080/quick_search/postgresql?word=fr 110 | http://localhost:8080/quick_search/postgresql?word=ex 111 | http://localhost:8080/quick_search/postgresql?word=ju 112 | http://localhost:8080/quick_search/postgresql?word=is 113 | http://localhost:8080/quick_search/postgresql?word=dr 114 | http://localhost:8080/quick_search/postgresql?word=gi 115 | http://localhost:8080/quick_search/postgresql?word=ol 116 | http://localhost:8080/quick_search/postgresql?word=up 117 | http://localhost:8080/quick_search/postgresql?word=em 118 | http://localhost:8080/quick_search/postgresql?word=mi 119 | http://localhost:8080/quick_search/postgresql?word=ag 120 | http://localhost:8080/quick_search/postgresql?word=oy 121 | http://localhost:8080/quick_search/postgresql?word=hy 122 | http://localhost:8080/quick_search/postgresql?word=zy 123 | http://localhost:8080/quick_search/postgresql?word=an 124 | http://localhost:8080/quick_search/postgresql?word=as 125 | http://localhost:8080/quick_search/postgresql?word=po 126 | http://localhost:8080/quick_search/postgresql?word=ka 127 | http://localhost:8080/quick_search/postgresql?word=mu 128 | http://localhost:8080/quick_search/postgresql?word=lu 129 | http://localhost:8080/quick_search/postgresql?word=at 130 | http://localhost:8080/quick_search/postgresql?word=pl 131 | http://localhost:8080/quick_search/postgresql?word=jo 132 | http://localhost:8080/quick_search/postgresql?word=ox 133 | http://localhost:8080/quick_search/postgresql?word=de 134 | http://localhost:8080/quick_search/postgresql?word=zo 135 | http://localhost:8080/quick_search/postgresql?word=wh 136 | http://localhost:8080/quick_search/postgresql?word=ne 137 | http://localhost:8080/quick_search/postgresql?word=wo 138 | http://localhost:8080/quick_search/postgresql?word=ab 139 | http://localhost:8080/quick_search/postgresql?word=ou 140 | http://localhost:8080/quick_search/postgresql?word=cy 141 | http://localhost:8080/quick_search/postgresql?word=en 142 | http://localhost:8080/quick_search/postgresql?word=ci 143 | http://localhost:8080/quick_search/postgresql?word=he 144 | http://localhost:8080/quick_search/postgresql?word=di 145 | http://localhost:8080/quick_search/postgresql?word=lo 146 | http://localhost:8080/quick_search/postgresql?word=it 147 | http://localhost:8080/quick_search/postgresql?word=bl 148 | http://localhost:8080/quick_search/postgresql?word=ru 149 | http://localhost:8080/quick_search/postgresql?word=fo 150 | http://localhost:8080/quick_search/postgresql?word=ps 151 | http://localhost:8080/quick_search/postgresql?word=ty 152 | http://localhost:8080/quick_search/postgresql?word=am 153 | http://localhost:8080/quick_search/postgresql?word=ob 154 | http://localhost:8080/quick_search/postgresql?word=ba 155 | http://localhost:8080/quick_search/postgresql?word=qu 156 | http://localhost:8080/quick_search/postgresql?word=tr 157 | http://localhost:8080/quick_search/postgresql?word=ak 158 | http://localhost:8080/quick_search/postgresql?word=pi 159 | http://localhost:8080/quick_search/postgresql?word=na 160 | http://localhost:8080/quick_search/postgresql?word=sh 161 | http://localhost:8080/quick_search/postgresql?word=oc 162 | http://localhost:8080/quick_search/postgresql?word=ce 163 | http://localhost:8080/quick_search/postgresql?word=be 164 | http://localhost:8080/quick_search/postgresql?word=te 165 | http://localhost:8080/quick_search/postgresql?word=fe 166 | http://localhost:8080/quick_search/postgresql?word=su 167 | http://localhost:8080/quick_search/postgresql?word=oo 168 | http://localhost:8080/quick_search/postgresql?word=ul 169 | http://localhost:8080/quick_search/postgresql?word=la 170 | http://localhost:8080/quick_search/postgresql?word=kn 171 | http://localhost:8080/quick_search/postgresql?word=al 172 | http://localhost:8080/quick_search/postgresql?word=sk 173 | http://localhost:8080/quick_search/postgresql?word=pe 174 | http://localhost:8080/quick_search/postgresql?word=ke 175 | http://localhost:8080/quick_search/postgresql?word=ki 176 | http://localhost:8080/quick_search/postgresql?word=fa 177 | http://localhost:8080/quick_search/postgresql?word=mo 178 | http://localhost:8080/quick_search/postgresql?word=vi 179 | http://localhost:8080/quick_search/postgresql?word=sn 180 | http://localhost:8080/quick_search/postgresql?word=ch 181 | http://localhost:8080/quick_search/postgresql?word=sy 182 | http://localhost:8080/quick_search/postgresql?word=cr 183 | http://localhost:8080/quick_search/postgresql?word=pu 184 | http://localhost:8080/quick_search/postgresql?word=ho 185 | http://localhost:8080/quick_search/postgresql?word=fu 186 | http://localhost:8080/quick_search/postgresql?word=fi 187 | http://localhost:8080/quick_search/postgresql?word=oe -------------------------------------------------------------------------------- /benchmark/rich_search_domain_urls.txt: -------------------------------------------------------------------------------- 1 | http://localhost:8080/rich_search/domain?word=py 2 | http://localhost:8080/rich_search/domain?word=ev 3 | http://localhost:8080/rich_search/domain?word=ic 4 | http://localhost:8080/rich_search/domain?word=ve 5 | http://localhost:8080/rich_search/domain?word=vo 6 | http://localhost:8080/rich_search/domain?word=to 7 | http://localhost:8080/rich_search/domain?word=cu 8 | http://localhost:8080/rich_search/domain?word=wa 9 | http://localhost:8080/rich_search/domain?word=li 10 | http://localhost:8080/rich_search/domain?word=br 11 | http://localhost:8080/rich_search/domain?word=ku 12 | http://localhost:8080/rich_search/domain?word=ma 13 | http://localhost:8080/rich_search/domain?word=du 14 | http://localhost:8080/rich_search/domain?word=ti 15 | http://localhost:8080/rich_search/domain?word=no 16 | http://localhost:8080/rich_search/domain?word=le 17 | http://localhost:8080/rich_search/domain?word=gu 18 | http://localhost:8080/rich_search/domain?word=ur 19 | http://localhost:8080/rich_search/domain?word=sa 20 | http://localhost:8080/rich_search/domain?word=un 21 | http://localhost:8080/rich_search/domain?word=us 22 | http://localhost:8080/rich_search/domain?word=do 23 | http://localhost:8080/rich_search/domain?word=or 24 | http://localhost:8080/rich_search/domain?word=ye 25 | http://localhost:8080/rich_search/domain?word=ia 26 | http://localhost:8080/rich_search/domain?word=si 27 | http://localhost:8080/rich_search/domain?word=ac 28 | http://localhost:8080/rich_search/domain?word=co 29 | http://localhost:8080/rich_search/domain?word=dy 30 | http://localhost:8080/rich_search/domain?word=ha 31 | http://localhost:8080/rich_search/domain?word=op 32 | http://localhost:8080/rich_search/domain?word=wr 33 | http://localhost:8080/rich_search/domain?word=tu 34 | http://localhost:8080/rich_search/domain?word=sp 35 | http://localhost:8080/rich_search/domain?word=gr 36 | http://localhost:8080/rich_search/domain?word=ji 37 | http://localhost:8080/rich_search/domain?word=sw 38 | http://localhost:8080/rich_search/domain?word=se 39 | http://localhost:8080/rich_search/domain?word=af 40 | http://localhost:8080/rich_search/domain?word=re 41 | http://localhost:8080/rich_search/domain?word=fl 42 | http://localhost:8080/rich_search/domain?word=eq 43 | http://localhost:8080/rich_search/domain?word=st 44 | http://localhost:8080/rich_search/domain?word=ko 45 | http://localhost:8080/rich_search/domain?word=ap 46 | http://localhost:8080/rich_search/domain?word=by 47 | http://localhost:8080/rich_search/domain?word=je 48 | http://localhost:8080/rich_search/domain?word=hi 49 | http://localhost:8080/rich_search/domain?word=ea 50 | http://localhost:8080/rich_search/domain?word=eu 51 | http://localhost:8080/rich_search/domain?word=ca 52 | http://localhost:8080/rich_search/domain?word=bi 53 | http://localhost:8080/rich_search/domain?word=ov 54 | http://localhost:8080/rich_search/domain?word=da 55 | http://localhost:8080/rich_search/domain?word=go 56 | http://localhost:8080/rich_search/domain?word=er 57 | http://localhost:8080/rich_search/domain?word=hu 58 | http://localhost:8080/rich_search/domain?word=io 59 | http://localhost:8080/rich_search/domain?word=ra 60 | http://localhost:8080/rich_search/domain?word=ad 61 | http://localhost:8080/rich_search/domain?word=gy 62 | http://localhost:8080/rich_search/domain?word=eb 63 | http://localhost:8080/rich_search/domain?word=ja 64 | http://localhost:8080/rich_search/domain?word=sm 65 | http://localhost:8080/rich_search/domain?word=kh 66 | http://localhost:8080/rich_search/domain?word=ge 67 | http://localhost:8080/rich_search/domain?word=ae 68 | http://localhost:8080/rich_search/domain?word=ai 69 | http://localhost:8080/rich_search/domain?word=ir 70 | http://localhost:8080/rich_search/domain?word=ek 71 | http://localhost:8080/rich_search/domain?word=bu 72 | http://localhost:8080/rich_search/domain?word=au 73 | http://localhost:8080/rich_search/domain?word=wi 74 | http://localhost:8080/rich_search/domain?word=ee 75 | http://localhost:8080/rich_search/domain?word=ep 76 | http://localhost:8080/rich_search/domain?word=pa 77 | http://localhost:8080/rich_search/domain?word=me 78 | http://localhost:8080/rich_search/domain?word=ga 79 | http://localhost:8080/rich_search/domain?word=va 80 | http://localhost:8080/rich_search/domain?word=we 81 | http://localhost:8080/rich_search/domain?word=ri 82 | http://localhost:8080/rich_search/domain?word=el 83 | http://localhost:8080/rich_search/domain?word=sq 84 | http://localhost:8080/rich_search/domain?word=ph 85 | http://localhost:8080/rich_search/domain?word=ro 86 | http://localhost:8080/rich_search/domain?word=nu 87 | http://localhost:8080/rich_search/domain?word=gl 88 | http://localhost:8080/rich_search/domain?word=im 89 | http://localhost:8080/rich_search/domain?word=th 90 | http://localhost:8080/rich_search/domain?word=ar 91 | http://localhost:8080/rich_search/domain?word=sc 92 | http://localhost:8080/rich_search/domain?word=aw 93 | http://localhost:8080/rich_search/domain?word=ni 94 | http://localhost:8080/rich_search/domain?word=cl 95 | http://localhost:8080/rich_search/domain?word=xe 96 | http://localhost:8080/rich_search/domain?word=in 97 | http://localhost:8080/rich_search/domain?word=et 98 | http://localhost:8080/rich_search/domain?word=es 99 | http://localhost:8080/rich_search/domain?word=bo 100 | http://localhost:8080/rich_search/domain?word=rh 101 | http://localhost:8080/rich_search/domain?word=pr 102 | http://localhost:8080/rich_search/domain?word=xa 103 | http://localhost:8080/rich_search/domain?word=my 104 | http://localhost:8080/rich_search/domain?word=ed 105 | http://localhost:8080/rich_search/domain?word=so 106 | http://localhost:8080/rich_search/domain?word=ta 107 | http://localhost:8080/rich_search/domain?word=zu 108 | http://localhost:8080/rich_search/domain?word=ef 109 | http://localhost:8080/rich_search/domain?word=fr 110 | http://localhost:8080/rich_search/domain?word=ex 111 | http://localhost:8080/rich_search/domain?word=ju 112 | http://localhost:8080/rich_search/domain?word=is 113 | http://localhost:8080/rich_search/domain?word=dr 114 | http://localhost:8080/rich_search/domain?word=gi 115 | http://localhost:8080/rich_search/domain?word=ol 116 | http://localhost:8080/rich_search/domain?word=up 117 | http://localhost:8080/rich_search/domain?word=em 118 | http://localhost:8080/rich_search/domain?word=mi 119 | http://localhost:8080/rich_search/domain?word=ag 120 | http://localhost:8080/rich_search/domain?word=oy 121 | http://localhost:8080/rich_search/domain?word=hy 122 | http://localhost:8080/rich_search/domain?word=zy 123 | http://localhost:8080/rich_search/domain?word=an 124 | http://localhost:8080/rich_search/domain?word=as 125 | http://localhost:8080/rich_search/domain?word=po 126 | http://localhost:8080/rich_search/domain?word=ka 127 | http://localhost:8080/rich_search/domain?word=mu 128 | http://localhost:8080/rich_search/domain?word=lu 129 | http://localhost:8080/rich_search/domain?word=at 130 | http://localhost:8080/rich_search/domain?word=pl 131 | http://localhost:8080/rich_search/domain?word=jo 132 | http://localhost:8080/rich_search/domain?word=ox 133 | http://localhost:8080/rich_search/domain?word=de 134 | http://localhost:8080/rich_search/domain?word=zo 135 | http://localhost:8080/rich_search/domain?word=wh 136 | http://localhost:8080/rich_search/domain?word=ne 137 | http://localhost:8080/rich_search/domain?word=wo 138 | http://localhost:8080/rich_search/domain?word=ab 139 | http://localhost:8080/rich_search/domain?word=ou 140 | http://localhost:8080/rich_search/domain?word=cy 141 | http://localhost:8080/rich_search/domain?word=en 142 | http://localhost:8080/rich_search/domain?word=ci 143 | http://localhost:8080/rich_search/domain?word=he 144 | http://localhost:8080/rich_search/domain?word=di 145 | http://localhost:8080/rich_search/domain?word=lo 146 | http://localhost:8080/rich_search/domain?word=it 147 | http://localhost:8080/rich_search/domain?word=bl 148 | http://localhost:8080/rich_search/domain?word=ru 149 | http://localhost:8080/rich_search/domain?word=fo 150 | http://localhost:8080/rich_search/domain?word=ps 151 | http://localhost:8080/rich_search/domain?word=ty 152 | http://localhost:8080/rich_search/domain?word=am 153 | http://localhost:8080/rich_search/domain?word=ob 154 | http://localhost:8080/rich_search/domain?word=ba 155 | http://localhost:8080/rich_search/domain?word=qu 156 | http://localhost:8080/rich_search/domain?word=tr 157 | http://localhost:8080/rich_search/domain?word=ak 158 | http://localhost:8080/rich_search/domain?word=pi 159 | http://localhost:8080/rich_search/domain?word=na 160 | http://localhost:8080/rich_search/domain?word=sh 161 | http://localhost:8080/rich_search/domain?word=oc 162 | http://localhost:8080/rich_search/domain?word=ce 163 | http://localhost:8080/rich_search/domain?word=be 164 | http://localhost:8080/rich_search/domain?word=te 165 | http://localhost:8080/rich_search/domain?word=fe 166 | http://localhost:8080/rich_search/domain?word=su 167 | http://localhost:8080/rich_search/domain?word=oo 168 | http://localhost:8080/rich_search/domain?word=ul 169 | http://localhost:8080/rich_search/domain?word=la 170 | http://localhost:8080/rich_search/domain?word=kn 171 | http://localhost:8080/rich_search/domain?word=al 172 | http://localhost:8080/rich_search/domain?word=sk 173 | http://localhost:8080/rich_search/domain?word=pe 174 | http://localhost:8080/rich_search/domain?word=ke 175 | http://localhost:8080/rich_search/domain?word=ki 176 | http://localhost:8080/rich_search/domain?word=fa 177 | http://localhost:8080/rich_search/domain?word=mo 178 | http://localhost:8080/rich_search/domain?word=vi 179 | http://localhost:8080/rich_search/domain?word=sn 180 | http://localhost:8080/rich_search/domain?word=ch 181 | http://localhost:8080/rich_search/domain?word=sy 182 | http://localhost:8080/rich_search/domain?word=cr 183 | http://localhost:8080/rich_search/domain?word=pu 184 | http://localhost:8080/rich_search/domain?word=ho 185 | http://localhost:8080/rich_search/domain?word=fu 186 | http://localhost:8080/rich_search/domain?word=fi 187 | http://localhost:8080/rich_search/domain?word=oe -------------------------------------------------------------------------------- /benchmark/rich_search_postgresql_urls.txt: -------------------------------------------------------------------------------- 1 | http://localhost:8080/rich_search/postgresql?word=py 2 | http://localhost:8080/rich_search/postgresql?word=ev 3 | http://localhost:8080/rich_search/postgresql?word=ic 4 | http://localhost:8080/rich_search/postgresql?word=ve 5 | http://localhost:8080/rich_search/postgresql?word=vo 6 | http://localhost:8080/rich_search/postgresql?word=to 7 | http://localhost:8080/rich_search/postgresql?word=cu 8 | http://localhost:8080/rich_search/postgresql?word=wa 9 | http://localhost:8080/rich_search/postgresql?word=li 10 | http://localhost:8080/rich_search/postgresql?word=br 11 | http://localhost:8080/rich_search/postgresql?word=ku 12 | http://localhost:8080/rich_search/postgresql?word=ma 13 | http://localhost:8080/rich_search/postgresql?word=du 14 | http://localhost:8080/rich_search/postgresql?word=ti 15 | http://localhost:8080/rich_search/postgresql?word=no 16 | http://localhost:8080/rich_search/postgresql?word=le 17 | http://localhost:8080/rich_search/postgresql?word=gu 18 | http://localhost:8080/rich_search/postgresql?word=ur 19 | http://localhost:8080/rich_search/postgresql?word=sa 20 | http://localhost:8080/rich_search/postgresql?word=un 21 | http://localhost:8080/rich_search/postgresql?word=us 22 | http://localhost:8080/rich_search/postgresql?word=do 23 | http://localhost:8080/rich_search/postgresql?word=or 24 | http://localhost:8080/rich_search/postgresql?word=ye 25 | http://localhost:8080/rich_search/postgresql?word=ia 26 | http://localhost:8080/rich_search/postgresql?word=si 27 | http://localhost:8080/rich_search/postgresql?word=ac 28 | http://localhost:8080/rich_search/postgresql?word=co 29 | http://localhost:8080/rich_search/postgresql?word=dy 30 | http://localhost:8080/rich_search/postgresql?word=ha 31 | http://localhost:8080/rich_search/postgresql?word=op 32 | http://localhost:8080/rich_search/postgresql?word=wr 33 | http://localhost:8080/rich_search/postgresql?word=tu 34 | http://localhost:8080/rich_search/postgresql?word=sp 35 | http://localhost:8080/rich_search/postgresql?word=gr 36 | http://localhost:8080/rich_search/postgresql?word=ji 37 | http://localhost:8080/rich_search/postgresql?word=sw 38 | http://localhost:8080/rich_search/postgresql?word=se 39 | http://localhost:8080/rich_search/postgresql?word=af 40 | http://localhost:8080/rich_search/postgresql?word=re 41 | http://localhost:8080/rich_search/postgresql?word=fl 42 | http://localhost:8080/rich_search/postgresql?word=eq 43 | http://localhost:8080/rich_search/postgresql?word=st 44 | http://localhost:8080/rich_search/postgresql?word=ko 45 | http://localhost:8080/rich_search/postgresql?word=ap 46 | http://localhost:8080/rich_search/postgresql?word=by 47 | http://localhost:8080/rich_search/postgresql?word=je 48 | http://localhost:8080/rich_search/postgresql?word=hi 49 | http://localhost:8080/rich_search/postgresql?word=ea 50 | http://localhost:8080/rich_search/postgresql?word=eu 51 | http://localhost:8080/rich_search/postgresql?word=ca 52 | http://localhost:8080/rich_search/postgresql?word=bi 53 | http://localhost:8080/rich_search/postgresql?word=ov 54 | http://localhost:8080/rich_search/postgresql?word=da 55 | http://localhost:8080/rich_search/postgresql?word=go 56 | http://localhost:8080/rich_search/postgresql?word=er 57 | http://localhost:8080/rich_search/postgresql?word=hu 58 | http://localhost:8080/rich_search/postgresql?word=io 59 | http://localhost:8080/rich_search/postgresql?word=ra 60 | http://localhost:8080/rich_search/postgresql?word=ad 61 | http://localhost:8080/rich_search/postgresql?word=gy 62 | http://localhost:8080/rich_search/postgresql?word=eb 63 | http://localhost:8080/rich_search/postgresql?word=ja 64 | http://localhost:8080/rich_search/postgresql?word=sm 65 | http://localhost:8080/rich_search/postgresql?word=kh 66 | http://localhost:8080/rich_search/postgresql?word=ge 67 | http://localhost:8080/rich_search/postgresql?word=ae 68 | http://localhost:8080/rich_search/postgresql?word=ai 69 | http://localhost:8080/rich_search/postgresql?word=ir 70 | http://localhost:8080/rich_search/postgresql?word=ek 71 | http://localhost:8080/rich_search/postgresql?word=bu 72 | http://localhost:8080/rich_search/postgresql?word=au 73 | http://localhost:8080/rich_search/postgresql?word=wi 74 | http://localhost:8080/rich_search/postgresql?word=ee 75 | http://localhost:8080/rich_search/postgresql?word=ep 76 | http://localhost:8080/rich_search/postgresql?word=pa 77 | http://localhost:8080/rich_search/postgresql?word=me 78 | http://localhost:8080/rich_search/postgresql?word=ga 79 | http://localhost:8080/rich_search/postgresql?word=va 80 | http://localhost:8080/rich_search/postgresql?word=we 81 | http://localhost:8080/rich_search/postgresql?word=ri 82 | http://localhost:8080/rich_search/postgresql?word=el 83 | http://localhost:8080/rich_search/postgresql?word=sq 84 | http://localhost:8080/rich_search/postgresql?word=ph 85 | http://localhost:8080/rich_search/postgresql?word=ro 86 | http://localhost:8080/rich_search/postgresql?word=nu 87 | http://localhost:8080/rich_search/postgresql?word=gl 88 | http://localhost:8080/rich_search/postgresql?word=im 89 | http://localhost:8080/rich_search/postgresql?word=th 90 | http://localhost:8080/rich_search/postgresql?word=ar 91 | http://localhost:8080/rich_search/postgresql?word=sc 92 | http://localhost:8080/rich_search/postgresql?word=aw 93 | http://localhost:8080/rich_search/postgresql?word=ni 94 | http://localhost:8080/rich_search/postgresql?word=cl 95 | http://localhost:8080/rich_search/postgresql?word=xe 96 | http://localhost:8080/rich_search/postgresql?word=in 97 | http://localhost:8080/rich_search/postgresql?word=et 98 | http://localhost:8080/rich_search/postgresql?word=es 99 | http://localhost:8080/rich_search/postgresql?word=bo 100 | http://localhost:8080/rich_search/postgresql?word=rh 101 | http://localhost:8080/rich_search/postgresql?word=pr 102 | http://localhost:8080/rich_search/postgresql?word=xa 103 | http://localhost:8080/rich_search/postgresql?word=my 104 | http://localhost:8080/rich_search/postgresql?word=ed 105 | http://localhost:8080/rich_search/postgresql?word=so 106 | http://localhost:8080/rich_search/postgresql?word=ta 107 | http://localhost:8080/rich_search/postgresql?word=zu 108 | http://localhost:8080/rich_search/postgresql?word=ef 109 | http://localhost:8080/rich_search/postgresql?word=fr 110 | http://localhost:8080/rich_search/postgresql?word=ex 111 | http://localhost:8080/rich_search/postgresql?word=ju 112 | http://localhost:8080/rich_search/postgresql?word=is 113 | http://localhost:8080/rich_search/postgresql?word=dr 114 | http://localhost:8080/rich_search/postgresql?word=gi 115 | http://localhost:8080/rich_search/postgresql?word=ol 116 | http://localhost:8080/rich_search/postgresql?word=up 117 | http://localhost:8080/rich_search/postgresql?word=em 118 | http://localhost:8080/rich_search/postgresql?word=mi 119 | http://localhost:8080/rich_search/postgresql?word=ag 120 | http://localhost:8080/rich_search/postgresql?word=oy 121 | http://localhost:8080/rich_search/postgresql?word=hy 122 | http://localhost:8080/rich_search/postgresql?word=zy 123 | http://localhost:8080/rich_search/postgresql?word=an 124 | http://localhost:8080/rich_search/postgresql?word=as 125 | http://localhost:8080/rich_search/postgresql?word=po 126 | http://localhost:8080/rich_search/postgresql?word=ka 127 | http://localhost:8080/rich_search/postgresql?word=mu 128 | http://localhost:8080/rich_search/postgresql?word=lu 129 | http://localhost:8080/rich_search/postgresql?word=at 130 | http://localhost:8080/rich_search/postgresql?word=pl 131 | http://localhost:8080/rich_search/postgresql?word=jo 132 | http://localhost:8080/rich_search/postgresql?word=ox 133 | http://localhost:8080/rich_search/postgresql?word=de 134 | http://localhost:8080/rich_search/postgresql?word=zo 135 | http://localhost:8080/rich_search/postgresql?word=wh 136 | http://localhost:8080/rich_search/postgresql?word=ne 137 | http://localhost:8080/rich_search/postgresql?word=wo 138 | http://localhost:8080/rich_search/postgresql?word=ab 139 | http://localhost:8080/rich_search/postgresql?word=ou 140 | http://localhost:8080/rich_search/postgresql?word=cy 141 | http://localhost:8080/rich_search/postgresql?word=en 142 | http://localhost:8080/rich_search/postgresql?word=ci 143 | http://localhost:8080/rich_search/postgresql?word=he 144 | http://localhost:8080/rich_search/postgresql?word=di 145 | http://localhost:8080/rich_search/postgresql?word=lo 146 | http://localhost:8080/rich_search/postgresql?word=it 147 | http://localhost:8080/rich_search/postgresql?word=bl 148 | http://localhost:8080/rich_search/postgresql?word=ru 149 | http://localhost:8080/rich_search/postgresql?word=fo 150 | http://localhost:8080/rich_search/postgresql?word=ps 151 | http://localhost:8080/rich_search/postgresql?word=ty 152 | http://localhost:8080/rich_search/postgresql?word=am 153 | http://localhost:8080/rich_search/postgresql?word=ob 154 | http://localhost:8080/rich_search/postgresql?word=ba 155 | http://localhost:8080/rich_search/postgresql?word=qu 156 | http://localhost:8080/rich_search/postgresql?word=tr 157 | http://localhost:8080/rich_search/postgresql?word=ak 158 | http://localhost:8080/rich_search/postgresql?word=pi 159 | http://localhost:8080/rich_search/postgresql?word=na 160 | http://localhost:8080/rich_search/postgresql?word=sh 161 | http://localhost:8080/rich_search/postgresql?word=oc 162 | http://localhost:8080/rich_search/postgresql?word=ce 163 | http://localhost:8080/rich_search/postgresql?word=be 164 | http://localhost:8080/rich_search/postgresql?word=te 165 | http://localhost:8080/rich_search/postgresql?word=fe 166 | http://localhost:8080/rich_search/postgresql?word=su 167 | http://localhost:8080/rich_search/postgresql?word=oo 168 | http://localhost:8080/rich_search/postgresql?word=ul 169 | http://localhost:8080/rich_search/postgresql?word=la 170 | http://localhost:8080/rich_search/postgresql?word=kn 171 | http://localhost:8080/rich_search/postgresql?word=al 172 | http://localhost:8080/rich_search/postgresql?word=sk 173 | http://localhost:8080/rich_search/postgresql?word=pe 174 | http://localhost:8080/rich_search/postgresql?word=ke 175 | http://localhost:8080/rich_search/postgresql?word=ki 176 | http://localhost:8080/rich_search/postgresql?word=fa 177 | http://localhost:8080/rich_search/postgresql?word=mo 178 | http://localhost:8080/rich_search/postgresql?word=vi 179 | http://localhost:8080/rich_search/postgresql?word=sn 180 | http://localhost:8080/rich_search/postgresql?word=ch 181 | http://localhost:8080/rich_search/postgresql?word=sy 182 | http://localhost:8080/rich_search/postgresql?word=cr 183 | http://localhost:8080/rich_search/postgresql?word=pu 184 | http://localhost:8080/rich_search/postgresql?word=ho 185 | http://localhost:8080/rich_search/postgresql?word=fu 186 | http://localhost:8080/rich_search/postgresql?word=fi 187 | http://localhost:8080/rich_search/postgresql?word=oe -------------------------------------------------------------------------------- /benchmark/rich_search_select_all_urls.txt: -------------------------------------------------------------------------------- 1 | http://localhost:8080/rich_search/select_all?word=py 2 | http://localhost:8080/rich_search/select_all?word=ev 3 | http://localhost:8080/rich_search/select_all?word=ic 4 | http://localhost:8080/rich_search/select_all?word=ve 5 | http://localhost:8080/rich_search/select_all?word=vo 6 | http://localhost:8080/rich_search/select_all?word=to 7 | http://localhost:8080/rich_search/select_all?word=cu 8 | http://localhost:8080/rich_search/select_all?word=wa 9 | http://localhost:8080/rich_search/select_all?word=li 10 | http://localhost:8080/rich_search/select_all?word=br 11 | http://localhost:8080/rich_search/select_all?word=ku 12 | http://localhost:8080/rich_search/select_all?word=ma 13 | http://localhost:8080/rich_search/select_all?word=du 14 | http://localhost:8080/rich_search/select_all?word=ti 15 | http://localhost:8080/rich_search/select_all?word=no 16 | http://localhost:8080/rich_search/select_all?word=le 17 | http://localhost:8080/rich_search/select_all?word=gu 18 | http://localhost:8080/rich_search/select_all?word=ur 19 | http://localhost:8080/rich_search/select_all?word=sa 20 | http://localhost:8080/rich_search/select_all?word=un 21 | http://localhost:8080/rich_search/select_all?word=us 22 | http://localhost:8080/rich_search/select_all?word=do 23 | http://localhost:8080/rich_search/select_all?word=or 24 | http://localhost:8080/rich_search/select_all?word=ye 25 | http://localhost:8080/rich_search/select_all?word=ia 26 | http://localhost:8080/rich_search/select_all?word=si 27 | http://localhost:8080/rich_search/select_all?word=ac 28 | http://localhost:8080/rich_search/select_all?word=co 29 | http://localhost:8080/rich_search/select_all?word=dy 30 | http://localhost:8080/rich_search/select_all?word=ha 31 | http://localhost:8080/rich_search/select_all?word=op 32 | http://localhost:8080/rich_search/select_all?word=wr 33 | http://localhost:8080/rich_search/select_all?word=tu 34 | http://localhost:8080/rich_search/select_all?word=sp 35 | http://localhost:8080/rich_search/select_all?word=gr 36 | http://localhost:8080/rich_search/select_all?word=ji 37 | http://localhost:8080/rich_search/select_all?word=sw 38 | http://localhost:8080/rich_search/select_all?word=se 39 | http://localhost:8080/rich_search/select_all?word=af 40 | http://localhost:8080/rich_search/select_all?word=re 41 | http://localhost:8080/rich_search/select_all?word=fl 42 | http://localhost:8080/rich_search/select_all?word=eq 43 | http://localhost:8080/rich_search/select_all?word=st 44 | http://localhost:8080/rich_search/select_all?word=ko 45 | http://localhost:8080/rich_search/select_all?word=ap 46 | http://localhost:8080/rich_search/select_all?word=by 47 | http://localhost:8080/rich_search/select_all?word=je 48 | http://localhost:8080/rich_search/select_all?word=hi 49 | http://localhost:8080/rich_search/select_all?word=ea 50 | http://localhost:8080/rich_search/select_all?word=eu 51 | http://localhost:8080/rich_search/select_all?word=ca 52 | http://localhost:8080/rich_search/select_all?word=bi 53 | http://localhost:8080/rich_search/select_all?word=ov 54 | http://localhost:8080/rich_search/select_all?word=da 55 | http://localhost:8080/rich_search/select_all?word=go 56 | http://localhost:8080/rich_search/select_all?word=er 57 | http://localhost:8080/rich_search/select_all?word=hu 58 | http://localhost:8080/rich_search/select_all?word=io 59 | http://localhost:8080/rich_search/select_all?word=ra 60 | http://localhost:8080/rich_search/select_all?word=ad 61 | http://localhost:8080/rich_search/select_all?word=gy 62 | http://localhost:8080/rich_search/select_all?word=eb 63 | http://localhost:8080/rich_search/select_all?word=ja 64 | http://localhost:8080/rich_search/select_all?word=sm 65 | http://localhost:8080/rich_search/select_all?word=kh 66 | http://localhost:8080/rich_search/select_all?word=ge 67 | http://localhost:8080/rich_search/select_all?word=ae 68 | http://localhost:8080/rich_search/select_all?word=ai 69 | http://localhost:8080/rich_search/select_all?word=ir 70 | http://localhost:8080/rich_search/select_all?word=ek 71 | http://localhost:8080/rich_search/select_all?word=bu 72 | http://localhost:8080/rich_search/select_all?word=au 73 | http://localhost:8080/rich_search/select_all?word=wi 74 | http://localhost:8080/rich_search/select_all?word=ee 75 | http://localhost:8080/rich_search/select_all?word=ep 76 | http://localhost:8080/rich_search/select_all?word=pa 77 | http://localhost:8080/rich_search/select_all?word=me 78 | http://localhost:8080/rich_search/select_all?word=ga 79 | http://localhost:8080/rich_search/select_all?word=va 80 | http://localhost:8080/rich_search/select_all?word=we 81 | http://localhost:8080/rich_search/select_all?word=ri 82 | http://localhost:8080/rich_search/select_all?word=el 83 | http://localhost:8080/rich_search/select_all?word=sq 84 | http://localhost:8080/rich_search/select_all?word=ph 85 | http://localhost:8080/rich_search/select_all?word=ro 86 | http://localhost:8080/rich_search/select_all?word=nu 87 | http://localhost:8080/rich_search/select_all?word=gl 88 | http://localhost:8080/rich_search/select_all?word=im 89 | http://localhost:8080/rich_search/select_all?word=th 90 | http://localhost:8080/rich_search/select_all?word=ar 91 | http://localhost:8080/rich_search/select_all?word=sc 92 | http://localhost:8080/rich_search/select_all?word=aw 93 | http://localhost:8080/rich_search/select_all?word=ni 94 | http://localhost:8080/rich_search/select_all?word=cl 95 | http://localhost:8080/rich_search/select_all?word=xe 96 | http://localhost:8080/rich_search/select_all?word=in 97 | http://localhost:8080/rich_search/select_all?word=et 98 | http://localhost:8080/rich_search/select_all?word=es 99 | http://localhost:8080/rich_search/select_all?word=bo 100 | http://localhost:8080/rich_search/select_all?word=rh 101 | http://localhost:8080/rich_search/select_all?word=pr 102 | http://localhost:8080/rich_search/select_all?word=xa 103 | http://localhost:8080/rich_search/select_all?word=my 104 | http://localhost:8080/rich_search/select_all?word=ed 105 | http://localhost:8080/rich_search/select_all?word=so 106 | http://localhost:8080/rich_search/select_all?word=ta 107 | http://localhost:8080/rich_search/select_all?word=zu 108 | http://localhost:8080/rich_search/select_all?word=ef 109 | http://localhost:8080/rich_search/select_all?word=fr 110 | http://localhost:8080/rich_search/select_all?word=ex 111 | http://localhost:8080/rich_search/select_all?word=ju 112 | http://localhost:8080/rich_search/select_all?word=is 113 | http://localhost:8080/rich_search/select_all?word=dr 114 | http://localhost:8080/rich_search/select_all?word=gi 115 | http://localhost:8080/rich_search/select_all?word=ol 116 | http://localhost:8080/rich_search/select_all?word=up 117 | http://localhost:8080/rich_search/select_all?word=em 118 | http://localhost:8080/rich_search/select_all?word=mi 119 | http://localhost:8080/rich_search/select_all?word=ag 120 | http://localhost:8080/rich_search/select_all?word=oy 121 | http://localhost:8080/rich_search/select_all?word=hy 122 | http://localhost:8080/rich_search/select_all?word=zy 123 | http://localhost:8080/rich_search/select_all?word=an 124 | http://localhost:8080/rich_search/select_all?word=as 125 | http://localhost:8080/rich_search/select_all?word=po 126 | http://localhost:8080/rich_search/select_all?word=ka 127 | http://localhost:8080/rich_search/select_all?word=mu 128 | http://localhost:8080/rich_search/select_all?word=lu 129 | http://localhost:8080/rich_search/select_all?word=at 130 | http://localhost:8080/rich_search/select_all?word=pl 131 | http://localhost:8080/rich_search/select_all?word=jo 132 | http://localhost:8080/rich_search/select_all?word=ox 133 | http://localhost:8080/rich_search/select_all?word=de 134 | http://localhost:8080/rich_search/select_all?word=zo 135 | http://localhost:8080/rich_search/select_all?word=wh 136 | http://localhost:8080/rich_search/select_all?word=ne 137 | http://localhost:8080/rich_search/select_all?word=wo 138 | http://localhost:8080/rich_search/select_all?word=ab 139 | http://localhost:8080/rich_search/select_all?word=ou 140 | http://localhost:8080/rich_search/select_all?word=cy 141 | http://localhost:8080/rich_search/select_all?word=en 142 | http://localhost:8080/rich_search/select_all?word=ci 143 | http://localhost:8080/rich_search/select_all?word=he 144 | http://localhost:8080/rich_search/select_all?word=di 145 | http://localhost:8080/rich_search/select_all?word=lo 146 | http://localhost:8080/rich_search/select_all?word=it 147 | http://localhost:8080/rich_search/select_all?word=bl 148 | http://localhost:8080/rich_search/select_all?word=ru 149 | http://localhost:8080/rich_search/select_all?word=fo 150 | http://localhost:8080/rich_search/select_all?word=ps 151 | http://localhost:8080/rich_search/select_all?word=ty 152 | http://localhost:8080/rich_search/select_all?word=am 153 | http://localhost:8080/rich_search/select_all?word=ob 154 | http://localhost:8080/rich_search/select_all?word=ba 155 | http://localhost:8080/rich_search/select_all?word=qu 156 | http://localhost:8080/rich_search/select_all?word=tr 157 | http://localhost:8080/rich_search/select_all?word=ak 158 | http://localhost:8080/rich_search/select_all?word=pi 159 | http://localhost:8080/rich_search/select_all?word=na 160 | http://localhost:8080/rich_search/select_all?word=sh 161 | http://localhost:8080/rich_search/select_all?word=oc 162 | http://localhost:8080/rich_search/select_all?word=ce 163 | http://localhost:8080/rich_search/select_all?word=be 164 | http://localhost:8080/rich_search/select_all?word=te 165 | http://localhost:8080/rich_search/select_all?word=fe 166 | http://localhost:8080/rich_search/select_all?word=su 167 | http://localhost:8080/rich_search/select_all?word=oo 168 | http://localhost:8080/rich_search/select_all?word=ul 169 | http://localhost:8080/rich_search/select_all?word=la 170 | http://localhost:8080/rich_search/select_all?word=kn 171 | http://localhost:8080/rich_search/select_all?word=al 172 | http://localhost:8080/rich_search/select_all?word=sk 173 | http://localhost:8080/rich_search/select_all?word=pe 174 | http://localhost:8080/rich_search/select_all?word=ke 175 | http://localhost:8080/rich_search/select_all?word=ki 176 | http://localhost:8080/rich_search/select_all?word=fa 177 | http://localhost:8080/rich_search/select_all?word=mo 178 | http://localhost:8080/rich_search/select_all?word=vi 179 | http://localhost:8080/rich_search/select_all?word=sn 180 | http://localhost:8080/rich_search/select_all?word=ch 181 | http://localhost:8080/rich_search/select_all?word=sy 182 | http://localhost:8080/rich_search/select_all?word=cr 183 | http://localhost:8080/rich_search/select_all?word=pu 184 | http://localhost:8080/rich_search/select_all?word=ho 185 | http://localhost:8080/rich_search/select_all?word=fu 186 | http://localhost:8080/rich_search/select_all?word=fi 187 | http://localhost:8080/rich_search/select_all?word=oe -------------------------------------------------------------------------------- /benchmark/words.txt: -------------------------------------------------------------------------------- 1 | abaissed 2 | abbatial 3 | abelia 4 | abrupt 5 | acaleph 6 | acclimatize 7 | accusatival 8 | acetalization 9 | acetnaphthalide 10 | acousmatic 11 | actionless 12 | adenocancroid 13 | advancement 14 | advisal 15 | aeromancy 16 | affectationist 17 | agathism 18 | agoge 19 | agranulocytosis 20 | aguelike 21 | ait 22 | ake 23 | akinesia 24 | alarmed 25 | albuminimeter 26 | alcelaphine 27 | alexic 28 | algometrical 29 | altazimuth 30 | amalgamate 31 | amanuenses 32 | anacrisis 33 | anaematosis 34 | analcime 35 | analphabet 36 | anamniotic 37 | anele 38 | anemoscope 39 | animadverter 40 | anoine 41 | antecedently 42 | anticaste 43 | anticomplementary 44 | antihemisphere 45 | antitragic 46 | anywhen 47 | aphthartodocetism 48 | appeasing 49 | approbate 50 | archaeolithic 51 | arctostaphylos 52 | arenilitic 53 | armoried 54 | arthragra 55 | artiste 56 | ashur 57 | aslant 58 | aspalax 59 | assamese 60 | asteraceous 61 | astrography 62 | asynaptic 63 | athwartships 64 | atloidoaxoid 65 | atridean 66 | atropia 67 | atticize 68 | auricula 69 | auriphone 70 | autoclave 71 | autogenetically 72 | autonoetic 73 | autotuberculin 74 | autumn 75 | awellimiden 76 | babaylan 77 | babelism 78 | babish 79 | bacbakiri 80 | barbas 81 | barbiturate 82 | bargainee 83 | bask 84 | bayamo 85 | beauseant 86 | bedgery 87 | bedoctor 88 | belong 89 | benet 90 | bessarabian 91 | betterer 92 | bicapitate 93 | bildar 94 | bipyramid 95 | bistort 96 | blast 97 | blastoneuropore 98 | blattodea 99 | blenniiform 100 | blepharochalasis 101 | bloodflower 102 | blotchy 103 | blowoff 104 | bluebutton 105 | bobac 106 | boebera 107 | bolewort 108 | boringly 109 | bossiness 110 | bougar 111 | brabble 112 | brangling 113 | brecken 114 | bremely 115 | bremeness 116 | broguish 117 | bronchoesophagoscopy 118 | buddhaship 119 | bugle 120 | burbly 121 | burrito 122 | butanoic 123 | butchery 124 | butlerlike 125 | buttress 126 | buzzwig 127 | byssin 128 | cableman 129 | cabriole 130 | cacoethic 131 | cadaverize 132 | cadaverously 133 | calycanthaceous 134 | campanulariae 135 | cardialgy 136 | carlin 137 | caseworker 138 | castalian 139 | castellate 140 | casula 141 | cataclastic 142 | catarinite 143 | cautelously 144 | cavelike 145 | cazimi 146 | centrode 147 | cephalogenesis 148 | chamkanni 149 | chartist 150 | chartless 151 | chatterbox 152 | cheiropatagium 153 | cheven 154 | chloragogen 155 | cholecystojejunostomy 156 | chondroskeleton 157 | chondrotomy 158 | choragion 159 | christ 160 | cinchonate 161 | cinemograph 162 | cistic 163 | clinia 164 | clinic 165 | clumpish 166 | coadunite 167 | coapt 168 | coattailed 169 | cobblestone 170 | cobwebbery 171 | cocainization 172 | cockalorum 173 | coenoecic 174 | coessential 175 | cogue 176 | coinheritance 177 | combretaceous 178 | complimentingly 179 | conceitedness 180 | conditionalist 181 | connie 182 | consignificate 183 | consignify 184 | contorted 185 | conversationalist 186 | converting 187 | convolvulin 188 | copperbottom 189 | cordon 190 | corniculum 191 | coronobasilar 192 | corrobboree 193 | cotarnine 194 | cotype 195 | coumarou 196 | counterarch 197 | counterstock 198 | countertransference 199 | craniosacral 200 | crick 201 | cuba 202 | cumyl 203 | cyanochroic 204 | cymosely 205 | dastardliness 206 | debarration 207 | decarburation 208 | decorator 209 | decostate 210 | deditician 211 | defectology 212 | deluding 213 | demibeast 214 | demnition 215 | dennis 216 | departer 217 | depolarize 218 | deradenoncus 219 | dermoreaction 220 | desmachymatous 221 | desulphurization 222 | dewer 223 | diacodion 224 | diadromous 225 | dialectology 226 | diarthric 227 | dicarbonic 228 | diceras 229 | dimanganous 230 | diplanetic 231 | directorate 232 | discolorment 233 | discredence 234 | discursively 235 | disenfranchise 236 | disilicid 237 | disilicide 238 | disobligation 239 | diverting 240 | doctoral 241 | doctorless 242 | dolichocephalic 243 | donjon 244 | dopper 245 | dough 246 | doxy 247 | draftsmanship 248 | drawgear 249 | drawstring 250 | druse 251 | dulcin 252 | dullish 253 | dygogram 254 | dynamometamorphosed 255 | eagle 256 | earlap 257 | ebullitive 258 | edna 259 | eelware 260 | efficaciously 261 | ekamanganese 262 | elaeodendron 263 | elaterid 264 | electioneerer 265 | emolumental 266 | empiecement 267 | enaluron 268 | endothermic 269 | endovaccination 270 | engold 271 | enlightenedness 272 | entailment 273 | enumerative 274 | epilogic 275 | epistemological 276 | equant 277 | eros 278 | erotopathic 279 | erythroclasis 280 | erythrocytic 281 | escaper 282 | ethnobotany 283 | eurycephalous 284 | euthamia 285 | evetide 286 | excessman 287 | exodermis 288 | exoteric 289 | express 290 | expurgative 291 | extracosmic 292 | extraovular 293 | falchion 294 | farmhouse 295 | farmhousey 296 | fathom 297 | favorite 298 | feminism 299 | feoffor 300 | fernbird 301 | fervanite 302 | festive 303 | feverbush 304 | fidia 305 | filippo 306 | fillable 307 | firmisternia 308 | fishback 309 | fivescore 310 | flint 311 | florence 312 | floriscope 313 | fluidize 314 | flumerin 315 | foredate 316 | forehoof 317 | forensical 318 | forestal 319 | forksmith 320 | friend 321 | frivolity 322 | frog 323 | frustum 324 | furtively 325 | galenical 326 | galvanopsychic 327 | gamostelic 328 | ganglioform 329 | gansey 330 | gassing 331 | gastriloquist 332 | gemmeous 333 | geoscopic 334 | germanophobic 335 | ginglymodi 336 | glair 337 | glaister 338 | gliosa 339 | godsake 340 | goniopholis 341 | gorlois 342 | governesshood 343 | grabbling 344 | granulative 345 | graphis 346 | greaser 347 | greenless 348 | gregorianize 349 | griffade 350 | guestchamber 351 | gunpowder 352 | gymnocarpic 353 | gyrational 354 | gyrostabilizer 355 | haematobranchia 356 | hairmonger 357 | halieutics 358 | hamulites 359 | handclasp 360 | harmless 361 | harmonometer 362 | hateful 363 | haycap 364 | heelball 365 | helicoidal 366 | hemicranic 367 | hemihedric 368 | hendecasyllable 369 | hermetic 370 | hermetically 371 | hermoglyphic 372 | hesthogenous 373 | heteromyaria 374 | heterosuggestion 375 | hilda 376 | hiliferous 377 | hoist 378 | holly 379 | holocaust 380 | homeotic 381 | homologon 382 | homovanillic 383 | honeyful 384 | hoplonemertine 385 | hot 386 | hunanese 387 | hunk 388 | hurried 389 | hussyness 390 | hutterites 391 | hyalotype 392 | hydrazide 393 | hydrocarbon 394 | hymnology 395 | hyoepiglottidean 396 | hyperbolicly 397 | hyperintelligence 398 | hyperobtrusive 399 | hypersensualism 400 | hypnocyst 401 | hypophysectomy 402 | iamb 403 | ichnological 404 | ichthyal 405 | impolarizable 406 | incivility 407 | incoherentific 408 | inconfutable 409 | indifferentist 410 | indigitate 411 | inducer 412 | inexact 413 | inexistent 414 | infective 415 | inflamed 416 | infrugal 417 | ingulf 418 | inhabitiveness 419 | inkwriter 420 | inoperculate 421 | insculpture 422 | instrumentalize 423 | insurmountability 424 | intemporally 425 | intercessor 426 | intercondenser 427 | intercrystallize 428 | interesting 429 | interhemispheric 430 | interimistic 431 | interroom 432 | intershock 433 | intracommunication 434 | intrafissural 435 | inweight 436 | iodopsin 437 | irrationalism 438 | isogeotherm 439 | isolationism 440 | italicize 441 | jaculatory 442 | jesu 443 | jiltee 444 | johnstrupite 445 | jokingly 446 | jolting 447 | jong 448 | julien 449 | justifiable 450 | kappe 451 | karyokinetic 452 | keb 453 | ketol 454 | khediva 455 | kirkify 456 | kittly 457 | knock 458 | knowable 459 | kodakist 460 | kowtow 461 | kusti 462 | labionasal 463 | lactigenous 464 | lansquenet 465 | latentness 466 | lateritic 467 | leewardness 468 | lemurian 469 | lenaean 470 | lentitudinous 471 | lestiwarite 472 | libatory 473 | liber 474 | limulid 475 | lionel 476 | lipodystrophia 477 | listred 478 | lithely 479 | lixive 480 | lobatae 481 | localness 482 | logicist 483 | logometric 484 | loined 485 | lokapala 486 | longipennate 487 | lophiomyidae 488 | lorilet 489 | lowly 490 | lucentio 491 | luge 492 | lumbricus 493 | macadamization 494 | magistratical 495 | malhygiene 496 | manurially 497 | manyways 498 | massiest 499 | mealtime 500 | mediterraneanization 501 | meditrinalia 502 | mellimide 503 | mendelssohnic 504 | mesitite 505 | mesomorph 506 | mesopterygoid 507 | metaconid 508 | metaparapteral 509 | methylnaphthalene 510 | metrectopy 511 | mick 512 | microphonic 513 | microscopize 514 | mimosaceae 515 | minkish 516 | misbehave 517 | misorganize 518 | misresolved 519 | mixobarbaric 520 | modulation 521 | monadology 522 | monobloc 523 | monogenesy 524 | monoparesis 525 | mornings 526 | motor 527 | mouseweb 528 | mowana 529 | multichord 530 | multifidus 531 | multivocal 532 | myopic 533 | mythologer 534 | myxospongiae 535 | nagman 536 | nakedish 537 | napecrest 538 | nardus 539 | nasicorn 540 | nasioalveolar 541 | nebby 542 | necktieless 543 | needleproof 544 | negotiatrix 545 | neon 546 | neoplasty 547 | nephros 548 | neuromere 549 | neuropterous 550 | neurotherapy 551 | nitrifaction 552 | nivenite 553 | noiselessly 554 | nonabjurer 555 | noncertified 556 | nonepileptic 557 | nonindictable 558 | nonintrusion 559 | nonmedicinal 560 | nonmetallic 561 | nonmodal 562 | nonpress 563 | northerliness 564 | nucleofugal 565 | nude 566 | nullifier 567 | obsidionary 568 | oceanican 569 | oecodomic 570 | olfactology 571 | oligoprothesy 572 | oocyesis 573 | operetta 574 | opthalmophorium 575 | orphanism 576 | outfeast 577 | outpart 578 | outtrade 579 | outwalk 580 | ovalize 581 | overbookish 582 | overbred 583 | overcall 584 | overconscientious 585 | overcontribution 586 | overheadiness 587 | overproportioned 588 | oversteadfastness 589 | oversubtly 590 | overswell 591 | ovile 592 | oxalemia 593 | oxamate 594 | oysterage 595 | palaeodendrologically 596 | palatineship 597 | pancreaticoduodenostomy 598 | pantiling 599 | pantomimish 600 | papalty 601 | parachromophorous 602 | paraflocculus 603 | paranthelion 604 | parasitical 605 | parcellation 606 | parenchymous 607 | parisyllabical 608 | paroecy 609 | paronymic 610 | partan 611 | particularistically 612 | pedalism 613 | pentalogy 614 | pentecostal 615 | percid 616 | period 617 | periodicity 618 | permalloy 619 | perovskite 620 | persecution 621 | perturbment 622 | phenocoll 623 | phloretic 624 | phoenicaceous 625 | phosphocarnic 626 | photochromotypy 627 | photoelectricity 628 | phragmoid 629 | phycoerythrin 630 | phyllostomatidae 631 | phylogeny 632 | phytalbumose 633 | phytoteratologist 634 | pikeman 635 | pimpinella 636 | pinda 637 | piney 638 | pinguitude 639 | pipless 640 | pirouette 641 | plectopter 642 | pleistocenic 643 | pleny 644 | plowgate 645 | poleaxer 646 | polyarchy 647 | polygenism 648 | polystyle 649 | polythene 650 | ponderancy 651 | pooler 652 | poop 653 | popocracy 654 | porously 655 | postvertebral 656 | praisefully 657 | praseocobaltic 658 | preceptorate 659 | preharvest 660 | preissuance 661 | prelaticalness 662 | prenaval 663 | presbytinae 664 | presuperficiality 665 | preundertake 666 | primulaverin 667 | priodon 668 | proclamation 669 | proeducational 670 | profeminism 671 | propose 672 | prorailroad 673 | prosodetic 674 | protrade 675 | provicariate 676 | pseudocelian 677 | pseudoconjugation 678 | pseudoerythrin 679 | pseudoneuropter 680 | pucellas 681 | pudendum 682 | pulsatility 683 | punctuate 684 | purposeful 685 | pyloroplasty 686 | pyocele 687 | pyrgocephalic 688 | pyrotritartric 689 | quadrifolium 690 | querecho 691 | quizzatorial 692 | railroadish 693 | raintight 694 | rangle 695 | rasp 696 | rata 697 | reaminess 698 | reassumption 699 | reboisement 700 | rebraid 701 | recast 702 | reciprocatory 703 | recission 704 | reclinable 705 | recoilment 706 | recollectedness 707 | rectangularness 708 | redargutory 709 | redeployment 710 | redetect 711 | reimportune 712 | reimposition 713 | reinterference 714 | remotion 715 | renderable 716 | reputableness 717 | resheathe 718 | resift 719 | resize 720 | retreating 721 | retrobronchial 722 | returban 723 | revete 724 | revokable 725 | rhagon 726 | rickettsial 727 | rigorousness 728 | rob 729 | robinia 730 | rosario 731 | rotacism 732 | rotular 733 | rousedness 734 | rubianic 735 | rueful 736 | rugmaking 737 | russifier 738 | ruthenian 739 | ruthenous 740 | sachem 741 | sacramentalism 742 | sadr 743 | safi 744 | sagely 745 | salpingemphraxis 746 | sandbox 747 | sapodilla 748 | sarcocystis 749 | satanship 750 | savation 751 | saviorship 752 | sawmaking 753 | scandium 754 | scarabaeinae 755 | scentful 756 | schapping 757 | scrobe 758 | scrobis 759 | sectionalism 760 | sedgy 761 | semeia 762 | semialcoholic 763 | semicircumvolution 764 | septuple 765 | serolin 766 | serpenticidal 767 | severeness 768 | shona 769 | short 770 | singlehearted 771 | singultous 772 | siphonostomatous 773 | siskin 774 | skilder 775 | skippet 776 | skither 777 | skokiaan 778 | skulking 779 | smalts 780 | smilet 781 | smyrniote 782 | snailflower 783 | snobber 784 | snowslip 785 | solacious 786 | somatotype 787 | sorrento 788 | speculativism 789 | spikewise 790 | spinnerular 791 | spirochetosis 792 | spoilation 793 | spurwing 794 | squamellate 795 | stadholderate 796 | stampee 797 | stank 798 | starost 799 | sternotherus 800 | stomodaeum 801 | stonewood 802 | straint 803 | stroppings 804 | stylopid 805 | subcarboniferous 806 | subdichotomize 807 | subendocardial 808 | subfalcate 809 | subidea 810 | sublimer 811 | subnervian 812 | subocular 813 | subterrestrial 814 | subvicar 815 | sulfuran 816 | sulphatize 817 | sulphazide 818 | sunblink 819 | supe 820 | suppository 821 | surrealist 822 | surrejoin 823 | swanlike 824 | swiften 825 | symbolic 826 | synodical 827 | talaric 828 | tangle 829 | taxiable 830 | taxology 831 | teeterer 832 | telosynaptic 833 | tentacula 834 | terakihi 835 | terminableness 836 | termitophilous 837 | theogeological 838 | thermopolymerization 839 | thighbone 840 | thirstless 841 | thoracicoabdominal 842 | threne 843 | thromboarteritis 844 | thunderstruck 845 | thyroidless 846 | timberwright 847 | time 848 | timid 849 | titanical 850 | titanically 851 | tonicobalsamic 852 | tonish 853 | topicality 854 | toppingness 855 | torrential 856 | townishness 857 | toxicotraumatic 858 | tramway 859 | transfix 860 | transriverine 861 | transylvanian 862 | trapeziometacarpal 863 | traversary 864 | tribalism 865 | triborough 866 | tricolon 867 | trigynous 868 | tringoid 869 | trinol 870 | trisyllabically 871 | tritheist 872 | trochantinian 873 | trochleate 874 | trolleyful 875 | trollopish 876 | trophoplast 877 | tupaia 878 | turion 879 | tyburn 880 | typewriter 881 | typhogenic 882 | ultraeligible 883 | ultraliberal 884 | unappropriateness 885 | unaspiringly 886 | unavailingly 887 | unawardableness 888 | unbankably 889 | unbetrayed 890 | unbloody 891 | unburgessed 892 | unceremented 893 | unclimbing 894 | unconsiderate 895 | uncontainably 896 | uncontroverted 897 | unconventioned 898 | uncrooked 899 | undelusive 900 | undereat 901 | underfilling 902 | undermentioned 903 | unequaled 904 | unerect 905 | unforethoughtful 906 | unfrounced 907 | unfusibleness 908 | ungarland 909 | unhazarded 910 | unheightened 911 | unhindering 912 | unhoaxed 913 | unhumiliated 914 | unicyclist 915 | unidigitate 916 | unimpartial 917 | uninfolded 918 | unintelligibility 919 | unkind 920 | unlegalized 921 | unmalted 922 | unmanicured 923 | unmarrying 924 | unmonotonous 925 | unofficialness 926 | unopined 927 | unpenitentness 928 | unpray 929 | unprotective 930 | unrebuttableness 931 | unrehabilitated 932 | unrequiting 933 | unresourcefulness 934 | unrococo 935 | unscented 936 | unsew 937 | unshriveled 938 | unsilicified 939 | unslumbrous 940 | unsnarl 941 | unstrengthened 942 | unsystemizable 943 | unteachable 944 | untravestied 945 | unusedness 946 | unveiler 947 | unvocal 948 | unvoluntarily 949 | unyeaned 950 | upsoak 951 | uptube 952 | ursoid 953 | usaron 954 | usneaceous 955 | usself 956 | usward 957 | vagoglossopharyngeal 958 | valoniaceous 959 | vandalic 960 | vannai 961 | variolovaccine 962 | vasospasm 963 | vaultedly 964 | vergency 965 | vermetidae 966 | vespertilioninae 967 | vestigian 968 | vexedness 969 | victorian 970 | violinist 971 | virescence 972 | vocimotor 973 | vomit 974 | vowelist 975 | waik 976 | waldmeister 977 | walt 978 | wanderlust 979 | wapacut 980 | warship 981 | waterwise 982 | wearifully 983 | wedgebill 984 | weirdward 985 | welcome 986 | wheatgrower 987 | whistle 988 | windage 989 | withholdable 990 | wondermongering 991 | work 992 | wrannock 993 | wrappage 994 | xanthyl 995 | xenodochium 996 | yellowing 997 | zolaism 998 | zoophysiology 999 | zugtierlaster 1000 | zymin -------------------------------------------------------------------------------- /bin/bundle: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__) 3 | load Gem.bin_path('bundler', 'bundle') 4 | -------------------------------------------------------------------------------- /bin/rails: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | begin 3 | load File.expand_path("../spring", __FILE__) 4 | rescue LoadError 5 | end 6 | APP_PATH = File.expand_path('../../config/application', __FILE__) 7 | require_relative '../config/boot' 8 | require 'rails/commands' 9 | -------------------------------------------------------------------------------- /bin/rake: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | begin 3 | load File.expand_path("../spring", __FILE__) 4 | rescue LoadError 5 | end 6 | require_relative '../config/boot' 7 | require 'rake' 8 | Rake.application.run 9 | -------------------------------------------------------------------------------- /bin/setup: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require 'pathname' 3 | 4 | # path to your application root. 5 | APP_ROOT = Pathname.new File.expand_path('../../', __FILE__) 6 | 7 | Dir.chdir APP_ROOT do 8 | # This script is a starting point to setup your application. 9 | # Add necessary setup steps to this file: 10 | 11 | puts "== Installing dependencies ==" 12 | system "gem install bundler --conservative" 13 | system "bundle check || bundle install" 14 | 15 | # puts "\n== Copying sample files ==" 16 | # unless File.exist?("config/database.yml") 17 | # system "cp config/database.yml.sample config/database.yml" 18 | # end 19 | 20 | puts "\n== Preparing database ==" 21 | system "bin/rake db:setup" 22 | 23 | puts "\n== Removing old logs and tempfiles ==" 24 | system "rm -f log/*" 25 | system "rm -rf tmp/cache" 26 | 27 | puts "\n== Restarting application server ==" 28 | system "touch tmp/restart.txt" 29 | end 30 | -------------------------------------------------------------------------------- /bin/spring: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | # This file loads spring without using Bundler, in order to be fast. 4 | # It gets overwritten when you run the `spring binstub` command. 5 | 6 | unless defined?(Spring) 7 | require "rubygems" 8 | require "bundler" 9 | 10 | if match = Bundler.default_lockfile.read.match(/^GEM$.*?^ (?: )*spring \((.*?)\)$.*?^$/m) 11 | Gem.paths = { "GEM_PATH" => [Bundler.bundle_path.to_s, *Gem.path].uniq } 12 | gem "spring", match[1] 13 | require "spring/binstub" 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /config.ru: -------------------------------------------------------------------------------- 1 | # This file is used by Rack-based servers to start the application. 2 | 3 | require ::File.expand_path('../config/environment', __FILE__) 4 | run Rails.application 5 | -------------------------------------------------------------------------------- /config/application.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path('../boot', __FILE__) 2 | 3 | require "rails" 4 | # Pick the frameworks you want: 5 | require "active_model/railtie" 6 | require "active_job/railtie" 7 | require "active_record/railtie" 8 | require "action_controller/railtie" 9 | require "action_mailer/railtie" 10 | require "action_view/railtie" 11 | require "sprockets/railtie" 12 | # require "rails/test_unit/railtie" 13 | 14 | # Require the gems listed in Gemfile, including any gems 15 | # you've limited to :test, :development, or :production. 16 | Bundler.require(*Rails.groups) 17 | 18 | module JsonApiBench 19 | class Application < Rails::Application 20 | # Settings in config/environments/* take precedence over those specified here. 21 | # Application configuration should go into files in config/initializers 22 | # -- all .rb files in that directory are automatically loaded. 23 | 24 | # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone. 25 | # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC. 26 | # config.time_zone = 'Central Time (US & Canada)' 27 | 28 | # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded. 29 | # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s] 30 | # config.i18n.default_locale = :de 31 | 32 | # Do not swallow errors in after_commit/after_rollback callbacks. 33 | config.active_record.raise_in_transactional_callbacks = true 34 | 35 | config.active_record.schema_format = :sql 36 | end 37 | end 38 | -------------------------------------------------------------------------------- /config/boot.rb: -------------------------------------------------------------------------------- 1 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__) 2 | 3 | require 'bundler/setup' # Set up gems listed in the Gemfile. 4 | -------------------------------------------------------------------------------- /config/database.yml: -------------------------------------------------------------------------------- 1 | development: 2 | adapter: postgresql 3 | encoding: unicode 4 | database: json_api_bench 5 | 6 | production: 7 | adapter: postgresql 8 | encoding: unicode 9 | database: json_api_bench 10 | -------------------------------------------------------------------------------- /config/environment.rb: -------------------------------------------------------------------------------- 1 | # Load the Rails application. 2 | require File.expand_path('../application', __FILE__) 3 | 4 | # Initialize the Rails application. 5 | Rails.application.initialize! 6 | -------------------------------------------------------------------------------- /config/environments/development.rb: -------------------------------------------------------------------------------- 1 | Rails.application.configure do 2 | # Settings specified here will take precedence over those in config/application.rb. 3 | 4 | # In the development environment your application's code is reloaded on 5 | # every request. This slows down response time but is perfect for development 6 | # since you don't have to restart the web server when you make code changes. 7 | config.cache_classes = false 8 | 9 | # Do not eager load code on boot. 10 | config.eager_load = false 11 | 12 | # Show full error reports and disable caching. 13 | config.consider_all_requests_local = true 14 | config.action_controller.perform_caching = false 15 | 16 | # Don't care if the mailer can't send. 17 | config.action_mailer.raise_delivery_errors = false 18 | 19 | # Print deprecation notices to the Rails logger. 20 | config.active_support.deprecation = :log 21 | 22 | # Raise an error on page load if there are pending migrations. 23 | config.active_record.migration_error = :page_load 24 | 25 | # Debug mode disables concatenation and preprocessing of assets. 26 | # This option may cause significant delays in view rendering with a large 27 | # number of complex assets. 28 | config.assets.debug = true 29 | 30 | # Asset digests allow you to set far-future HTTP expiration dates on all assets, 31 | # yet still be able to expire them through the digest params. 32 | config.assets.digest = true 33 | 34 | # Adds additional error checking when serving assets at runtime. 35 | # Checks for improperly declared sprockets dependencies. 36 | # Raises helpful error messages. 37 | config.assets.raise_runtime_errors = true 38 | 39 | # Raises error for missing translations 40 | # config.action_view.raise_on_missing_translations = true 41 | end 42 | -------------------------------------------------------------------------------- /config/environments/production.rb: -------------------------------------------------------------------------------- 1 | Rails.application.configure do 2 | # Settings specified here will take precedence over those in config/application.rb. 3 | 4 | # Code is not reloaded between requests. 5 | config.cache_classes = true 6 | 7 | # Eager load code on boot. This eager loads most of Rails and 8 | # your application in memory, allowing both threaded web servers 9 | # and those relying on copy on write to perform better. 10 | # Rake tasks automatically ignore this option for performance. 11 | config.eager_load = true 12 | 13 | # Full error reports are disabled and caching is turned on. 14 | config.consider_all_requests_local = false 15 | config.action_controller.perform_caching = true 16 | 17 | # Enable Rack::Cache to put a simple HTTP cache in front of your application 18 | # Add `rack-cache` to your Gemfile before enabling this. 19 | # For large-scale production use, consider using a caching reverse proxy like 20 | # NGINX, varnish or squid. 21 | # config.action_dispatch.rack_cache = true 22 | 23 | # Disable serving static files from the `/public` folder by default since 24 | # Apache or NGINX already handles this. 25 | config.serve_static_files = ENV['RAILS_SERVE_STATIC_FILES'].present? 26 | 27 | # Compress JavaScripts and CSS. 28 | config.assets.js_compressor = :uglifier 29 | # config.assets.css_compressor = :sass 30 | 31 | # Do not fallback to assets pipeline if a precompiled asset is missed. 32 | config.assets.compile = false 33 | 34 | # Asset digests allow you to set far-future HTTP expiration dates on all assets, 35 | # yet still be able to expire them through the digest params. 36 | config.assets.digest = true 37 | 38 | # `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb 39 | 40 | # Specifies the header that your server uses for sending files. 41 | # config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache 42 | # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX 43 | 44 | # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. 45 | # config.force_ssl = true 46 | 47 | # Use the lowest log level to ensure availability of diagnostic information 48 | # when problems arise. 49 | config.log_level = :debug 50 | 51 | # Prepend all log lines with the following tags. 52 | # config.log_tags = [ :subdomain, :uuid ] 53 | 54 | # Use a different logger for distributed setups. 55 | # config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new) 56 | 57 | # Use a different cache store in production. 58 | # config.cache_store = :mem_cache_store 59 | 60 | # Enable serving of images, stylesheets, and JavaScripts from an asset server. 61 | # config.action_controller.asset_host = 'http://assets.example.com' 62 | 63 | # Ignore bad email addresses and do not raise email delivery errors. 64 | # Set this to true and configure the email server for immediate delivery to raise delivery errors. 65 | # config.action_mailer.raise_delivery_errors = false 66 | 67 | # Enable locale fallbacks for I18n (makes lookups for any locale fall back to 68 | # the I18n.default_locale when a translation cannot be found). 69 | config.i18n.fallbacks = true 70 | 71 | # Send deprecation notices to registered listeners. 72 | config.active_support.deprecation = :notify 73 | 74 | # Use default logging formatter so that PID and timestamp are not suppressed. 75 | config.log_formatter = ::Logger::Formatter.new 76 | 77 | # Do not dump schema after migrations. 78 | config.active_record.dump_schema_after_migration = false 79 | end 80 | -------------------------------------------------------------------------------- /config/environments/test.rb: -------------------------------------------------------------------------------- 1 | Rails.application.configure do 2 | # Settings specified here will take precedence over those in config/application.rb. 3 | 4 | # The test environment is used exclusively to run your application's 5 | # test suite. You never need to work with it otherwise. Remember that 6 | # your test database is "scratch space" for the test suite and is wiped 7 | # and recreated between test runs. Don't rely on the data there! 8 | config.cache_classes = true 9 | 10 | # Do not eager load code on boot. This avoids loading your whole application 11 | # just for the purpose of running a single test. If you are using a tool that 12 | # preloads Rails for running tests, you may have to set it to true. 13 | config.eager_load = false 14 | 15 | # Configure static file server for tests with Cache-Control for performance. 16 | config.serve_static_files = true 17 | config.static_cache_control = 'public, max-age=3600' 18 | 19 | # Show full error reports and disable caching. 20 | config.consider_all_requests_local = true 21 | config.action_controller.perform_caching = false 22 | 23 | # Raise exceptions instead of rendering exception templates. 24 | config.action_dispatch.show_exceptions = false 25 | 26 | # Disable request forgery protection in test environment. 27 | config.action_controller.allow_forgery_protection = false 28 | 29 | # Tell Action Mailer not to deliver emails to the real world. 30 | # The :test delivery method accumulates sent emails in the 31 | # ActionMailer::Base.deliveries array. 32 | config.action_mailer.delivery_method = :test 33 | 34 | # Randomize the order test cases are executed. 35 | config.active_support.test_order = :random 36 | 37 | # Print deprecation notices to the stderr. 38 | config.active_support.deprecation = :stderr 39 | 40 | # Raises error for missing translations 41 | # config.action_view.raise_on_missing_translations = true 42 | end 43 | -------------------------------------------------------------------------------- /config/initializers/assets.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Version of your assets, change this if you want to expire all your assets. 4 | Rails.application.config.assets.version = '1.0' 5 | 6 | # Add additional assets to the asset load path 7 | # Rails.application.config.assets.paths << Emoji.images_path 8 | 9 | # Precompile additional assets. 10 | # application.js, application.css, and all non-JS/CSS in app/assets folder are already added. 11 | # Rails.application.config.assets.precompile += %w( search.js ) 12 | -------------------------------------------------------------------------------- /config/initializers/backtrace_silencers.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces. 4 | # Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ } 5 | 6 | # You can also remove all the silencers if you're trying to debug a problem that might stem from framework code. 7 | # Rails.backtrace_cleaner.remove_silencers! 8 | -------------------------------------------------------------------------------- /config/initializers/cookies_serializer.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | Rails.application.config.action_dispatch.cookies_serializer = :json 4 | -------------------------------------------------------------------------------- /config/initializers/db.rb: -------------------------------------------------------------------------------- 1 | DB = ActiveRecord::Base.connection -------------------------------------------------------------------------------- /config/initializers/filter_parameter_logging.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Configure sensitive parameters which will be filtered from the log file. 4 | Rails.application.config.filter_parameters += [:password] 5 | -------------------------------------------------------------------------------- /config/initializers/inflections.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Add new inflection rules using the following format. Inflections 4 | # are locale specific, and you may define rules for as many different 5 | # locales as you wish. All of these examples are active by default: 6 | # ActiveSupport::Inflector.inflections(:en) do |inflect| 7 | # inflect.plural /^(ox)$/i, '\1en' 8 | # inflect.singular /^(ox)en/i, '\1' 9 | # inflect.irregular 'person', 'people' 10 | # inflect.uncountable %w( fish sheep ) 11 | # end 12 | 13 | # These inflection rules are supported but not enabled by default: 14 | # ActiveSupport::Inflector.inflections(:en) do |inflect| 15 | # inflect.acronym 'RESTful' 16 | # end 17 | -------------------------------------------------------------------------------- /config/initializers/mime_types.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Add new mime types for use in respond_to blocks: 4 | # Mime::Type.register "text/richtext", :rtf 5 | -------------------------------------------------------------------------------- /config/initializers/session_store.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | Rails.application.config.session_store :cookie_store, key: '_json_api_bench_session' 4 | -------------------------------------------------------------------------------- /config/initializers/wrap_parameters.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # This file contains settings for ActionController::ParamsWrapper which 4 | # is enabled by default. 5 | 6 | # Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array. 7 | ActiveSupport.on_load(:action_controller) do 8 | wrap_parameters format: [:json] if respond_to?(:wrap_parameters) 9 | end 10 | 11 | # To enable root element in JSON for ActiveRecord objects. 12 | # ActiveSupport.on_load(:active_record) do 13 | # self.include_root_in_json = true 14 | # end 15 | -------------------------------------------------------------------------------- /config/locales/en.yml: -------------------------------------------------------------------------------- 1 | # Files in the config/locales directory are used for internationalization 2 | # and are automatically loaded by Rails. If you want to use locales other 3 | # than English, add the necessary files in this directory. 4 | # 5 | # To use the locales, use `I18n.t`: 6 | # 7 | # I18n.t 'hello' 8 | # 9 | # In views, this is aliased to just `t`: 10 | # 11 | # <%= t('hello') %> 12 | # 13 | # To use a different locale, set it with `I18n.locale`: 14 | # 15 | # I18n.locale = :es 16 | # 17 | # This would use the information in config/locales/es.yml. 18 | # 19 | # To learn more, please read the Rails Internationalization guide 20 | # available at http://guides.rubyonrails.org/i18n.html. 21 | 22 | en: 23 | hello: "Hello world" 24 | -------------------------------------------------------------------------------- /config/routes.rb: -------------------------------------------------------------------------------- 1 | JsonApiBench::Application.routes.draw do 2 | get 'quick_search/domain' => 'quick_search#domain' 3 | get 'quick_search/pluck' => 'quick_search#pluck' 4 | get 'quick_search/postgresql' => 'quick_search#postgresql' 5 | 6 | get 'rich_search/domain' => 'rich_search#domain' 7 | get 'rich_search/select_all' => 'rich_search#select_all' 8 | get 'rich_search/postgresql' => 'rich_search#postgresql' 9 | 10 | get 'definition/domain' => 'definition#domain' 11 | get 'definition/postgresql' => 'definition#postgresql' 12 | 13 | get 'many_definitions/domain' => 'many_definitions#domain' 14 | get 'many_definitions/postgresql' => 'many_definitions#postgresql' 15 | end 16 | -------------------------------------------------------------------------------- /config/secrets.yml: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Your secret key is used for verifying the integrity of signed cookies. 4 | # If you change this key, all old signed cookies will become invalid! 5 | 6 | # Make sure the secret is at least 30 characters and all random, 7 | # no regular words or you'll be exposed to dictionary attacks. 8 | # You can use `rake secret` to generate a secure secret key. 9 | 10 | # Make sure the secrets in this file are kept private 11 | # if you're sharing your code publicly. 12 | 13 | development: 14 | secret_key_base: 34307c50fdd6c403ee1d1edd39ce697e2236b61c63755ec41aa00454f65e2924d91a93f15fc8279a266c58d3680f3b4ba8c16ded2a243d5abcd0a18f422b9de3 15 | 16 | test: 17 | secret_key_base: 6e5a1446312ed2a638b5210102c3ce0ed83ca9200fc95995eca6f9adc509d2432099bbe90201248a274f42c790f5d3aecdd35a8a508f364407da1ce5b1852823 18 | 19 | # Do not keep production secrets in the repository, 20 | # instead read values from the environment. 21 | production: 22 | secret_key_base: 34307c50fdd6c403ee1d1edd39ce697e2236b61c63755ec41aa00454f65e2924d91a93f15fc8279a266c58d3680f3b4ba8c16ded2a243d5abcd0a18f422b9de3 23 | -------------------------------------------------------------------------------- /config/unicorn.rb: -------------------------------------------------------------------------------- 1 | if ENV["RAILS_ENV"] == "development" 2 | worker_processes 1 3 | else 4 | worker_processes 4 5 | end 6 | 7 | timeout 30 -------------------------------------------------------------------------------- /db/migrate/20130114233033_create_words.rb: -------------------------------------------------------------------------------- 1 | class CreateWords < ActiveRecord::Migration 2 | def up 3 | execute <<-DDL 4 | create table words( 5 | id serial primary key, 6 | text varchar not null, 7 | pronunciation varchar not null, 8 | string_padding_1 varchar not null default 'Lorem ipsum dolor sit amet', 9 | string_padding_2 varchar not null default 'consectetur adipisicing elit', 10 | integer_padding_1 integer not null default 0, 11 | integer_padding_2 integer not null default 0, 12 | date_padding_1 date not null default '2013-01-01', 13 | date_padding_2 date not null default '2013-01-01', 14 | created_at timestamptz not null default current_timestamp, 15 | updated_at timestamptz not null default current_timestamp 16 | ); 17 | 18 | create unique index on words (text varchar_pattern_ops); 19 | DDL 20 | end 21 | 22 | def down 23 | execute 'drop table words;' 24 | end 25 | end 26 | -------------------------------------------------------------------------------- /db/migrate/20130114233931_create_definitions.rb: -------------------------------------------------------------------------------- 1 | class CreateDefinitions < ActiveRecord::Migration 2 | def up 3 | execute <<-DDL 4 | create table definitions( 5 | id serial primary key, 6 | word_id integer not null references words, 7 | position integer not null, 8 | part_of_speech varchar not null, 9 | body varchar not null, 10 | string_padding_1 varchar not null default 'Lorem ipsum dolor sit amet', 11 | string_padding_2 varchar not null default 'consectetur adipisicing elit', 12 | integer_padding_1 integer not null default 0, 13 | integer_padding_2 integer not null default 0, 14 | date_padding_1 date not null default '2013-01-01', 15 | date_padding_2 date not null default '2013-01-01', 16 | created_at timestamptz not null default current_timestamp, 17 | updated_at timestamptz not null default current_timestamp 18 | ); 19 | 20 | create unique index on definitions (word_id, position) 21 | DDL 22 | end 23 | 24 | def down 25 | execute 'drop table definitions;' 26 | end 27 | end 28 | -------------------------------------------------------------------------------- /db/migrate/20130114234642_create_quotes.rb: -------------------------------------------------------------------------------- 1 | class CreateQuotes < ActiveRecord::Migration 2 | def up 3 | execute <<-DDL 4 | create table quotes( 5 | id serial primary key, 6 | word_id integer not null references words, 7 | body varchar not null, 8 | source varchar not null, 9 | string_padding_1 varchar not null default 'Lorem ipsum dolor sit amet', 10 | string_padding_2 varchar not null default 'consectetur adipisicing elit', 11 | integer_padding_1 integer not null default 0, 12 | integer_padding_2 integer not null default 0, 13 | date_padding_1 date not null default '2013-01-01', 14 | date_padding_2 date not null default '2013-01-01', 15 | created_at timestamptz not null default current_timestamp, 16 | updated_at timestamptz not null default current_timestamp 17 | ); 18 | 19 | create index on quotes (word_id) 20 | DDL 21 | end 22 | 23 | def down 24 | execute 'drop table quotes;' 25 | end 26 | end 27 | -------------------------------------------------------------------------------- /db/migrate/20130114235036_create_word_relationships.rb: -------------------------------------------------------------------------------- 1 | class CreateWordRelationships < ActiveRecord::Migration 2 | def up 3 | execute <<-DDL 4 | create table word_relationships( 5 | id serial primary key, 6 | relationship varchar not null, 7 | source_id integer not null references words, 8 | destination_id integer not null references words 9 | ); 10 | 11 | create unique index on word_relationships (source_id, destination_id); 12 | DDL 13 | end 14 | 15 | def down 16 | execute 'drop table word_relationships' 17 | end 18 | end 19 | -------------------------------------------------------------------------------- /db/seeds.rb: -------------------------------------------------------------------------------- 1 | # This file should contain all the record creation needed to seed the database with its default values. 2 | # The data can then be loaded with the rake db:seed (or created alongside the db with db:setup). 3 | # 4 | # Examples: 5 | # 6 | # cities = City.create([{ name: 'Chicago' }, { name: 'Copenhagen' }]) 7 | # Mayor.create(name: 'Emanuel', city: cities.first) 8 | -------------------------------------------------------------------------------- /db/structure.sql: -------------------------------------------------------------------------------- 1 | -- 2 | -- PostgreSQL database dump 3 | -- 4 | 5 | SET statement_timeout = 0; 6 | SET lock_timeout = 0; 7 | SET client_encoding = 'UTF8'; 8 | SET standard_conforming_strings = on; 9 | SET check_function_bodies = false; 10 | SET client_min_messages = warning; 11 | 12 | -- 13 | -- Name: plpgsql; Type: EXTENSION; Schema: -; Owner: - 14 | -- 15 | 16 | CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog; 17 | 18 | 19 | -- 20 | -- Name: EXTENSION plpgsql; Type: COMMENT; Schema: -; Owner: - 21 | -- 22 | 23 | COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language'; 24 | 25 | 26 | SET search_path = public, pg_catalog; 27 | 28 | SET default_tablespace = ''; 29 | 30 | SET default_with_oids = false; 31 | 32 | -- 33 | -- Name: definitions; Type: TABLE; Schema: public; Owner: -; Tablespace: 34 | -- 35 | 36 | CREATE TABLE definitions ( 37 | id integer NOT NULL, 38 | word_id integer NOT NULL, 39 | "position" integer NOT NULL, 40 | part_of_speech character varying NOT NULL, 41 | body character varying NOT NULL, 42 | string_padding_1 character varying DEFAULT 'Lorem ipsum dolor sit amet'::character varying NOT NULL, 43 | string_padding_2 character varying DEFAULT 'consectetur adipisicing elit'::character varying NOT NULL, 44 | integer_padding_1 integer DEFAULT 0 NOT NULL, 45 | integer_padding_2 integer DEFAULT 0 NOT NULL, 46 | date_padding_1 date DEFAULT '2013-01-01'::date NOT NULL, 47 | date_padding_2 date DEFAULT '2013-01-01'::date NOT NULL, 48 | created_at timestamp with time zone DEFAULT now() NOT NULL, 49 | updated_at timestamp with time zone DEFAULT now() NOT NULL 50 | ); 51 | 52 | 53 | -- 54 | -- Name: definitions_id_seq; Type: SEQUENCE; Schema: public; Owner: - 55 | -- 56 | 57 | CREATE SEQUENCE definitions_id_seq 58 | START WITH 1 59 | INCREMENT BY 1 60 | NO MINVALUE 61 | NO MAXVALUE 62 | CACHE 1; 63 | 64 | 65 | -- 66 | -- Name: definitions_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - 67 | -- 68 | 69 | ALTER SEQUENCE definitions_id_seq OWNED BY definitions.id; 70 | 71 | 72 | -- 73 | -- Name: quotes; Type: TABLE; Schema: public; Owner: -; Tablespace: 74 | -- 75 | 76 | CREATE TABLE quotes ( 77 | id integer NOT NULL, 78 | word_id integer NOT NULL, 79 | body character varying NOT NULL, 80 | source character varying NOT NULL, 81 | string_padding_1 character varying DEFAULT 'Lorem ipsum dolor sit amet'::character varying NOT NULL, 82 | string_padding_2 character varying DEFAULT 'consectetur adipisicing elit'::character varying NOT NULL, 83 | integer_padding_1 integer DEFAULT 0 NOT NULL, 84 | integer_padding_2 integer DEFAULT 0 NOT NULL, 85 | date_padding_1 date DEFAULT '2013-01-01'::date NOT NULL, 86 | date_padding_2 date DEFAULT '2013-01-01'::date NOT NULL, 87 | created_at timestamp with time zone DEFAULT now() NOT NULL, 88 | updated_at timestamp with time zone DEFAULT now() NOT NULL 89 | ); 90 | 91 | 92 | -- 93 | -- Name: quotes_id_seq; Type: SEQUENCE; Schema: public; Owner: - 94 | -- 95 | 96 | CREATE SEQUENCE quotes_id_seq 97 | START WITH 1 98 | INCREMENT BY 1 99 | NO MINVALUE 100 | NO MAXVALUE 101 | CACHE 1; 102 | 103 | 104 | -- 105 | -- Name: quotes_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - 106 | -- 107 | 108 | ALTER SEQUENCE quotes_id_seq OWNED BY quotes.id; 109 | 110 | 111 | -- 112 | -- Name: schema_migrations; Type: TABLE; Schema: public; Owner: -; Tablespace: 113 | -- 114 | 115 | CREATE TABLE schema_migrations ( 116 | version character varying(255) NOT NULL 117 | ); 118 | 119 | 120 | -- 121 | -- Name: word_relationships; Type: TABLE; Schema: public; Owner: -; Tablespace: 122 | -- 123 | 124 | CREATE TABLE word_relationships ( 125 | id integer NOT NULL, 126 | relationship character varying NOT NULL, 127 | source_id integer NOT NULL, 128 | destination_id integer NOT NULL 129 | ); 130 | 131 | 132 | -- 133 | -- Name: word_relationships_id_seq; Type: SEQUENCE; Schema: public; Owner: - 134 | -- 135 | 136 | CREATE SEQUENCE word_relationships_id_seq 137 | START WITH 1 138 | INCREMENT BY 1 139 | NO MINVALUE 140 | NO MAXVALUE 141 | CACHE 1; 142 | 143 | 144 | -- 145 | -- Name: word_relationships_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - 146 | -- 147 | 148 | ALTER SEQUENCE word_relationships_id_seq OWNED BY word_relationships.id; 149 | 150 | 151 | -- 152 | -- Name: words; Type: TABLE; Schema: public; Owner: -; Tablespace: 153 | -- 154 | 155 | CREATE TABLE words ( 156 | id integer NOT NULL, 157 | text character varying NOT NULL, 158 | pronunciation character varying NOT NULL, 159 | string_padding_1 character varying DEFAULT 'Lorem ipsum dolor sit amet'::character varying NOT NULL, 160 | string_padding_2 character varying DEFAULT 'consectetur adipisicing elit'::character varying NOT NULL, 161 | integer_padding_1 integer DEFAULT 0 NOT NULL, 162 | integer_padding_2 integer DEFAULT 0 NOT NULL, 163 | date_padding_1 date DEFAULT '2013-01-01'::date NOT NULL, 164 | date_padding_2 date DEFAULT '2013-01-01'::date NOT NULL, 165 | created_at timestamp with time zone DEFAULT now() NOT NULL, 166 | updated_at timestamp with time zone DEFAULT now() NOT NULL 167 | ); 168 | 169 | 170 | -- 171 | -- Name: words_id_seq; Type: SEQUENCE; Schema: public; Owner: - 172 | -- 173 | 174 | CREATE SEQUENCE words_id_seq 175 | START WITH 1 176 | INCREMENT BY 1 177 | NO MINVALUE 178 | NO MAXVALUE 179 | CACHE 1; 180 | 181 | 182 | -- 183 | -- Name: words_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - 184 | -- 185 | 186 | ALTER SEQUENCE words_id_seq OWNED BY words.id; 187 | 188 | 189 | -- 190 | -- Name: id; Type: DEFAULT; Schema: public; Owner: - 191 | -- 192 | 193 | ALTER TABLE ONLY definitions ALTER COLUMN id SET DEFAULT nextval('definitions_id_seq'::regclass); 194 | 195 | 196 | -- 197 | -- Name: id; Type: DEFAULT; Schema: public; Owner: - 198 | -- 199 | 200 | ALTER TABLE ONLY quotes ALTER COLUMN id SET DEFAULT nextval('quotes_id_seq'::regclass); 201 | 202 | 203 | -- 204 | -- Name: id; Type: DEFAULT; Schema: public; Owner: - 205 | -- 206 | 207 | ALTER TABLE ONLY word_relationships ALTER COLUMN id SET DEFAULT nextval('word_relationships_id_seq'::regclass); 208 | 209 | 210 | -- 211 | -- Name: id; Type: DEFAULT; Schema: public; Owner: - 212 | -- 213 | 214 | ALTER TABLE ONLY words ALTER COLUMN id SET DEFAULT nextval('words_id_seq'::regclass); 215 | 216 | 217 | -- 218 | -- Name: definitions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 219 | -- 220 | 221 | ALTER TABLE ONLY definitions 222 | ADD CONSTRAINT definitions_pkey PRIMARY KEY (id); 223 | 224 | 225 | -- 226 | -- Name: quotes_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 227 | -- 228 | 229 | ALTER TABLE ONLY quotes 230 | ADD CONSTRAINT quotes_pkey PRIMARY KEY (id); 231 | 232 | 233 | -- 234 | -- Name: word_relationships_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 235 | -- 236 | 237 | ALTER TABLE ONLY word_relationships 238 | ADD CONSTRAINT word_relationships_pkey PRIMARY KEY (id); 239 | 240 | 241 | -- 242 | -- Name: words_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 243 | -- 244 | 245 | ALTER TABLE ONLY words 246 | ADD CONSTRAINT words_pkey PRIMARY KEY (id); 247 | 248 | 249 | -- 250 | -- Name: definitions_word_id_position_idx; Type: INDEX; Schema: public; Owner: -; Tablespace: 251 | -- 252 | 253 | CREATE UNIQUE INDEX definitions_word_id_position_idx ON definitions USING btree (word_id, "position"); 254 | 255 | 256 | -- 257 | -- Name: quotes_word_id_idx; Type: INDEX; Schema: public; Owner: -; Tablespace: 258 | -- 259 | 260 | CREATE INDEX quotes_word_id_idx ON quotes USING btree (word_id); 261 | 262 | 263 | -- 264 | -- Name: unique_schema_migrations; Type: INDEX; Schema: public; Owner: -; Tablespace: 265 | -- 266 | 267 | CREATE UNIQUE INDEX unique_schema_migrations ON schema_migrations USING btree (version); 268 | 269 | 270 | -- 271 | -- Name: word_relationships_source_id_destination_id_idx; Type: INDEX; Schema: public; Owner: -; Tablespace: 272 | -- 273 | 274 | CREATE UNIQUE INDEX word_relationships_source_id_destination_id_idx ON word_relationships USING btree (source_id, destination_id); 275 | 276 | 277 | -- 278 | -- Name: words_text_idx; Type: INDEX; Schema: public; Owner: -; Tablespace: 279 | -- 280 | 281 | CREATE UNIQUE INDEX words_text_idx ON words USING btree (text varchar_pattern_ops); 282 | 283 | 284 | -- 285 | -- Name: definitions_word_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: - 286 | -- 287 | 288 | ALTER TABLE ONLY definitions 289 | ADD CONSTRAINT definitions_word_id_fkey FOREIGN KEY (word_id) REFERENCES words(id); 290 | 291 | 292 | -- 293 | -- Name: quotes_word_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: - 294 | -- 295 | 296 | ALTER TABLE ONLY quotes 297 | ADD CONSTRAINT quotes_word_id_fkey FOREIGN KEY (word_id) REFERENCES words(id); 298 | 299 | 300 | -- 301 | -- Name: word_relationships_destination_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: - 302 | -- 303 | 304 | ALTER TABLE ONLY word_relationships 305 | ADD CONSTRAINT word_relationships_destination_id_fkey FOREIGN KEY (destination_id) REFERENCES words(id); 306 | 307 | 308 | -- 309 | -- Name: word_relationships_source_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: - 310 | -- 311 | 312 | ALTER TABLE ONLY word_relationships 313 | ADD CONSTRAINT word_relationships_source_id_fkey FOREIGN KEY (source_id) REFERENCES words(id); 314 | 315 | 316 | -- 317 | -- PostgreSQL database dump complete 318 | -- 319 | 320 | SET search_path TO "$user",public; 321 | 322 | INSERT INTO schema_migrations (version) VALUES ('20130114233033'); 323 | 324 | INSERT INTO schema_migrations (version) VALUES ('20130114233931'); 325 | 326 | INSERT INTO schema_migrations (version) VALUES ('20130114234642'); 327 | 328 | INSERT INTO schema_migrations (version) VALUES ('20130114235036'); 329 | 330 | -------------------------------------------------------------------------------- /lib/assets/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackc/json_api_bench/8482a2fd95bb15aee649a5b7887e4943e6d8a3a1/lib/assets/.keep -------------------------------------------------------------------------------- /lib/tasks/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackc/json_api_bench/8482a2fd95bb15aee649a5b7887e4943e6d8a3a1/lib/tasks/.keep -------------------------------------------------------------------------------- /lib/tasks/benchmark_run.rake: -------------------------------------------------------------------------------- 1 | namespace :benchmark do 2 | desc 'Run benchmark - server must already be running' 3 | task :run do 4 | site = 'http://localhost:8080/' 5 | benchmarks = [ 6 | 'Quick Search Domain', 7 | 'Quick Search Pluck', 8 | 'Quick Search PostgreSQL', 9 | 'Rich Search Domain', 10 | 'Rich Search Select All', 11 | 'Rich Search PostgreSQL', 12 | 'Definition Domain', 13 | 'Definition PostgreSQL', 14 | 'Many Definitions Domain', 15 | 'Many Definitions PostgreSQL' 16 | ] 17 | 18 | results = benchmarks.map do |b| 19 | underscore_name = b.downcase.gsub(' ', '_') 20 | siege_script_file = "benchmark/#{underscore_name}_urls.txt" 21 | siege_results_file = "tmp/#{underscore_name}_results.txt" 22 | `siege --concurrent=4 --internet --benchmark --reps 200 --file=#{siege_script_file} 2> #{siege_results_file}` 23 | File.read(siege_results_file) =~ /^Transaction rate:\s+([0-9.]+)/ 24 | { name: b, rate: $1 } 25 | end 26 | 27 | table = Terminal::Table.new :headings => ['Name', 'Reqs/Sec'], :rows => results.map { |r| [r[:name], r[:rate]] } 28 | puts table 29 | end 30 | end -------------------------------------------------------------------------------- /lib/tasks/benchmark_setup.rake: -------------------------------------------------------------------------------- 1 | namespace :benchmark do 2 | desc 'Load benchmark data' 3 | task setup: :environment do 4 | WordRelationship.delete_all 5 | Quote.delete_all 6 | Definition.delete_all 7 | Word.delete_all 8 | 9 | srand(0) 10 | 11 | parts_of_speech = %w[noun verb adjective adverb preposition conjunction] 12 | dictionary_words = Rails.root.join('benchmark/words.txt').readlines.map &:chomp 13 | 14 | build_definition = lambda do |word, position| 15 | Definition.create! word: word, 16 | position: position, 17 | part_of_speech: parts_of_speech.sample, 18 | body: dictionary_words.sample(rand(2..20)).join(' ') 19 | end 20 | 21 | build_quote = lambda do |word| 22 | Quote.create! word: word, 23 | body: dictionary_words.sample(rand(5..30)).join(' '), 24 | source: dictionary_words.sample(3).join(' ') 25 | end 26 | 27 | Word.transaction do 28 | dictionary_words.each do |word_string| 29 | word = Word.create! text: word_string, 30 | pronunciation: word_string 31 | 32 | rand(1..15).times { |n| build_definition.call word, n } 33 | rand(0..5).times { |n| build_quote.call word } 34 | end 35 | end 36 | 37 | word_ids = Word.pluck :id 38 | relationships = %w[synonym antonym] 39 | 40 | Word.connection.execute 'drop index if exists word_relationships_source_id_destination_id_idx;' 41 | word_ids.in_groups_of(1000, false).each do |word_id_group| 42 | Word.transaction do 43 | word_id_group.each do |word_id| 44 | word_ids.sample(rand(1..10)).each do |other_word_id| 45 | relationship = relationships.sample 46 | WordRelationship.create! relationship: relationship, 47 | source_id: word_id, 48 | destination_id: other_word_id 49 | 50 | WordRelationship.create! relationship: relationship, 51 | source_id: other_word_id, 52 | destination_id: word_id 53 | end 54 | end 55 | end 56 | end 57 | 58 | Word.connection.execute <<-SQL 59 | with t as ( 60 | select source_id, destination_id 61 | from word_relationships 62 | group by source_id, destination_id 63 | having count(*) > 1 64 | ) 65 | delete from word_relationships 66 | using t 67 | where word_relationships.source_id = t.source_id 68 | and word_relationships.destination_id = t.destination_id 69 | SQL 70 | 71 | Word.connection.execute 'create unique index on word_relationships (source_id, destination_id);' 72 | end 73 | end -------------------------------------------------------------------------------- /log/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackc/json_api_bench/8482a2fd95bb15aee649a5b7887e4943e6d8a3a1/log/.keep -------------------------------------------------------------------------------- /public/404.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | The page you were looking for doesn't exist (404) 5 | 6 | 55 | 56 | 57 | 58 | 59 |
60 |
61 |

The page you were looking for doesn't exist.

62 |

You may have mistyped the address or the page may have moved.

63 |
64 |

If you are the application owner check the logs for more information.

65 |
66 | 67 | 68 | -------------------------------------------------------------------------------- /public/422.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | The change you wanted was rejected (422) 5 | 6 | 55 | 56 | 57 | 58 | 59 |
60 |
61 |

The change you wanted was rejected.

62 |

Maybe you tried to change something you didn't have access to.

63 |
64 |

If you are the application owner check the logs for more information.

65 |
66 | 67 | 68 | -------------------------------------------------------------------------------- /public/500.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | We're sorry, but something went wrong (500) 5 | 6 | 55 | 56 | 57 | 58 | 59 |
60 |
61 |

We're sorry, but something went wrong.

62 |
63 |

If you are the application owner check the logs for more information.

64 |
65 | 66 | 67 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackc/json_api_bench/8482a2fd95bb15aee649a5b7887e4943e6d8a3a1/public/favicon.ico -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | # See http://www.robotstxt.org/robotstxt.html for documentation on how to use the robots.txt file 2 | # 3 | # To ban all spiders from the entire site uncomment the next two lines: 4 | # User-agent: * 5 | # Disallow: / 6 | -------------------------------------------------------------------------------- /readme.markdown: -------------------------------------------------------------------------------- 1 | # JSON API Benchmark 2 | 3 | This application is a sample benchmark for various approaches to generating JSON API responses. It was written to accompany [this post](http://blog.hashrocket.com/posts/faster-json-generation-with-postgresql) about PostgreSQL JSON generation on the [Hashrocket blog](http://blog.hashrocket.com/). It exercises the entire application stack instead of just JSON generation so that the timing can be viewed in the context of the entire application. It uses unicorn with 4 worker processes. It typically tests three approaches: 4 | 5 | * Standard Rails - to_json on model objects 6 | * Optimized Rails - pluck and select_all 7 | * PostgreSQL - row_to_json and array_to_json 8 | 9 | The sample domain is a simple dictionary. The entities involved are words, definitions, quotes, and related words. 10 | 11 | # Requirements 12 | 13 | PostgreSQL, siege 14 | 15 | # Scenarios 16 | 17 | * Concise auto-complete word search - Returns first 10 words matching search term. This scenario is an example of a very simple, feather weight API call that returns only an array of 10 strings. 18 | * Rich auto-complete word search - Returns first 10 words matching search term with text, pronunciation, part of speech, and first definition. This is a light weight example that involves two entity types. 19 | * Word definition - Shows the definitions, quotes, and related words for the specified word. This is a middle weight example. 20 | * Many word definitions - Shows the definitions, quotes, and related words for many words at a time. This is representative of a heavy weight JSON API. 21 | 22 | # Running the Benchmarks 23 | 24 | Bundle dependencies: 25 | 26 | bundle install 27 | 28 | To setup the test data run the following rake tasks: 29 | 30 | rake db:create db:migrate benchmark:setup 31 | 32 | Start the server: 33 | 34 | RAILS_ENV=production unicorn -c config/unicorn.rb 35 | 36 | Run the benchmark rake task: 37 | 38 | rake benchmark:run 39 | -------------------------------------------------------------------------------- /vendor/assets/javascripts/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackc/json_api_bench/8482a2fd95bb15aee649a5b7887e4943e6d8a3a1/vendor/assets/javascripts/.keep -------------------------------------------------------------------------------- /vendor/assets/stylesheets/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jackc/json_api_bench/8482a2fd95bb15aee649a5b7887e4943e6d8a3a1/vendor/assets/stylesheets/.keep --------------------------------------------------------------------------------