Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
app
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Wordpress Plugins Search

This is the repository backing the wordpress.algolia.com website. It's an Angular.js app using the AlgoliaSearch API client to power the search feature.

The search results are refreshed as you type, querying the Algolia API at each keystroke.

Indexing

The Wordpress Plugins are crawled with a simple Ruby+Shell script and are formatted as follow in Algolia:

{
  "objectID": "540765600",
  "name": "Akismet",
  "slug": "akismet",
  "version": "3.1.3",
  "popular": true,
  "author": "Automattic",
  "author_profile": "//profiles.wordpress.org/matt",
  "contributors": {
    "matt": "//profiles.wordpress.org/matt",
    "ryan": "//profiles.wordpress.org/ryan",
    // [...]
  },
  "requires": "3.2",
  "tested": "4.2.4",
  "rating": 5,
  "num_ratings": "377",
  "ratings": { "1": "14", "2": "3", "3": "5", "4": "12", "5": "343" },
  "downloaded": 34362207,
  "last_updated": "2015-07-06 11:44pm GMT",
  "added": "2005-10-20",
  "homepage": "http://akismet.com/",
  "short_description": "Akismet checks your comments against the Akismet Web service to see if they look like spam or not.",
  "download_link": "https://downloads.wordpress.org/plugin/akismet.3.1.3.zip",
  "tags": [ "Akismet", "anti-spam", "antispam", "comment moderation", "comment spam", "comments", "contact form spam", "spam", "spam comments" ],
  "donate_link": ""
}

The Algolia index is configured with the following settings:

{
  "attributesToIndex": ['unordered(name)', 'unordered(tags)', 'author', 'unordered(short_description)'],
  "customRanking": ['desc(downloaded)'],
  "attributesForFaceting": ['author', 'tags', 'rating'],
  "ranking": ['desc(popular)', 'typo', 'words', 'proximity', 'attribute', 'exact', 'custom']
}

Search

We're using the Algoliasearch Helper to perform the search queries while maintaining the refinements state, configured as follow:

algoliasearchHelper($scope.client, 'wordpress_plugins', {
  facets: ['tags', 'author'],
  disjunctiveFacets: ['rating'],
  attributesToRetrieve: ['name', 'slug', 'rating', 'num_ratings', 'downloaded', 'last_updated', 'ratings', 'author_profile'],
  attributesToHighlight: ['name', 'short_description', 'author', 'tags'],
  maxValuesPerFacet: 10
});

Development

Environment

To start developing, you can use the following commands:

$ [npm install -g gulp]
$ npm install
$ gulp

Deployment

To deploy to the GitHub gh-pages branch, use the following commands:

$ gulp deploy
$ open https://wordpress.algolia.com

About

Wordpress plugins search website

Resources

License

Releases

No releases published

Packages

No packages published
You can’t perform that action at this time.