Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
An Introduction to search-index
Search
Mats Julian Olsen
September 19, 2015
Programming
500
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
An Introduction to search-index
Mats Julian Olsen
September 19, 2015
Other Decks in Programming
See All in Programming
自サークルのIdPからログアウトできるようになるまで
taiseiue
1
140
AWSに止められる覚悟してますか?
morizo_1984
2
530
R8 の設定見直しでアプリサイズ削減
andpad
0
220
動作中のプログラムの中身をリアルタイムに覗く / Realtime Debugger for CSharp with Roslyn
prota
1
1.9k
なぜCTOを降りてFDEを選んだのか?〜なぜプロダクト企業がFDEで顧客の現場に踏み込むのか〜
gonta
1
210
AIに “答え“を書かせるのを やめてみた
___akari11
0
120
SalesForceを内製化!? ~ HR事業を支える顧客管理基盤のインフラを大公開 ~
oku053
0
180
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
1k
Railsのためのパスキー実践入門 〜マルチテナントSaaSでの意思決定〜
utakaha
2
540
パズルゲームの作り方 / how to make puzzle games
kaityo256
PRO
2
290
Optunaを作ったときにやりたかったこと、その後 (2026/10/16, Optuna Meetup #3)
iwiwi
1
430
カツオ、ご期待ください
suneo3476
0
190
Featured
See All Featured
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
320
Measuring & Analyzing Core Web Vitals
bluesmoon
9
1k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
620
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
940
YesSQL, Process and Tooling at Scale
rocio
174
15k
4 Signs Your Business is Dying
shpigford
187
23k
The Language of Interfaces
destraynor
162
27k
RailsConf 2023
tenderlove
30
1.6k
Embracing the Ebb and Flow
colly
88
5.2k
Side Projects
sachag
456
43k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
410
How STYLIGHT went responsive
nonsquared
100
6.3k
Transcript
An introduction to search-index A persistent full text search engine
for the browser and Node.js
Mats Julian Olsen Mathematics Search @ Comperio twitter.com/mewwts github.com/mewwts
Underlying technology of Norch, a search server (like Elasticsearch or
Solr) that you can install with npm. About search-index
Features • Search • Facets • Filters • Matcher •
Stopwords • Snapshots • Replication • Weighting • Del/Update
None
“Node.js project that aims to provide a common, portable interface
to a multitude of LevelDB forks.” — leveldb.org LevelUP
search-index can use any LevelUP-compliant database as a backend. Backend
Agnostic
None
Makes code that ‘require’s run in the browser by bundling
dependencies. Browserify
Serverside: LevelDB, MongoDB ++ Clientside: IndexedDB, LocalStorage ++ search-index is
Backend Agnostic
Lower bandwidth costs, lower hardware costs, scales naturally search-index runs
client side
Performance & user experience People are offline search-index runs offline
npm install search-index git clone github.com/fergiemcdowall/search-index Install
var si = require('search-index')(opts);
var si = require('search-index')({ db: fancyDatabase });
si.add(data, function (err) { // data is now indexed });
si.add(data, {}, function (err) { // data is now indexed
});
{ title: 'Indian banks provide record low interest rates', body:
'...', topics: [ 'banking' ], country: ['India'], id: 0 }
si.search(query, function (err, res) { // res.hits holds results });
// Search for India and bank in all fields {'query':
{'*': ['India', 'bank']}} // Search for India and bank in title field {'query': {'title': ['India', 'bank']}} // search for India in title and bank in body {'query': {'title': ['India'], 'body': ['bank']}}
// Search for bank in all fields // Show facets
on country field { 'query': { '*': ['bank'] }, 'facets': { 'country': {} } } // {India: 6, USA: 2, Norway: 1} //
// Search for bank in all fields // Filter on
country='India' { 'query': { '*': ['bank'] }, 'filters': { 'country': [['India', 'India']] } }
// Filter on country=‘India' or // country=‘Norway’ { 'query': {
'*': ['bank'] }, 'filters': { 'country': [ ['India', 'India'], ['Norway', 'Norway'] ] } }
search-index in Node.js https://github.com/fergiemcdowall/search-index- simple-node-js-example
search-index with IndexedDB http://mewwts.github.io/search-index-browser-with- facets/
search-index Replication http://mewwts.github.io/search-index-replicate-over- http-example/
search-index running in a WebWorker http://mewwts.github.io/search-index-webworker- example/
search-index in the Future Modular builds(add, search), streaming API, index
structure.
Get involved Make apps, submit PRs, issues or bring it
to new platforms. github.com/fergiemcdowall/search-index
Thanks a bunch Questions?