项目作者: slipsoft

项目描述 :
Distributed index based search engine.
高级语言: Java
项目地址: git://github.com/slipsoft/slipdb.git
创建时间: 2019-02-18T13:25:12Z
项目社区:https://github.com/slipsoft/slipdb

开源协议:

下载


" class="reference-link">SlipDb

Build Status
Coverage Status

A distributed, index based, search engine.

Getting Started

These instructions will get you a copy of the project up and running on your
local machine for development and testing purposes. See deployment for notes on
how to deploy the project on a live system.

Prerequisites

  • JDK >= 8.x
  • Maven

Installing

Install dependencies

  1. mvn install

Copy & edit the config file

  1. cp config.dist.json config.json

Run the server

  1. mvn jetty:run

You can now connect to the API at http://localhost:8080/.
A working get request could be /db/tables.

You can also find the API documentation of your running instance at http://localhost:8080/docs/

Running the tests

JUnit is used for the tests. You can run it with Maven:

  1. mvn test

Deployment

not deployable yet…

Documentation

API

The API documentation can be found online. Or if you want to consult you local instance documentation you can access http://localhost:8080/docs/ while the server is running.

Manual testing of the API

While the server is running, here are some queries you can run to test the API:

  1. PUT /db/tables with the following body:

    1. [
    2. {
    3. "name": "taxi2newYork",
    4. "allColumns": [
    5. {"name": "vendor_id", "type": "Byte"},
    6. {"name": "tpep_pickup_datetime", "type": "Date"},
    7. {"name": "tpep_dropoff_datetime", "type": "Date"},
    8. {"name": "passenger_count", "type": "Byte"},
    9. {"name": "trip_distance", "type": "Float"},
    10. {"name": "pickup_longitude", "type": "Double"},
    11. {"name": "pickup_latitude", "type": "Double"},
    12. {"name": "rate_code_id", "type": "Byte"},
    13. {"name": "store_and_fwd_flag", "type": "String", "size": "1"},
    14. {"name": "dropoff_longitude", "type": "Double"},
    15. {"name": "dropoff_latitude", "type": "Double"},
    16. {"name": "payment_type", "type": "Byte"},
    17. {"name": "fare_amount", "type": "Float"},
    18. {"name": "extra", "type": "Float"},
    19. {"name": "mta_tax", "type": "Float"},
    20. {"name": "tip_amount", "type": "Float"},
    21. {"name": "tolls_amount", "type": "Float"},
    22. {"name": "improvment_surcharge", "type": "Float"},
    23. {"name": "total_amount", "type": "Float"}
    24. ]
    25. }
    26. ]
  2. GET /db/tables should return the table we just created.

  3. POST /table/{tableName}/load with taxi2newYork as tableName and the content of testdata/SMALL_100_000_yellow_tripdata_2015-04.csv as the body.

  4. PUT /table/{tableName}/index with taxi2newYork as tableName and the following body:

    1. {
    2. "name": "index_vendor_id",
    3. "columnsToIndex": [
    4. "vendor_id"
    5. ],
    6. "type": "dichotomy"
    7. }

Built With

Authors

See also the list of contributors
who participated in this project.