Manticore Search 2.4.1 GA release

We are please to announce the GA release of Manticore Search 2.4.1.

Prebuild packages available for Debian,Ubuntu, Red Hat/CentOS, Windows and OSX can be downloaded from here.

Manticore Search 2.4.1 GA is 100% compatible with existing Sphinx search versions (if you upgrade from an older Sphinx version, check upgrade path to 2.3.2).

 

New features

OR operator in WHERE

It is now possible to have OR in WHERE clause between attribute filters. Please note it’s still not possible to do OR between a MATCH clause and attribute filters.

mysql> select * from wikipedia where match('test')  and pageid=357881 OR  len=2070;
+-----------+------------------------------------------------------------+---------+-------+------------+
| id        | title                                                      | pageid  | len   | touched    |
+-----------+------------------------------------------------------------+---------+-------+------------+
| 227704715 | Test-driven_development                                    |  357881 | 24915 | 1216959577 |
| 222632760 | Echo_(command)                                             |  754160 |  2070 | 1214847412 |
+-----------+------------------------------------------------------------+---------+-------+------------+
2 rows in set (0.01 sec)
Maintenance mode

Using SET statement the server can be put in maintenance mode. In this mode only clients using vip connections can execute queries.

mysql> SET MAINTENANCE = 1;
CALL KEYWORDS on distributed indexes

It is now possible to run CALL KEYWORDS on distributed indexes as well. The command gets executed on every node and the results are merged by master and sent back.

Grouping in UTC

By default,  time grouping functions are calculated in the local timezone.  grouping_in_utc allows switching to UTC timezone. It is also possible to change it on-the-fly with SET statement.

Log files permissions

By default, searchd creates log files with 600 permission.  You can now use query_log_mode to set a different permission.

searchd
{
   ...
   query_log_mode = 666
   ...
}

 

Other small tweaks:

  • Fields weights can be zero or negative
  • max_query_time now can break full-scan queries (queries without a MATCH clause)
  • introduced net_wait_tm, net_throttle_accept and net_throttle_action. These are fine tuning settings of the network thread for  workers=thread_pool in case of busy servers.
  • you can now perform COUNT DISTINCT when using facets
  • IN can now work with JSON float arrays
  • multi-query optimization is not broken anymore by integer/float expressions
  • SHOW META shows a ‘multiplier’ row when multi-query optimization is used

Compiling

Minimum gcc version required for comping is 4.7.2. Compiling process requires  cmake. This gives the ability to pack the build as zip or specific distro package (rpm/deb).  For more information consult compiling section of the documentation.

Upgrading from Sphinx search

Manticore Search continues to use the usual /etc/sphinxsearch/sphinx.conf.

Service will run under manticore user ( Spinx was using sphinx or sphinxsearch).

Default used folders are /var/lib/manticore, /var/log/manticore, /var/run/manticore.  You can still use existing sphinx.conf, but you need to manually change the permissions on /var/lib/sphinxsearch, /var/log/sphinxsearch, /var/run/sphinxsearch.

Bug fixes

Lot of bugs reported on Sphinx 2.3.2 were fixed, but possible not all. If you upgrade and still get a bug, please fill a ticket on the official issue tracker .

If you are using RealTime indexes we recommend upgrading to Manticore Search 2.4.1 GA as the progressive merge of RT chunks introduced in  Sphinx Search 2.3.2 can lead to index corruption.

For a full report of changes please consult the Release note .

Leave a Reply