Giter Site home page Giter Site logo

search-perf's Introduction

Searcher performance comparison suite between Solr, ElasticSearch and Sensei

1. Setup

By default the search-perf will load and query the data based on the data/cars.json dataset

The following setup steps are required to prepare the Sensei DB for testing:
Clean all the indexes, copy configs/sensei/schema.xml into the Sensei config folder

The following setup steps are required to prepare the Solr for testing:
Clean all the indexes in the data folder, copy configs/solr/schema.xml into the Solr conf folder

Elastic search doesn't require any setup steps

2. Loading docs into the DB:
It does make sense to do the performance testing when the documents are kept adding to the db

For the Sensei just use com.senseidb.gateway.file.LinedFileDataProvider to load docs from the big file
For Solr execute  bin/loadIndex script. Please uncomment the section specific to Solr
For Elastic Search execute  bin/loadIndex script. Please uncomment the section specific to Elastic Search
The script launches the java program with the following command line params:
type   url documentFilePath numOfThreads
eg 
- elastic http://localhost:9200/cars/car data/cars3m.json 5
- solr http://localhost:8983/solr/update/json/?commit=true data/cars3m.json 5

numOfThreads - number of threads, that are used to post documents to the DB


3. Do the performance test

For Sensei :
bin/perfTest configs/test-sensei.properties
For Solr
bin/perfTest configs/test-solr.properties
For Elastic search
bin/perfTest configs/test-elastic.properties

configs/test-xxx.properties file contains the configuration needed to launch the performance test. The majority of the parameters are self-explaining. 
schemaPath and dataFilePath specify the sensei schema and the file containing documents in the json format. These are needed to generate dynamic search queries

The result of the test will be printed on the console. Essential logs are located in the ./report.log file




search-perf's People

Contributors

javasoze avatar weikai77 avatar

Stargazers

Alex Pinkin avatar

Watchers

Alex Pinkin avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.