glicer/search

Autocomplete, search and browsing as-you-type


Keywords
search, real-time, autocomplete, as-you-type
License
GPL-3.0

Documentation

js-php-real-time-search (in progress)

A real-time full text search solution with javascript (client side) and php (server side)

Autocomplete, search and browsing as-you-type in real-time

Sample Search

It's working with

Check out the demo.

Feedback appreciated

Server Side

Import Data

Data must be in yaml format, some samples in tests/server/data

    <?php
    use Symfony\Component\Console\Output\ConsoleOutput;
    use GlSearchEngine\GlServerEngine;

    $output    = new ConsoleOutput();

    $yamlFiles      = [__DIR__ . "/data/web.yml", __DIR__ . "/data/web2.yml"];  //yaml files list to import in database
    $dbname         = __DIR__ . "/data/web.db"; //database path
    $table          = "web";    //prefix table name
    $fieldsFullText = ['title', 'tags', 'description', 'address', 'city'];  //fields list to fulltext search
    $fieldsFilter   = ['gps']; //fields list possibly used to filter

    $engine = new GlServerEngine($dbname, $output, true);
    $engine->importYaml(
           $table,
           $fieldsFilter,
           $fieldsFullText,
           $yamlFiles,
           function () use ($output) { //callback function to each import
               $output->write(".");
           }
    );

Service

Example of php file called by javascript client.

Configure Apache Server

Allow multiple requests to be sent over the same TCP connection

Header set Connection Keep-Alive

Client side

Example of use

Running Client/Server Tests

Launch from command line :

vendor\bin\phpunit

To Do

Ranking / Sorting

Licence

GNU 2

Contact

Authors : Emmanuel ROECKER & Rym BOUCHAGOUR

Web Development Blog - http://dev.glicer.com