News
Downloads
Services
Community
Partners
About

Major new features

New features

  • added support for upto 256 searchable fields (was upto 32 before)

  • added FIBONACCI() function to expressions

  • added load_files_scattered option to snippets

  • added implicit attribute type promotions in multi-index result sets (#939)

  • added index names to indexer progress message on merge (#928)

  • added --replay-flags switch to searchd

  • added string attribute support and a few previously missing snippets options to SphinxSE

  • added previously missing Status(), SetConnectTimeout() API calls to Python API

  • added ORDER BY RAND() support to SELECT statement

  • added Sphinx version to Windows crash log

  • added RT index support to indextool --check (checks disk chunks only) (#877)

  • added prefork_rotation_throttle directive (preforked children restart delay, in milliseconds) (#873)

  • added on_file_field_error directive (different sql_file_field handling modes)

  • added manpages for all the programs

  • added syslog logging support

  • added sentence, paragraph, and zone support in html_strip_mode=retain mode to snippets

  • optimized search performance with many ZONE operators

  • improved suggestion tool (added Levenshtein limit, removed extra DB fetch)

  • improved sentence extraction (handles salutations, starting initials better now)

  • changed max_filter_values sanity check to 10M values

New SphinxQL features

  • added FLUSH RTINDEX statement

  • added dist_threads directive (parallel processing), load_files, load_files_scattered, batch syntax (multiple documents) support to CALL SNIPPETS statement

  • added OPTION comment='...' support to SELECT statement (#944)

  • added SHOW VARIABLES statement

  • added dummy handlers for SET TRANSACTION, SET NAMES, SELECT @@sysvar statements, and for sql_auto_is_null, sql_mode, and @@-style variables (like @@tx_isolation) in SET statement (better MySQL frameworks/connectors support)

  • added complete SphinxQL error logging (all errors are logged now, not just SELECTs)

  • improved SELECT statement syntax, made expressions aliases optional

Bug fixes

  • fixed #982, empty binlogs prevented upgraded daemon from starting up

  • fixed #978, libsphinxclient build failed on sparc/sparc64 solaris

  • fixed #977, eliminated (most) compiler warnings

  • fixed #969, broken expression MVA/string argument type check prevented IF(IN(mva..)) and other valid expressions from working

  • fixed #966, NOT IN @global_var syntax was not supported

  • fixed #958, mem_limit over INT_MAX was not clamped

  • fixed #954, UTF-8 snippets could crash on malformed data

  • fixed #951, UTF-8 snippets could hang on malformed data

  • fixed #947, bad float column type was reported via SphinxQL, breaking some clients

  • fixed #940, group-by with a small enough max_matches limit could occasionaly crash and/or sort wrongly

  • fixed #932, sending huge queries to agents occasionally failed (mainly on Windows)

  • fixed #926, snippets did not highlight widlcard matches with morphology enabled

  • fixed #918, crash logger did not report a proper query in dist_threads case

  • fixed #916, watchdog caused (endless) respawns if there was a crash during shutdown

  • fixed #904, attribute names were not forcibly case-folded in some API calls (eg. SetGroupDistinct)

  • fixed #902, query parser did not support stopword_step=0

  • fixed #897, network sockets dangled (open but unattended) while replaying binlog

  • fixed #855, allow_empty option in snippets did not always work correctly

  • fixed #854, indexing with many bigint attributes and docinfo=inline crashed

  • fixed #838, RT MVA insertion did not sort MVA values, caused matching issues

  • fixed #833, duplicate MVA values were not eliminated on update

  • fixed #832, certain (overshort/incorrect) documents crashed indexing MS SQL Unicode columns

  • fixed #829, query parser did not properly handle numerics with blend_chars

  • fixed #814, group-by string attributes in RT indexes dit not always work correctly

  • fixed #812, utf8 stemming produced unexpected stems on words with single-byte chars

  • fixed #808, huge queries crashed logging with query_log_format=sphinxql

  • fixed #806, stray single-star keyword crashed on querying

  • fixed #798, snippets ignored index_exact_words in query_mode

  • fixed #797, RT klist loader had an occasional off-by-one crash

  • fixed #791, preopen_indexes erroneously defaulted to 0 on Windows

  • fixed #790, huge dictionaries (over 4 GB) did not work

  • fixed #786, inplace_enable could occasionally corrupt the indexes

  • fixed #775, doc had a typo (soundex vs metaphone)

  • fixed #772, snippets duplicated blended chars on a SPZ boundary

  • fixed #762, query parser truncated digit-only keywords over 15 digits

  • fixed #736, query parser dit not properly handle blended/special char sequence

  • fixed #726, rotation of an index with a changed attribute count crashed

  • fixed #687, querying multiple indexes with index weights and sort-by expression produced incorrect (unadjusted) weights

  • fixed #585, (unsupported) string ordinals were silently zeroed out with docinfo=inline (instead of failing)

  • fixed #583, certain keywords could occasionally crash multiforms

  • fixed that concurrent MVA updates could crash

  • fixed that query parser did not ignore a pure blended token with a leading modifier

  • fixed that query parser did not properly handle a modifier followed by a dash

  • fixed that substring indexing with dict=crc did not support index_exact_words and zones

  • fixed that in a rare edge case common subtree cache could crash

  • fixed that empty result set returned the full schema (rather than SELECT-ed columns)

  • fixed that SphinxQL did not have a sanity check for (currently unsupported) result set schemas over 250 attributes

  • fixed that updates on regular indexes were not binlogged

  • fixed that multi-query optimization check for expressions did not handle multi-index case

  • fixed that SphinxSE did not build vs MySQL 5.5 release

  • fixed that proximity_bm25 ranker could yield incorrect weight on duplicated keywords

  • fixed that prefix expansion with dict=keyword occasionally crashed

  • fixed that strip_path did not work on RT disk chunks

  • fixed that exclude filters were not properly logged in query_log_format=sphinxql mode

  • fixed that plain string attribute check in indextool --check was broken

  • fixed that Java API did not let specify a connection timeout

  • fixed that ordinal and wordcount attributes could not be fetched via SphinxQL

  • fixed that in a rare edge case OR/ORDER would not match properly

  • fixed that sending (huge) query response did not handle EINTR properly

  • fixed that SPH04 ranker could yield incorrectly high weight in some cases

  • fixed that C API did not let zero out cutoff, max_matches settings

  • fixed that on a persistent connection there were occasionally issues handling signals while doing network reads/waitss

  • fixed that in a rare edge case (field start modifier in a certain complex query) querying crashed

  • fixed that snippets did not support dist_threads with load_files=0

  • fixed that in some extremely rare edge cases tiny parts of an index could end up corrupted with dict=keywords

  • fixed that field/zone conditions were not propagated to expanded keywords with dict=keywords