Skip to content

Latest commit

History

502 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

NPM versionNPM downloadsMIT LicenseBuild StatusJoin the chat at https://gitter.im/fergiemcdowall/search-index

 ___ ___ ___ ___ ___ /\__\ /\ \ /\ \ /\ \ /\__\ /::| | /::\ \ /::\ \ /::\ \ /:/ / /:|:| | /:/\:\ \ /:/\:\ \ /:/\:\ \ /:/__/ /:/|:| |__ /:/ \:\ \ /::\~\:\ \ /:/ \:\ \ /::\ \ ___ /:/ |:| /\__\ /:/__/ \:\__\ /:/\:\ \:\__\ /:/__/ \:\__\ /:/\:\ /\__\ \/__|:|/:/ / \:\ \ /:/ / \/_|::\/:/ / \:\ \ \/__/ \/__\:\/:/ / |:/:/ / \:\ /:/ / |:|::/ / \:\ \ \::/ / |::/ / \:\/:/ / |:|\/__/ \:\ \ /:/ / /:/ / \::/ / |:| | \:\__\ /:/ / \/__/ \/__/ \|__| \/__/ \/__/ 

Deploy

npm install norch and then start with norch

or programatically:

require('norch')(options,function(err,norch){// Norch server started on http://localhost:3030 (or the specified host/port)})

Put stuff in

curl -X POST -d @myData.json http://localhost:3030/add (where myData.json is a newline separated file of JSON objects)

Search for hits (uses search-index's API)

http://localhost:3030/search?q={"query":[{"AND":{"*":["usa"]}}]}

(http://localhost:3030/search returns everything)

Make autosuggest

http://localhost:3030/matcher?q=usa

Export, import, and replicate an index

# create a snapshot on the server (available under /latestSnapshot)
curl -X POST http://localhost:3030/snapshot
# get latest snapshot
curl -X GET http://anotherIndex:3030/latestSnapshot > export.json
# replicate an export file into a new index on another server
curl -X POST -d @export.json http://someOtherServer:3030/import

API

EndpointMethodResponseTypical Use Case
/addPOSTstatus codeAdd documents to the index
/availableFieldsGETstreamDiscover the name of fields which can be searched in
/bucketsGETstreamAggregate documents on ranges of metadata
/categorizeGETstreamAggregate documents on single metadata values
/concurrentAddPOSTstatus codeFor when more than one source is adding documents to the index at the same time
/createSnapshotPOSTstatus codeCreate a snapshot of the index
/deleteDELETEstatus codeRemove documents from index
/docCountGETobjectCounts total document in index
/flushDELETEstatus codeRemove all documents from index
/getGETstreamGet documents by ID
/importPOSTfileImport/merge an existing index into this one
/latestSnapshotGETfileDownload the latest index snapshot
/listSnapshotsGETfileSee list of snapshots
/matchGETstreamMatch by linguistic similarity- autosuggest, autocomplete
/searchGETstreamSearch in the index
/totalHitsGETobjectShow number of hits that a given query returns

The Norch API docs are here. Norch is essentially an http wrapper around search-index.

About Norch

Norch.js is an experimental search engine built with Node.js and search-index featuring, Full text search, Stopword removal, aggregation Matching (Autosuggest), Phrase search, Fielded search, Field weighting, Relevance weighting (tf-idf), Paging (offset and resultset length)

Logging

On Linux and OSX. Install bunyan, tail the log-file and pipe to bunyan.

Install bunyan:

npm install -g bunyan

Tail log-file:

tail -f log-info.log |bunyan

Mailing list:norchjs@googlegroups.com - subscribe by sending an email to norchjs+subscribe@googlegroups.com

License

MIT, Copyright (c) 2013-16 Fergus McDowall

About

A search engine based on Node.js and LevelDB

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages