NodeJS bindings for Tantivy
TODO: Fill out this long description.
Please note this is an unstable API. Until 1.0.0 is released, breaking changes may be published without a major version increment.
Clone this repository.
Then run the following in the project's root directory.
npm i
npm run build
# for for use with electron
npm run build-electron
const { Search, SchemaBuilder, TopDocs, QueryParser } = require('@strangerlabs/tantivy')
let search = new Search()
let schemaBuilder = new SchemaBuilder()
schemaBuilder.addTextField("_id", ["STRING"] )
let title = schemaBuilder.addTextField("title", ["TEXT", "STORED"] )
let year = schemaBuilder.addTextField("year", ["TEXT", "STORED"] )
let authors = schemaBuilder.addTextField("authors", ["TEXT", "STORED"] )
let url = schemaBuilder.addTextField("url", ["TEXT", "STORED"] )
search.buildSchema(schemaBuilder)
search.defaultSearchFields([title, year, authors, url])
search.createIndex('./data')
search.createIndexWriter(100000000)
let document = {
_id: "1",
title: "The Economic History of the Fur Trade: 1670 to 1870",
year: "2008",
authors: ["Ann M. Carlos, University of Colorado", "Frank D. Lewis, Queen’s University"],
url: "http://eh.net/encyclopedia/the-economic-history-of-the-fur-trade-1670-to-1870/"
}
search.addDoc(JSON.stringify(document))
search.commit()
search.loadSearchers()
let queryParser = new QueryParser(search, [title, year, authors, url])
let query = queryParser.parse("fur")
let collector = new TopDocs(10)
let results = search.topSearch(query, collector)
console.log(results)
Please browse to the examples folder for line-by-line documentation of the API.
StJohn Giddy @thecallsign
PRs accepted.
Small note: If editing the README, please conform to the standard-readme specification.
MIT © 2019 Stranger Labs, Inc.