Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 1,000,000+ packages pre-installed, including @ckirby/wink-bm25-text-search with all npm packages installed. Try it out:

/* eslint no-console: 0 */ // Load wink-bm25-text-search var bm25 = require( 'wink-bm25-text-search' ); // Create search engine's instance var engine = bm25(); // Load NLP utilities var nlp = require( 'wink-nlp-utils' ); // Load sample data (load any other JSON data instead of sample) var docs = require( 'wink-bm25-text-search/sample-data/data-for-wink-bm25.json' ); // Step I: Define config // Only field weights are required in this example. engine.defineConfig( { fldWeights: { title: 4, body: 1, tags: 2 } } ); // Step II: Define PrepTasks // Set up preparatory tasks for 'body' field engine.definePrepTasks( [ nlp.string.lowerCase, nlp.string.removeExtraSpaces, nlp.string.tokenize0, nlp.tokens.propagateNegations, nlp.tokens.removeWords, nlp.tokens.stem ], 'body' ); // Set up 'default' preparatory tasks i.e. for everything else engine.definePrepTasks( [ nlp.string.lowerCase, nlp.string.removeExtraSpaces, nlp.string.tokenize0, nlp.tokens.propagateNegations, nlp.tokens.stem ] ); // Step III: Add Docs // Add documents now... docs.forEach( function ( doc, i ) { // Note, 'i' becomes the unique id for 'doc' engine.addDoc( doc, i ); } ); // Step IV: Consolidate // Consolidate before searching engine.consolidate(); // All set, start searching! var results = engine.search( 'who is married to barack' ); // results is an array of [ doc-id, score ], sorted by score // results[ 0 ][ 0 ] i.e. the top result is: console.log( docs[ results[ 0 ][ 0 ] ].body ); // -> Michelle LaVaughn Robinson Obama (born January 17, 1964) is...

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

@ckirby/wink-bm25-text-search v3.3.0

Configurable BM25 Text Search Engine with simple semantic search support

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free