junaidpk / manticoresearch

Manticore Search is a fork of Sphinx. Started by core members of the original Sphinx team, Manticore's goal is to deliver fast, stable and powerful open source full-text search solution

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

manticoresearch


Docs Release GitHub last commit License Slack Twitter

Docker image

Docker Automated build MicroBadger Docker Stars

Introduction

Manticore Search is an open source search server designed to be fast, scalable and with powerful and accurate full-text search capabilities. It is a fork of popular search engine Sphinx.

IMAGE ALT TEXT

Features

  • Over 20 full-text operators and over 20 ranking factors, custom rankers
  • Advanced tokenization at character and word level
  • Morphology preprocessors
  • Real-time and offline indexes
  • JSON attributes
  • Distributed indexes
  • Built-in load balancer
  • Text highlighting and word correction
  • Geo search
  • Source data connectors for MySQL, PostgreSQL, MSSQL, ODBC, XML and CSV files
  • Connectivity: MySQL-based protocol, HTTP, native libraries

Installation

Docker images

Docker images are available on Docker Hub.

To launch a Manticore Search container run

docker run --name manticore -p 9306:9306 -d manticoresearch/manticore

Precompiled binaries

Packages of latest GA release can be downloaded from http://www.manticoresearch.com/downloads

$ wget https://github.com/manticoresoftware/manticore/releases/download/x.y.z/manticore_z.y.z.deb
$ sudo dpkg -i manticore_x.y.z.deb
$ systemctl manticore start

For more details see installation.

Compiling from sources

If you like to use the latest code, you can build Manticore easy from sources:

 git clone https://github.com/manticoresoftware/manticore.git
 cd manticore
 mkdir build && cd build
 cmake .. &&  make install

For more details check compiling.

Getting started

The quick way to see Manticore in action is to use the sample RT index preconfigured in sphinx.conf. Inserting data in a RT index is done using SphinxQL and in the same way as for a MySQL table

  $ mysql -h 127.0.0.1 -P 9306
  mysql> INSERT INTO rt VALUES ( 1, 'first record', 'test one', 123 );
  Query OK, 1 row affected (0.05 sec)
  mysql> INSERT INTO rt VALUES ( 2, 'second record', 'test two', 234 );
  Query OK, 1 row affected (0.00 sec)

To search we use a SELECT statement with a MATCH clause:

 mysql> SELECT * FROM rt WHERE MATCH('test');
 +------+--------+------+
 | id   | weight | gid  |
 +------+--------+------+
 |    1 |   1643 |  123 |
 |    2 |   1643 |  234 |
 +------+--------+------+
 2 rows in set (0.01 sec)

Documentation and support

Documentation

Manticore Community Forum

Bug tracker

Professional Support

Contributing

Refer to CONTRIBUTING.md

License

Manticore Search is released under GPLv2, for more information check COPYING

Analytics

About

Manticore Search is a fork of Sphinx. Started by core members of the original Sphinx team, Manticore's goal is to deliver fast, stable and powerful open source full-text search solution

License:GNU General Public License v2.0


Languages

Language:C++ 66.8%Language:HTML 16.2%Language:C 4.2%Language:PHP 3.7%Language:Shell 3.2%Language:CMake 1.8%Language:Ruby 1.0%Language:Yacc 1.0%Language:Java 0.8%Language:Python 0.7%Language:Makefile 0.4%Language:Lex 0.2%Language:Perl 0.0%Language:Batchfile 0.0%Language:C# 0.0%Language:Dockerfile 0.0%Language:Smarty 0.0%