npmsearchblazing fast npm search utility

联合创作 · 2023-09-22 20:15

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 Insua GitHub/tmpvar Twitter/@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.

浏览 15
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报