New features and updates
- The list of SphinxQL reserved keywords is now much, much smaller than
it used to be, and also consistent across different places in the code
and in the docs.
- IN() function now accepts string attributes (#2233). Also, filtering
string attributes by an empty value in WHERE clause now works.
- WHERE on float attributes got improved a bit: we added floatcol<>123.0
syntax, and fixed an issue with using an integer reference value asi
in floatcol=123 or floatcol!=123, see bug #2121.
- searchd --replay-flags switch (useful for binlog replay troubleshooting)
now accepts a new option 'ignore-open-errors' that lets you simply
ignore missing binlog files without deleting binlog meta info.
- Indexer now exits with code 2 in case of rotation failure.
Notable bug fixes
- unified min_prefix_len, min_infix_len behavior between RT and plain indexes
- expressions dependent on aggregation results (eg. as in SELECT MAX(id) m1,
m1+10 m2) were not computed properly in RT indexes
- LENGTH() was 2x off for 64-bit MVA attributes
- OPTIMIZE could occasionally break big RT indexess
- multi-wordforms with clashing prefixes were processed in a wrong order
- disabled and later re-enabled indexes were not picked up again by searchd
on SIGHUP
Full release notes:
http://sphinxsearch.com/docs/latest/rel2210.html
- fixed#2190, incorrect GROUP BY outer JSON object
- fixed#2197, TRUNCATE fails to remove disk chunk files after calling
OPTIMIZE
- fixed#2199, invalid packedfactors JSON output for index with stopwords
- fixed#2203, legacy API SELECT list
- fixed#2201, crash with string comparison at expressions and expression
ranker
- fixed#2196, .NET connector issue (UTC_TIMESTAMP() support)
- fixed#2144, query parser crash vs multiforms with heading numbers
- fixed#2228, removed searchd shutdown behavior on failed connection
- fixed#2220, aliased JSON elements support
- fixed#2122, id64 daemon failed to load RT disk chunk with kill-list
from id32 build
- fixed#2208, ZONESPANLIST() support for RT indexes
- fixed#1979, snippets generation and span length and lcs calculation
in proximity queries
- fixed truncated results (and a potential crash) vs long enough
ZONESPANLIST() result
2.2.8
- It is now possible to add an option to an agent description.
- fixed#2182, incorrect query results with multiple same destination
wordforms
- fixed#2181, improved error message on incorrect filters
- fixed#2178, ZONESPAN operator for queries with more than two words
- fixed#2172, incorrect results with field position fulltext operators
- fixed#2171, some index options do not work for template indexes
- fixed#2170, joined fields indexation with document id equals to 0
- fixed#2110, crash on snippet generation related to blend_chars inside
HTML markup
- fixed WLCCS ranking factor computation
- fixed memory leak on queries with ZONEs
2.2.7
- added #2112, string equal comparison support for IF() function (for JSON
and string attributes)
- added #2153, IN() support for mixed and top-level JSON array
- fixed#2158, crash at RT index after morphology changed to AOT after
index was created
- fixed#2155, stopwords got missed on disk chunk save at RT index
- fixed#2151, agents statistics missed in case of huge amount of agents
- fixed#2139, escape all special characters in JSON result set, according
to RFC 4627
- fixed#2123, no pid file created in x64 release built with vs2012
- fixed#2115, indexer crash on wordforms with multiple destination keywords
- fixed#2050, multi result set doesn't work without libmysqlclient
- fixed#2003, lemmatize_XX_all handling of short and exact words
- fixed#1912, reduce indextool memory usage during a check of a huge index
- fixed off by one errors in filtering of BIGINT attributes
- fixed seamless rotation in prefork mode
- fixed snippets crash with blend chars at the beginning of a string
- fixed#2104, ALL()/ANY()/INDEXOF() support for distributed indexes
- fixed#2102, show agent status misses warnings from agents
- fixed#2100, crash of indexer while loading stopwords with tokenizer plugin
- fixed#2098, arbitrary JSON subkeys and IS NULL for distributed indexes
- fixed#2097, escaping of field-start modifier
- fixed possible memory leak in plugin creation function
Changes:
- added OPTION rand_seed which affects ORDER BY RAND()
- fixed#2042, indextool fails with field mask on 32+ fields
- fixed#2031, wrong encoding with UnixODBC/Oracle source
- fixed#2056, several bugs in RLP tokenizer
- fixed#2054, SHOW THREADS hangs if queries in prefork mode
- fixed#2057, WARNING at indexer on duplicated wordforms
- fixed#2066, snippet generation with weight_order enabled
- fixed exception parsing in queries
- fixed crash in config parser
- fixed MySQL protocol response when daemon maxed out
Changes:
- fixed#1994, parsing of empty JSON arrays
- fixed#1987, handling of index_exact_words with AOT morphology
and infixes
- fixed#1984, teaching HTML parser to handle hex numbers
- fixed#1983, master and agents networking issue
- fixed#1977, escaping of characters doesn't work with exceptions
- fixed#1968, parsing of WEIGHT() function (queries to distributed
indexes affected)
Changes in 2.1.8
- Added JSON attribute support, built-in HA tools, better realtime indexes,
fulltext search and ranking optimizations, more SphinxQL commands, and
wordbreaker.
- fixed#1937, crash at SENTENCE operator
- fixed#1933, quorum operator works incorrectly if it uses a number that is
also an exception
- fixed#1932, daemon index recovery after failed rotation
- fixed#1923, crash at indexer with dict=keywords and xml source
- fixed#1918, crash while hitless words are used within fulltext operators
which require hits
- fixed#1878, daemon doesn't reset regexp_filter after rotation with
seamless_rotate=0
- fixed#1769, crash after unsuccessful INSERT with RT index
- fixed#1682, field-end modifier doesn't work with words containing
blended chars
Changes in 2.1.7
- fixed#1917, field limit propagation outside of group
- fixed#1915, exact form passes to index skipping stopwords filter
- fixed#1905, multiple lemmas at the end of a field
- fixed#1903, indextool check mode for hitless indexes and indexes with
large amount of documents
- fixed#1902, crash on JSON field in the IN() function
- fixed#1884, crash at SNIPPET() with local indexes at distributed index
- fixed#1802, loading large keywords dictionary
- fixed#1786, indextool fails to handle indexes with AOT morphology
- fixed crash of daemon on logging very large messages
- fixed expression engine: division by zero, log and sqrt() functions
Sphinx is an open source full text search server, designed from the ground up
with performance, relevance (aka search quality), and integration simplicity
in mind. Sphinx lets you either batch index and search data stored in an SQL
database, NoSQL storage, or just files quickly and easily - or index and
search data on the fly, working with Sphinx pretty much as with a database
server.