Version 2.0.2-beta, 15 nov 2011
Major new features
- added keywords dictionary (
dict=keywords) support to RT indexes - added MVA, index_exact_words support to RT indexes (#888)
- added MVA64 (a set of BIGINTs) support to both disk and RT indexes (rt_attr_multi_64 directive)
- added an expression-based ranker, and a number of new ranking factors
- added ATTACH INDEX statement that converts a disk index to RT index
- added
WHEREclause support to UPDATE statement - added
bigint,float, andMVAattribute support to UPDATE statement
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
indexerprogress message on merge (#928) - added
--replay-flagsswitch tosearchd - 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_fieldhandling modes) - added manpages for all the programs
- added syslog logging support
- added sentence, paragraph, and zone support in
html_strip_mode=retainmode to snippets - optimized search performance with many
ZONEoperators - 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_threadsdirective (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_matcheslimit 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_threadscase - 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_emptyoption in snippets did not always work correctly - fixed #854, indexing with many
bigintattributes anddocinfo=inlinecrashed - 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_wordsin query_mode - fixed #797, RT klist loader had an occasional off-by-one crash
- fixed #791,
preopen_indexeserroneously defaulted to 0 on Windows - fixed #790, huge dictionaries (over 4 GB) did not work
- fixed #786,
inplace_enablecould 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=crcdid not supportindex_exact_wordsandzones - 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_bm25ranker could yield incorrect weight on duplicated keywords - fixed that prefix expansion with
dict=keywordoccasionally crashed - fixed that
strip_pathdid not work on RT disk chunks - fixed that exclude filters were not properly logged in
query_log_format=sphinxqlmode - fixed that plain string attribute check in
indextool--checkwas 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/ORDERwould not match properly - fixed that sending (huge) query response did not handle
EINTRproperly - fixed that
SPH04ranker could yield incorrectly high weight in some cases - fixed that C API did not let zero out cutoff,
max_matchessettings - 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_threadswithload_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
