massiltag / CSV-Indexer

CSV indexing engine, made in Java, JAX-RS - RESTEASY.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Indexer

Indexer project as part of the LU3IN107 - WEB Technology teaching unit.
Supervised by Olivier PITTON
Sorbonne University

Contributors

Project description:

  • The goal of this project is to conceive and develop an Indexing Engine facilitating fast and accurate information retrieval from a database.

Getting Started

  • To run the project, execute mvn jetty:run-war

Documentation

Operations:

  • Create Table

    • Request Body example:
      {
        "name": "TableName",
        "columns": [
          {
            "name": "VendorID",
            "type": "Integer"
          },
          {
            "name": "tpep_pickup_datetime",
            "type": "String"
          },
          {
            "name": "tpep_dropoff_datetime",
            "type": "String"
          },
          {
            "name": "passenger_count",
            "type": "Integer"
          },
          {
            "name": "trip_distance",
            "type": "Double"
          },
          {
            "name": "RatecodeID",
            "type": "Integer"
          },
          {
            "name": "store_and_fwd_flag",
            "type": "String"
          },
          {
            "name": "PULocationID",
            "type": "Integer"
          },
          {
            "name": "DOLocationID",
            "type": "Integer"
          },
          {
            "name": "payment_type",
            "type": "Integer"
          },
          {
            "name": "fare_amount",
            "type": "Double"
          },
          {
            "name": "extra",
            "type": "Double"
          },
          {
            "name": "mta_tax",
            "type": "Double"
          },
          {
            "name": "tip_amount",
            "type": "Double"
          },
          {
            "name": "tolls_amount",
            "type": "Double"
          },
          {
            "name": "improvement_surcharge",
            "type": "Double"
          },
          {
            "name": "total_amount",
            "type": "Double"
          },
          {
            "name": "congestion_surcharge",
            "type": "Integer"
          }
        ]
      }
  • Add Indexes

    • Request Body example:
      {
        "tableName": "TableName",
        "indexes": [
            "VendorID", 
            "passenger_count"
      
          ]
      }
  • Upload data

  • Start Indexing

    • Request Body: none
  • Query

    • Request Body example:
      {
        "type": "SELECT",
        "cols": ["VendorID", "passenger_count"],
        "from": "TableName",
        "operator": "AND",
        "where": {
          "VendorID": {
            "operator": "=",
            "value": 2
          },
          "fare_amount": {
            "operator": "=",
            "value": 5
          }
        },
        "limit": 5000
      }

About

CSV indexing engine, made in Java, JAX-RS - RESTEASY.


Languages

Language:Java 94.7%Language:HTML 5.3%