We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy. Image for the cookie policy date

Serverless Browser Based Search Engine

i am planning to go with JavaScript Search engine with Angular/Vue.js/Meteor/React as front-end

Choice of javascript client side storage is below

1) IndexedDB
2) JScene
3) LargeLocalStorage
4) ydn db
5) PouchDB

Links for reference

https://github.com/tantaman/LargeLocalStorage
https://gist.github.com/inexorabletash/a279f03ab5610817c0540c83857e4295
http://lintool.github.io/JScene/
https://db-engines.com/en/system/LokiJS%3BPouchDB%3BSolr

Please kindly suggest which one to go...

Basically planning to built a cross platform system which accepts huge files from the user and finally does a full text search...

In this way, the user just needs the browser no installation is required......

In this way, the application will be purely portable irrespective of OS....

This would be absolutely cross platform

Featurs trying to build once the files got indexed by the front-end code/logic

1) Search Box with type-ahead search
2) Combo box to choose the language
3) Number of hits should be while typing. Please type some text in and 
   you will understand what is number of hits
4) Search keyword should be highlighted in the left with portion of text.
   On clicking the text, the entire subject with highlighted search
   should shown in the right

nearly 2,000 files are in text format of 600 kB each size.

the files can be anything - log file or any text file....If support other formats also it is well and good

need suggestions or comments...

I never come across several open source apps which does full text search or have the functionality which does everything in front-end or client-side

Thanks.


1 Reply

SN Sevvandhi Nagulan Syncfusion Team October 8, 2019 01:44 PM UTC

Hi Javadev, 

Greetings from Syncfusion support. 

You can use the elastic lunar for with our Syncfusion AutoComplete component to achieve your requirement.  Please find the code snippet below, 

        let searchBox: AutoComplete = new AutoComplete({ 
            dataSource: searchJson, 
                filtering: (e: any) => { 
                if (e.text && e.text.length < 3) return; 
                (elasticlunr as any).clearStopWords(); 
                searchInstance = (elasticlunr as any).Index.load(searchJson); 
                var val = searchInstance.search(e.text, { 
                    fields: 
                    { 
                        component: { boost: 1 }, 
                            name: { boost: 2 } 
                    }, 
                        expand: true, 
                        boolean: 'AND' 
                    }); 
                let query: Query = new Query().take(10).select('doc'); 
                var fields = this.fields; 
                e.updateData(val, query, fields); 
            }, 
                minLength: 3,               
                placeholder: 'Search any components or features..', 
                noRecordsTemplate: '<div class="search-no-record">We’re sorry. We cannot find any matches for your search term.</div>', 
                fields: { groupBy: 'doc.component', value: 'doc.name', text: 'doc.name' }, 
                popupHeight: 'auto', 
                suggestionCount: 10, 
                highlight: true, 
        });             
            searchBox.appendTo('#search-box'); 

To know more about elastic lunar, kindly refer the below documentation link. 


Regards, 
Sevvandhi N 


Loader.
Up arrow icon