blazing fast npm search utility
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin allow es to be passed as env var Mar 8, 2017
lib no need to send back everything.. just send back the id Nov 8, 2014
public add deps + bump bundle Apr 24, 2016
.gitignore
LICENSE.txt Update LICENSE.txt Oct 21, 2016
README.md Powered by NodeSource N|Solid 📛 Oct 21, 2016
mappings.json quote terms Jun 1, 2015
package.json add deps + bump bundle Apr 24, 2016

README.md

npmsearch.com

N|Solid

This is the code that powers npmsearch.com, which provides a clean interface to searching pseudo-rated node packages from npm.

api

To query the npmsearch index, you can use the HTTP api which is effectively a proxy to elasticsearch's URI Search.

All requests go through http://npmsearch.com/query. Here's an example:

curl "http://npmsearch.com/query?q=dom&fields=name"
{"results":[{"name":["select-dom"]},{"name":["dom-manipulations"]},{"name":["zero-dom"]},{"name":["dom-stub"]},{"name":["dom-walk"]},{"name":["dom-value"]},{"name":["karma-chai-dom"]},{"name":["dom-select"]},{"name":["dom-listeners"]},{"name":["has-dom"]}],"total":7265,"from":0}

Available fields

  • author
  • created
  • dependencies
  • description
  • devDependencies
  • homepage
  • keywords
  • maintainers
  • modified
  • name
  • readme
  • repository
  • scripts
  • times
  • version
  • rating - computed rating as per bin/rating.js

Running your own npmsearch

Setup Elasticsearch

See the elasticsearch docs for setting up a node

# create an index

curl -XPUT http://localhost:9200/my-index-name

# setup the package field mappings

cat mappings.json | curl -v -XPOST http://localhost:9200/my-index-name/package/_mapping -H "Content-type: application/json" -d @-

# setup an alias to 'registry'

curl -XPOST 'http://localhost:9201/_aliases' -d '
{
  "actions" : [
    { "add" : { "index" : "my-index-name", "alias" : "registry" } }
  ]
}'

pipe the npm registry into elasticsearch

npm2es --couch="https://skimdb.npmjs.com/registry" --es="http://localhost:9200/registry"

run the server

node bin/server.js --es="http://localhost:9200/registry"

compute ratings

node bin/rating.js --es="http://localhost:9200/registry"

Authors and Contributors

Elijah InsuaGitHub/tmpvarTwitter/@tmpvar

Authored by Elijah Insua. Contributions are welcomed from anyone wanting to improve this project!

License & Copyright

npmsearch is Copyright (c) 2016 NodeSource and licensed under the MIT license. All rights not explicitly granted in the MIT license are reserved. See the included LICENSE.txt file for more details.