dwebindex
v1.0.0
Published
A keyword based search index built on DWebtrie
Downloads
2
Readme
dwebindex
A keyword based search index built on dWebTrie
npm install dwebindex
Usage
const DWebIndex = require('dwebindex')
const ram = require('random-access-memory')
const idx = new DWebIndex(ram, { valueEncoding: 'json' })
idx.add({
some: 'data',
you: 'want to index'
}, {
keywords: ['good', 'data']
}, function () {
console.log('object indexed to the trie ...')
})
To do lookups in the index use the lookup API:
const stream = idx.lookup('good')
stream.on('data', function (document) {
console.log('document with keyword "good":', document)
})
API
index = new DWebIndex(storage, [key], [options])
Create a new index. All arguments are forwarded to the dWebTrie instance. To create an index from an existing dDatabase feed you can use the feed option
new DWebIndex(null, { feed: existingFeed })
If you're storing JSON documents, set valueEncoding: 'json'
in the options as well.
index.add(document, options, [callback])
Add a document to the index. Options should include
{
keywords: ['...'], // array of keywords to index this item at
key: '...' // optionally set a unique key for this document
// if not set one will be generated internally.
}
Callback is called with callback(err, key)
where the key is the
identifier you need if you want to remove this document.
index.remove(key, options, [callback])
Removes a document from the index. options
should contain the
same keywords as above.
stream = index.lookup(keyword)
Do a streaming lookup to get all the results for a given keyword. The stream will contain the documents for that keyword and is hash-ordered.
stream = index.and(...wordsOrStreams)
Do a streaming intersect of multiple keywords.
stream = index.or(...wordsOrStreams)
Do a streaming union of multiple keywords.
replicationStream = index.replicate(...args)
Make a replication stream. Options forwarded to dWebTrie.
License
MIT