astorise / manticoresearch

Distributed search engine with SQL/JSON interfaces

Home Page:https://manticoresearch.com/

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
  • Percolate queries for stream filtering
  • Replication
  • Document storage
  • 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

YUM repo for RHEL/Centos

yum install http://repo.manticoresearch.com/manticore-repo.noarch.rpm
yum install manticore

Homebrew

brew install manticoresearch

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 manticore.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

Public Slack channel

Bug tracker

Professional Support

Contributing

Refer to CONTRIBUTING.md

License

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

Analytics

About

Distributed search engine with SQL/JSON interfaces

https://manticoresearch.com/

License:GNU General Public License v2.0


Languages

Language:C++ 68.6%Language:HTML 13.9%Language:C 8.2%Language:PHP 3.3%Language:CMake 2.3%Language:Yacc 0.9%Language:Ruby 0.9%Language:Java 0.7%Language:Python 0.7%Language:Shell 0.2%Language:Lex 0.2%Language:XSLT 0.1%Language:TSQL 0.0%Language:Makefile 0.0%Language:Dockerfile 0.0%Language:Batchfile 0.0%Language:Perl 0.0%Language:C# 0.0%Language:Smarty 0.0%