เวลา 22.00 น
นี่คือรีจิสทรี npm ที่ยืดหยุ่นต่อความล้มเหลวกับกระบวนการจำลองแบบดัชนี Algolia มันจะจำลองแพ็คเกจ npm ทั้งหมดไปยังดัชนี Algolia และอัปเดตให้ทันสมัยอยู่เสมอ สถานะของการจำลองจะถูกบันทึกไว้ในการตั้งค่าดัชนี Algolia
การจำลองควรทำงานอยู่เสมอ ต้องทำงานพร้อมกันเพียงอินสแตนซ์เดียวต่อดัชนี Algolia หากกระบวนการล้มเหลว ให้รีสตาร์ท และกระบวนการจำลองแบบจะดำเนินต่อไปที่จุดสุดท้ายที่จำได้
ขณะนี้ดัชนี Algolia ถูกใช้ฟรีโดยบางโครงการที่เลือก (เช่น: Yarnpkg.com, codesandbox.io, jsdelivr.com ฯลฯ...)
หากคุณต้องการรวมดัชนีนี้ในโครงการของคุณ โปรดสร้างคำขอการสนับสนุนที่นี่: Algolia Support
ผลิตภัณฑ์นี้เป็นผลิตภัณฑ์โอเพ่นซอร์สสำหรับชุมชน และไม่รองรับโดย Algolia
เพื่อให้มีสิทธิ์โครงการของคุณต้องเป็นไปตามข้อกำหนดเหล่านี้:
คุณยังสามารถใช้โค้ดหรืออิมเมจนักเทียบท่าสาธารณะเพื่อเรียกใช้ของคุณเองได้ (ณ เดือนกันยายน 2021 จะสร้างบันทึก ~3M x4)
สำหรับทุกแพ็คเกจ NPM เราจะสร้างบันทึกในดัชนี Algolia เรกคอร์ดผลลัพธ์มีสคีมาดังต่อไปนี้:
{
name : 'babel-core' ,
downloadsLast30Days : 10978749 ,
downloadsRatio : 0.08310651682685861 ,
humanDownloadsLast30Days : '11m' ,
jsDelivrHits : 11684192 ,
popular : true ,
version : '6.26.0' ,
versions : {
// [...]
'7.0.0-beta.3' : '2017-10-15T13:12:35.166Z' ,
} ,
tags : {
latest : '6.26.0' ,
old : '5.8.38' ,
next : '7.0.0-beta.3' ,
} ,
description : 'Babel compiler core.' ,
dependencies : {
'babel-code-frame' : '^6.26.0' ,
// [...]
} ,
devDependencies : {
'babel-helper-fixtures' : '^6.26.0' ,
// [...]
} ,
repository : {
url : 'https://github.com/babel/babel/tree/master/packages/babel-core' ,
host : 'github.com' ,
user : 'babel' ,
project : 'babel' ,
path : '/tree/master/packages/babel-core' ,
branch : 'master' ,
} ,
readme : '# babel-corenn> Babel compiler core.nnn [... truncated at 200kb]' ,
owner : {
// either GitHub owner or npm owner
name : 'babel' ,
avatar : 'https://github.com/babel.png' ,
link : 'https://github.com/babel' ,
} ,
deprecated : 'Deprecated' , // This field will be removed, please use `isDeprecated` instead
isDeprecated : true ,
deprecatedReason : 'Deprecated' ,
isSecurityHeld : false , // See https://github.com/npm/security-holder
badPackage : false ,
homepage : 'https://babeljs.io/' ,
license : 'MIT' ,
keywords : [
'6to5' ,
'babel' ,
'classes' ,
'const' ,
'es6' ,
'harmony' ,
'let' ,
'modules' ,
'transpile' ,
'transpiler' ,
'var' ,
'babel-core' ,
'compiler' ,
] ,
created : 1424009748555 ,
modified : 1508833762239 ,
lastPublisher : {
name : 'hzoo' ,
email : '[email protected]' ,
avatar : 'https://gravatar.com/avatar/851fb4fa7ca479bce1ae0cdf80d6e042' ,
link : 'https://www.npmjs.com/~hzoo' ,
} ,
owners : [
{
email : '[email protected]' ,
name : 'thejameskyle' ,
avatar : 'https://gravatar.com/avatar/8a00efb48d632ae449794c094f7d5c38' ,
link : 'https://www.npmjs.com/~thejameskyle' ,
} ,
// [...]
] ,
lastCrawl : '2017-10-24T08:29:24.672Z' ,
dependents : 3321 ,
types : {
ts : 'definitely-typed' , // definitely-typed | included | false
definitelyTyped : '@types/babel__core' ,
} ,
moduleTypes : [ 'unknown' ] , // esm | cjs | none | unknown
styleTypes : [ 'none' ] , // file extensions like css, less, scss or none if no style files present
humanDependents : '3.3k' ,
changelogFilename : null , // if babel-core had a changelog, it would be the raw GitHub url here
objectID : 'babel-core' ,
// the following fields are considered internal and may change at any time
_downloadsMagnitude : 8 ,
_jsDelivrPopularity : 5 ,
_popularName : 'babel-core' ,
_searchInternal : {
alternativeNames : [
// alternative versions of this name, to show up on confused searches
] ,
} ,
}
หากคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับวิธีการทำงานของอัลกอริธึมการจัดอันดับของ Algolia คุณสามารถอ่านโพสต์ในบล็อกนี้ได้
เรากำลังจำกัดการค้นหาให้ใช้ชุดย่อยของแอตทริบิวต์เท่านั้น:
_popularName
name
description
keywords
owner.name
owners.name
Algolia มีความสามารถในการค้นหาคำนำหน้าเริ่มต้น (จับคู่คำที่มีเพียงจุดเริ่มต้นเท่านั้น) สิ่งนี้ถูกปิดใช้งานสำหรับแอตทริบิวต์ owner.name
และ owners.name
Algolia มีความทนทานต่อการพิมพ์ผิดตามค่าเริ่มต้น
การใช้คุณสมบัติ optionalFacetFilters
ของ Algolia เรากำลังเพิ่มการจับคู่ที่ตรงกันทุกประการกับชื่อของแพ็คเกจเพื่อให้อยู่ด้านบนของผลลัพธ์เสมอ
สำหรับแต่ละแพ็กเกจ เราใช้จำนวนการดาวน์โหลดในช่วง 30 วันที่ผ่านมาเป็นการตั้งค่า customRanking
ของ Algolia สิ่งนี้จะถูกใช้เพื่อเรียงลำดับผลลัพธ์ที่มีความเกี่ยวข้องทางข้อความเหมือนกัน
ตัวอย่างเช่น ค้นหา babel
โดยจับคู่ทั้ง babel-core
และ babel-messages
จากมุมมองที่เกี่ยวข้องกับข้อความ แพ็คเกจทั้งสองนั้นตรงกันทุกประการในลักษณะเดียวกัน ในกรณีเช่นนี้ Algolia จะใช้การตั้ง customRanking
และจึงจัดแพ็กเกจที่มีจำนวนการดาวน์โหลดสูงสุดในช่วง 30 วันที่ผ่านมาไว้ก่อน
แพ็คเกจบางแพ็คเกจจะถือว่าได้รับความนิยมหากดาวน์โหลด "มากกว่า" มากกว่าแพ็คเกจอื่น ขณะนี้เราพิจารณาแพ็คเกจที่ได้รับความนิยมหากเป็น:
0.005%
ของจำนวนการดาวน์โหลด npm ทั้งหมด ธง popular
นี้ยังใช้เพื่อเพิ่มสถิติมากกว่าธงที่ไม่เป็นที่นิยมอีกด้วย
yarn
apiKey=... yarn start
หากต้องการรีสตาร์ทจากจุดใดจุดหนึ่ง (หรือจากจุดเริ่มต้น):
seq=0 apiKey=... yarn start
สิ่งนี้มีประโยชน์เมื่อคุณต้องการซิงค์รีจิสทรี npm อีกครั้งโดยสมบูรณ์เนื่องจาก:
seq
แสดงถึงลำดับการเปลี่ยนแปลงในภาษา CouchDB
เป้าหมายของเราในโครงการนี้คือ:
เมื่อกระบวนการเริ่มต้นด้วย seq=0
:
การจำลองและการดูถูกแยกออกจากกันเนื่องจาก:
ดูการมีส่วนร่วม.md