Manticore 3.4.0: online schema change, new PHP client and docker image

We are pleased to announce the release of Manticore Search 3.4.0. Downloads are available here, docker image at Docker Hub.

What's new

Manage your indexes online with no need to edit the config

Previously in 3.3.0 we mentioned CREATE TABLE and DROP TABLE were in the alpha stage. In this release we are announcing that:

Commands and the related functionality, in general, are ready to be used in your application. It enables you to control not only your data but indexes too. Now adding, updating or deleting an index can be done easily. The other mode in which you have to define your index schema in your config file is still fully available and supported and still makes sense (e.g. to sync data from an external storage: MySQL / PostgreSQL / CSV etc.).

We have created an interactive course that will show you how to deal with the above commands.

We are glad to bring you the new official PHP client for Manticore Search.

Compared to the old client, the new one:

  • Uses HTTP protocol instead of SphinxAPI
  • Designed for PHP 7+
  • Supports Composer
  • Supports connection pools and failover strategies
  • Offers methods not just for searching, but also data manipulation and index/node/cluster administration
  • Can use a PSR logger

We are releasing the new fully reworked docker image with:

  • the new online schema change mode used by default. Even if you don’t have any config you can still use the docker image. In production too
  • MySQL client inside. You now don’t need it to be installed on the host. To check it out just run:
    docker run --name manticore --rm -d manticoresearch/manticore && docker exec -it manticore mysql -w && docker stop manticore
  • if you then do
    source /sandbox.sql

    it will create a test index and with the UP and DOWN arrow keys you can walk through some sample queries

  • docker-compose example which shows the recommended way of using it in production
  • replication example

Stored only fields

You can now have fields that are stored, but not full-text indexed. It is useful when you want to store something to just have it in the final result set and that’s it, but want to avoid:

  • Full-text indexing it, so it doesn’t increase your dictionary size and indexation time
  • Keeping it in memory as a string attribute just to save RAM
 

The typical use cases are:

  • For the document’s title/body use indexed + stored to be able to find in the fields and highlight/display the results instantly
  • For document’s URL use just stored as there’s little chance you want to search through the URL and highlight it 
  • For tags/color/size use string attributes to be able to filter by them and do faceted search

CAUTION: Full-text fields are "stored" by default for Real-time indexes now.

Starting from 3.4.0 full-text fields in Real-time indexes are “stored” by default which makes all data you add to Manticore Search available in its original form by default. There are many cases when Manticore Search can be used as a standalone database, not as a complement to another storage, that’s why we have changed the default.

All languages tokenization

Most languages are tokenized fine by default now.

Another changed default is for charset_table. Previously it included only digits, Latin and Cyrillic letters. Starting from this version it includes codes for most languages, so in most cases, you don’t need to worry about it at all.

HTTP /sql endpoint

All SQL sentences are now supported over HTTP.

The /sql endpoint of HTTP protocol now supports all SphinxQL statements that are otherwise possible via MySQL protocol.

CAUTION: Since 3.4.0 replication can't be mixed with in-config schemas of indexes.​

Replication always supported only Real-time indexes and manipulation with that was always possible online with no need to update your config. Since we are adding the new mode where you can manage your schema online too we’ve decided to make the replication supported only in the new mode. So it’s now straightforward:
CREATE TABLE -> `CREATE CLUSTER -> ALTER CLUSTER ... ADD
with no need to go and edit your config to add each new index.

COVID-19 pandemic

We all faced an unprecedented situation in connection with COVID-19. We hope that you and your loved ones are safe and healthy, and now more than ever, remote cooperation is important. 

Manticore Software core team has been always working remotely from different parts of the world, therefore, our normal work processes are not affected by the situation at all. We are continuing to do what we used to do, keeping on improving our product and supporting our clients.

Take care of yourself and your loved ones!

Leave a Reply