GithubHelp home page GithubHelp logo

davidmr001 / indextank-engine Goto Github PK

View Code? Open in Web Editor NEW

This project forked from linkedinattic/indextank-engine

0.0 1.0 0.0 3.56 MB

Indexing engine for IndexTank

Home Page: http://indextank.com/

License: Apache License 2.0

Java 98.81% Python 0.63% HTML 0.08% GAP 0.27% Thrift 0.20%

indextank-engine's Introduction

About IndexTank Engine

This project contains IndexTank (http://indextank.com) search engine implementation. Includes features like variables (boosts), categories (facets), faceted search, snippeting, custom scoring functions, suggest, and autocomplete.

For IndexTank's full administrative stack (which makes use of this engine) see http://github.com/linkedin/indextank-service

Homepage:

Find out more about at: TBD

License:

Apache Public License (APL) 2.0

Artifacts:

  1. indextank-engine-1.0.0.jar <-- core library

Maven:

groupId: com.flaptor.indextank

artifactId: indextank-engine

version: 1.0.0

Package generation:

Build a single jar containing all dependencies by:

$ mvn compile package assembly:single

This will create a single file in:

target/indextank-engine-1.0.0-jar-with-dependencies.jar

Quick start with the standalone REST API

You can try basic indexing and searching

Main class: com.flaptor.indextank.api.Launcher

After running the package generation:

$ java -cp target/indextank-engine-1.0.0-jar-with-dependencies.jar com.flaptor.indextank.api.Launcher

This command starts an API server (http://www.indextank.com/documentation/api) at port 20220. The indexing and searching can be done with any client or for example, via curl:

$ curl -d "{\"docid\":\"post1\", \"fields\":{\"text\":\"I love Fallout\"}}" -v -X PUT http://localhost:20220/v1/indexes/idx/docs

$ curl -d "{\"docid\":\"post2\", \"fields\":{\"text\":\"I love Planescape\"}}" -v -X PUT http://localhost:20220/v1/indexes/idx/docs

$ curl http://localhost:20220/v1/indexes/idx/search?q=love

API Clients (compatible with the embedded API)

Java: https://github.com/flaptor/indextank-java

Python: https://github.com/flaptor/indextank-py

Ruby: https://github.com/flaptor/indextank-rb

PHP: https://github.com/flaptor/indextank-php

Thrift API sample configuration:

Main class: com.flaptor.indextank.index.IndexEngine

VM args:

-XX:+UseConcMarkSweepGC -XX:+UseParNewGC -Dorg.apache.lucene.FSDirectory.class=org.apache.lucene.store.MMapDirectory -Xmx600M

Program args:

--facets --rti-size 500 --conf-file sample-engine-config --port 20220 --environment-prefix TEST --recover --dir index --snippets --suggest documents --boosts 3 --index-code dgmqn --functions 0:-age

Sample engine configuration file contents:

{
"max_variables": 3, 
"functions": {"0": "-age"}, 
"index_code": "dgmqn", 
"allows_facets": true, 
"ram": 600, 
"log_server_host": "index123.localhost", 
"autocomplete": true,
"log_server_port": 15100, 
"autocomplete_type": "documents",
"allows_snippets": true, 
"rti_size": 500, 
"facets_bits": 5, 
"base_port": 20220, 
"log_based_storage": false, 
"xmx": 600
}

Tests:

Execute the following command to run:

mvn test

Avoid running tests by adding:

mvn -Dmaven.test.skip=true compile

Eclipse:

Set up Eclipse for this project by executing the command below:

mvn eclipse:eclipse

Inside Eclipse, select Preferences > Java > Build Path > Classpath Variables. Define a new classpath variable M2_REPO and assign maven repository.

For more information, check out http://maven.apache.org/guides/mini/guide-ide-eclipse.html

indextank-engine's People

Contributors

astral1 avatar clamprecht avatar dbuthay avatar iladriano avatar santip avatar

Watchers

 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.