diff --git a/doc/indexer.1 b/doc/indexer.1 index ff2431aec..abee4014f 100644 --- a/doc/indexer.1 +++ b/doc/indexer.1 @@ -2,12 +2,12 @@ .\" Title: indexer .\" Author: [see the "Author" section] .\" Generator: DocBook XSL Stylesheets v1.76.1 -.\" Date: 07/21/2016 +.\" Date: 09/08/2016 .\" Manual: Sphinxsearch -.\" Source: 2.3.2-dev +.\" Source: 2.3.2-beta .\" Language: English .\" -.TH "INDEXER" "1" "07/21/2016" "2\&.3\&.2\-dev" "Sphinxsearch" +.TH "INDEXER" "1" "09/08/2016" "2\&.3\&.2\-beta" "Sphinxsearch" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/indextool.1 b/doc/indextool.1 index 35db6318a..d7d6418f9 100644 --- a/doc/indextool.1 +++ b/doc/indextool.1 @@ -2,12 +2,12 @@ .\" Title: indextool .\" Author: [see the "Author" section] .\" Generator: DocBook XSL Stylesheets v1.76.1 -.\" Date: 07/21/2016 +.\" Date: 09/08/2016 .\" Manual: Sphinxsearch -.\" Source: 2.3.2-dev +.\" Source: 2.3.2-beta .\" Language: English .\" -.TH "INDEXTOOL" "1" "07/21/2016" "2\&.3\&.2\-dev" "Sphinxsearch" +.TH "INDEXTOOL" "1" "09/08/2016" "2\&.3\&.2\-beta" "Sphinxsearch" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/manpages.xml b/doc/manpages.xml index ac1c59a84..e9327422c 100644 --- a/doc/manpages.xml +++ b/doc/manpages.xml @@ -12,7 +12,7 @@ Sphinxsearch - 2.3.2-dev + 2.3.2-beta @@ -467,7 +467,7 @@ $ indexer mysmallindex mybigindex Sphinxsearch - 2.3.2-dev + 2.3.2-beta @@ -932,7 +932,7 @@ $ searchd --config /home/myuser/sphinx.conf --status Sphinxsearch - 2.3.2-dev + 2.3.2-beta @@ -1051,7 +1051,7 @@ zoning > zoning Sphinxsearch - 2.3.2-dev + 2.3.2-beta diff --git a/doc/searchd.1 b/doc/searchd.1 index f79242319..4c0adbfff 100644 --- a/doc/searchd.1 +++ b/doc/searchd.1 @@ -2,12 +2,12 @@ .\" Title: searchd .\" Author: [see the "Author" section] .\" Generator: DocBook XSL Stylesheets v1.76.1 -.\" Date: 07/21/2016 +.\" Date: 09/08/2016 .\" Manual: Sphinxsearch -.\" Source: 2.3.2-dev +.\" Source: 2.3.2-beta .\" Language: English .\" -.TH "SEARCHD" "1" "07/21/2016" "2\&.3\&.2\-dev" "Sphinxsearch" +.TH "SEARCHD" "1" "09/08/2016" "2\&.3\&.2\-beta" "Sphinxsearch" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/spelldump.1 b/doc/spelldump.1 index 9a79e3b33..eb23181c0 100644 --- a/doc/spelldump.1 +++ b/doc/spelldump.1 @@ -2,12 +2,12 @@ .\" Title: spelldump .\" Author: [see the "Author" section] .\" Generator: DocBook XSL Stylesheets v1.76.1 -.\" Date: 07/21/2016 +.\" Date: 09/08/2016 .\" Manual: Sphinxsearch -.\" Source: 2.3.2-dev +.\" Source: 2.3.2-beta .\" Language: English .\" -.TH "SPELLDUMP" "1" "07/21/2016" "2\&.3\&.2\-dev" "Sphinxsearch" +.TH "SPELLDUMP" "1" "09/08/2016" "2\&.3\&.2\-beta" "Sphinxsearch" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/doc/sphinx.html b/doc/sphinx.html index 59e514ae1..7f27c1028 100644 --- a/doc/sphinx.html +++ b/doc/sphinx.html @@ -1,7 +1,7 @@ -Sphinx 2.3.2-dev reference manual +Sphinx 2.3.2-beta reference manual -

Sphinx 2.3.2-dev reference manual

+

Sphinx 2.3.2-beta reference manual

Free open-source SQL full-text search engine

@@ -70,9 +70,10 @@
5.9.1. Plain log format
5.9.2. SphinxQL log format
5.10. MySQL protocol support and SphinxQL
-
5.11. Multi-queries
-
5.12. Collations
-
5.13. Query cache
+
5.11. HTTP protocol
+
5.12. Multi-queries
+
5.13. Collations
+
5.14. Query cache
6. Extending Sphinx
6.1. Sphinx UDFs (User Defined Functions)
6.2. Sphinx plugins
@@ -99,37 +100,39 @@
8.13. ROLLBACK syntax
8.14. CALL SNIPPETS syntax
8.15. CALL KEYWORDS syntax
-
8.16. SHOW TABLES syntax
-
8.17. DESCRIBE syntax
-
8.18. CREATE FUNCTION syntax
-
8.19. DROP FUNCTION syntax
-
8.20. SHOW VARIABLES syntax
-
8.21. SHOW COLLATION syntax
-
8.22. SHOW CHARACTER SET syntax
-
8.23. UPDATE syntax
-
8.24. ALTER syntax
-
8.25. ATTACH INDEX syntax
-
8.26. FLUSH RTINDEX syntax
-
8.27. FLUSH RAMCHUNK syntax
-
8.28. FLUSH ATTRIBUTES syntax
-
8.29. TRUNCATE RTINDEX syntax
-
8.30. SHOW AGENT STATUS
-
8.31. SHOW PROFILE syntax
-
8.32. SHOW INDEX STATUS syntax
-
8.33. SHOW INDEX SETTINGS syntax
-
8.34. OPTIMIZE INDEX syntax
-
8.35. SHOW PLAN syntax
-
8.36. SHOW DATABASES syntax
-
8.37. CREATE PLUGIN syntax
-
8.38. DROP PLUGIN syntax
-
8.39. SHOW PLUGINS syntax
-
8.40. RELOAD PLUGINS syntax
-
8.41. SHOW THREADS syntax
-
8.42. RELOAD INDEX syntax
-
8.43. Multi-statement queries
-
8.44. Comment syntax
-
8.45. List of SphinxQL reserved keywords
-
8.46. SphinxQL upgrade notes, version 2.0.1-beta
+
8.16. CALL QSUGGEST syntax
+
8.17. SHOW TABLES syntax
+
8.18. DESCRIBE syntax
+
8.19. CREATE FUNCTION syntax
+
8.20. DROP FUNCTION syntax
+
8.21. SHOW VARIABLES syntax
+
8.22. SHOW COLLATION syntax
+
8.23. SHOW CHARACTER SET syntax
+
8.24. UPDATE syntax
+
8.25. ALTER syntax
+
8.26. ATTACH INDEX syntax
+
8.27. FLUSH RTINDEX syntax
+
8.28. FLUSH RAMCHUNK syntax
+
8.29. FLUSH ATTRIBUTES syntax
+
8.30. FLUSH HOSTNAMES syntax
+
8.31. TRUNCATE RTINDEX syntax
+
8.32. SHOW AGENT STATUS
+
8.33. SHOW PROFILE syntax
+
8.34. SHOW INDEX STATUS syntax
+
8.35. SHOW INDEX SETTINGS syntax
+
8.36. OPTIMIZE INDEX syntax
+
8.37. SHOW PLAN syntax
+
8.38. SHOW DATABASES syntax
+
8.39. CREATE PLUGIN syntax
+
8.40. DROP PLUGIN syntax
+
8.41. SHOW PLUGINS syntax
+
8.42. RELOAD PLUGINS syntax
+
8.43. SHOW THREADS syntax
+
8.44. RELOAD INDEX syntax
+
8.45. Multi-statement queries
+
8.46. Comment syntax
+
8.47. List of SphinxQL reserved keywords
+
8.48. SphinxQL upgrade notes, version 2.0.1-beta
9. API reference
9.1. General API functions
9.1.1. GetLastError
@@ -321,54 +324,56 @@
12.4.4. query_log_format
12.4.5. read_timeout
12.4.6. client_timeout
-
12.4.7. max_children
-
12.4.8. net_workers
-
12.4.9. queue_max_length
-
12.4.10. pid_file
-
12.4.11. seamless_rotate
-
12.4.12. preopen_indexes
-
12.4.13. unlink_old
-
12.4.14. attr_flush_period
-
12.4.15. max_packet_size
-
12.4.16. mva_updates_pool
-
12.4.17. max_filters
-
12.4.18. max_filter_values
-
12.4.19. listen_backlog
-
12.4.20. read_buffer
-
12.4.21. read_unhinted
-
12.4.22. max_batch_queries
-
12.4.23. subtree_docs_cache
-
12.4.24. subtree_hits_cache
-
12.4.25. workers
-
12.4.26. dist_threads
-
12.4.27. binlog_path
-
12.4.28. binlog_flush
-
12.4.29. binlog_max_log_size
-
12.4.30. snippets_file_prefix
-
12.4.31. collation_server
-
12.4.32. collation_libc_locale
-
12.4.33. mysql_version_string
-
12.4.34. rt_flush_period
-
12.4.35. thread_stack
-
12.4.36. expansion_limit
-
12.4.37. watchdog
-
12.4.38. sphinxql_state
-
12.4.39. ha_ping_interval
-
12.4.40. ha_period_karma
-
12.4.41. persistent_connections_limit
-
12.4.42. rt_merge_iops
-
12.4.43. rt_merge_maxiosize
-
12.4.44. predicted_time_costs
-
12.4.45. shutdown_timeout
-
12.4.46. ondisk_attrs_default
-
12.4.47. query_log_min_msec
-
12.4.48. agent_connect_timeout
-
12.4.49. agent_query_timeout
-
12.4.50. agent_retry_count
-
12.4.51. agent_retry_delay
-
12.4.52. qcache_max_bytes
-
12.4.53. qcache_thresh_msec
-
12.4.54. qcache_ttl_sec
+
12.4.7. sphinxql_timeout
+
12.4.8. max_children
+
12.4.9. net_workers
+
12.4.10. queue_max_length
+
12.4.11. pid_file
+
12.4.12. seamless_rotate
+
12.4.13. preopen_indexes
+
12.4.14. unlink_old
+
12.4.15. attr_flush_period
+
12.4.16. max_packet_size
+
12.4.17. mva_updates_pool
+
12.4.18. max_filters
+
12.4.19. max_filter_values
+
12.4.20. listen_backlog
+
12.4.21. read_buffer
+
12.4.22. read_unhinted
+
12.4.23. max_batch_queries
+
12.4.24. subtree_docs_cache
+
12.4.25. subtree_hits_cache
+
12.4.26. workers
+
12.4.27. dist_threads
+
12.4.28. binlog_path
+
12.4.29. binlog_flush
+
12.4.30. binlog_max_log_size
+
12.4.31. snippets_file_prefix
+
12.4.32. collation_server
+
12.4.33. collation_libc_locale
+
12.4.34. mysql_version_string
+
12.4.35. rt_flush_period
+
12.4.36. thread_stack
+
12.4.37. expansion_limit
+
12.4.38. watchdog
+
12.4.39. sphinxql_state
+
12.4.40. ha_ping_interval
+
12.4.41. ha_period_karma
+
12.4.42. persistent_connections_limit
+
12.4.43. rt_merge_iops
+
12.4.44. rt_merge_maxiosize
+
12.4.45. predicted_time_costs
+
12.4.46. shutdown_timeout
+
12.4.47. ondisk_attrs_default
+
12.4.48. query_log_min_msec
+
12.4.49. agent_connect_timeout
+
12.4.50. agent_query_timeout
+
12.4.51. agent_retry_count
+
12.4.52. agent_retry_delay
+
12.4.53. hostname_lookup
+
12.4.54. qcache_max_bytes
+
12.4.55. qcache_thresh_msec
+
12.4.56. qcache_ttl_sec
12.5. Common section configuration options
12.5.1. lemmatizer_base
12.5.2. on_json_attr_error
@@ -380,49 +385,50 @@
12.5.8. rlp_max_batch_docs
12.5.9. plugin_dir
A. Sphinx revision history
-
A.1. Version 2.3.1-beta, 03 mar 2015
-
A.2. Version 2.2.11-release, 19 jul 2016
-
A.3. Version 2.2.10-release, 07 sep 2015
-
A.4. Version 2.2.9-release, 16 apr 2015
-
A.5. Version 2.2.8-release, 09 mar 2015
-
A.6. Version 2.2.7-release, 20 jan 2015
-
A.7. Version 2.2.6-release, 13 nov 2014
-
A.8. Version 2.2.5-release, 06 oct 2014
-
A.9. Version 2.2.4-release, 11 sep 2014
-
A.10. Version 2.2.3-beta, 13 may 2014
-
A.11. Version 2.2.2-beta, 11 feb 2014
-
A.12. Version 2.2.1-beta, 13 nov 2013
-
A.13. Version 2.1.9-release, 03 jul 2014
-
A.14. Version 2.1.8-release, 28 apr 2014
-
A.15. Version 2.1.7-release, 30 mar 2014
-
A.16. Version 2.1.6-release, 24 feb 2014
-
A.17. Version 2.1.5-release, 22 jan 2014
-
A.18. Version 2.1.4-release, 18 dec 2013
-
A.19. Version 2.1.3-release, 12 nov 2013
-
A.20. Version 2.1.2-release, 10 oct 2013
-
A.21. Version 2.1.1-beta, 20 feb 2013
-
A.22. Version 2.0.11-dev, xx xxx xxxx
-
A.23. Version 2.0.10-release, 22 jan 2014
-
A.24. Version 2.0.9-release, 26 aug 2013
-
A.25. Version 2.0.8-release, 26 apr 2013
-
A.26. Version 2.0.7-release, 26 mar 2013
-
A.27. Version 2.0.6-release, 22 oct 2012
-
A.28. Version 2.0.5-release, 28 jul 2012
-
A.29. Version 2.0.4-release, 02 mar 2012
-
A.30. Version 2.0.3-release, 23 dec 2011
-
A.31. Version 2.0.2-beta, 15 nov 2011
-
A.32. Version 2.0.1-beta, 22 apr 2011
-
A.33. Version 1.10-beta, 19 jul 2010
-
A.34. Version 0.9.9-release, 02 dec 2009
-
A.35. Version 0.9.9-rc2, 08 apr 2009
-
A.36. Version 0.9.9-rc1, 17 nov 2008
-
A.37. Version 0.9.8.1, 30 oct 2008
-
A.38. Version 0.9.8, 14 jul 2008
-
A.39. Version 0.9.7, 02 apr 2007
-
A.40. Version 0.9.7-rc2, 15 dec 2006
-
A.41. Version 0.9.7-rc1, 26 oct 2006
-
A.42. Version 0.9.6, 24 jul 2006
-
A.43. Version 0.9.6-rc1, 26 jun 2006
+
A.1. Version 2.3.2-beta, 09 sep 2016
+
A.2. Version 2.3.1-beta, 03 mar 2015
+
A.3. Version 2.2.11-release, 19 jul 2016
+
A.4. Version 2.2.10-release, 07 sep 2015
+
A.5. Version 2.2.9-release, 16 apr 2015
+
A.6. Version 2.2.8-release, 09 mar 2015
+
A.7. Version 2.2.7-release, 20 jan 2015
+
A.8. Version 2.2.6-release, 13 nov 2014
+
A.9. Version 2.2.5-release, 06 oct 2014
+
A.10. Version 2.2.4-release, 11 sep 2014
+
A.11. Version 2.2.3-beta, 13 may 2014
+
A.12. Version 2.2.2-beta, 11 feb 2014
+
A.13. Version 2.2.1-beta, 13 nov 2013
+
A.14. Version 2.1.9-release, 03 jul 2014
+
A.15. Version 2.1.8-release, 28 apr 2014
+
A.16. Version 2.1.7-release, 30 mar 2014
+
A.17. Version 2.1.6-release, 24 feb 2014
+
A.18. Version 2.1.5-release, 22 jan 2014
+
A.19. Version 2.1.4-release, 18 dec 2013
+
A.20. Version 2.1.3-release, 12 nov 2013
+
A.21. Version 2.1.2-release, 10 oct 2013
+
A.22. Version 2.1.1-beta, 20 feb 2013
+
A.23. Version 2.0.11-dev, xx xxx xxxx
+
A.24. Version 2.0.10-release, 22 jan 2014
+
A.25. Version 2.0.9-release, 26 aug 2013
+
A.26. Version 2.0.8-release, 26 apr 2013
+
A.27. Version 2.0.7-release, 26 mar 2013
+
A.28. Version 2.0.6-release, 22 oct 2012
+
A.29. Version 2.0.5-release, 28 jul 2012
+
A.30. Version 2.0.4-release, 02 mar 2012
+
A.31. Version 2.0.3-release, 23 dec 2011
+
A.32. Version 2.0.2-beta, 15 nov 2011
+
A.33. Version 2.0.1-beta, 22 apr 2011
+
A.34. Version 1.10-beta, 19 jul 2010
+
A.35. Version 0.9.9-release, 02 dec 2009
+
A.36. Version 0.9.9-rc2, 08 apr 2009
+
A.37. Version 0.9.9-rc1, 17 nov 2008
+
A.38. Version 0.9.8.1, 30 oct 2008
+
A.39. Version 0.9.8, 14 jul 2008
+
A.40. Version 0.9.7, 02 apr 2007
+
A.41. Version 0.9.7-rc2, 15 dec 2006
+
A.42. Version 0.9.7-rc1, 26 oct 2006
+
A.43. Version 0.9.6, 24 jul 2006
+
A.44. Version 0.9.6-rc1, 26 jun 2006

List of Tables

5.1.
@@ -551,12 +557,12 @@ commercial licensing possibilities.

1.5. Credits

-

Author

+

Author

Sphinx initial author (and a benevolent dictator ever since):

-

Team

+

Team

Past and present employees of Sphinx Technologies Inc who should be noted on their work on Sphinx (in alphabetical order):

  • Adam Rice

  • @@ -576,7 +582,7 @@

    Author

  • Yuri Schapov

-

Contributors

People who contributed to Sphinx and their contributions (in no particular order): +

Contributors

People who contributed to Sphinx and their contributions (in no particular order):

  • Robert "coredev" Bengtsson (Sweden), initial version of PostgreSQL data source

  • Len Kranendonk, Perl API

  • Dmytro Shteflyuk, Ruby API

  • @@ -674,9 +680,9 @@

    Author

    1. Extract everything from the distribution tarball (haven't you already?) and go to the sphinx subdirectory. (We are using - version 2.3.2-dev here for the sake of example only; be sure to change this + version 2.3.2-beta here for the sake of example only; be sure to change this to a specific version you're using.) -

      $ tar xzvf sphinx-2.3.2-dev.tar.gz
      +

      $ tar xzvf sphinx-2.3.2-beta.tar.gz
      $ cd sphinx

    2. Run the configuration program:

      $ ./configure

      @@ -727,7 +733,7 @@

      Author

2.3. Installing Sphinx packages on Debian and Ubuntu

There are two ways of getting Sphinx for Ubuntu: regular deb packages and the Launchpad PPA repository.

Deb packages:

  1. Sphinx requires a few libraries to be installed on Debian/Ubuntu. Use apt-get to download and install these dependencies:

    $ sudo apt-get install mysql-client unixodbc libpq5
  2. -
  3. Now you can install Sphinx:

    $ sudo dpkg -i sphinxsearch_2.3.2-dev-0ubuntu11~trusty_amd64.deb
  4. +
  5. Now you can install Sphinx:

    $ sudo dpkg -i sphinxsearch_2.3.2-beta-1~trusty_amd64.deb

PPA repository (Ubuntu only).

Installing Sphinx is much easier from Sphinxsearch PPA repository, because you will get all dependencies and can also update Sphinx to the latest version with the same command.

  1. First, add Sphinxsearch repository and update the list of packages:

    $ sudo add-apt-repository ppa:builds/sphinxsearch-rel23

    $ sudo apt-get update

  2. Install/update sphinxsearch package:

    $ sudo apt-get install sphinxsearch

  3. @@ -743,9 +749,9 @@

    Author

    Installing Sphinx on a Windows server is often easier than installing on a Linux environment; unless you are preparing code patches, you can use the pre-compiled binary files from the Downloads area on the website.

    1. Extract everything from the .zip file you have downloaded - - sphinx-2.3.2-dev-win32.zip, - or sphinx-2.3.2-dev-win32-pgsql.zip if you need PostgresSQL support as well. - (We are using version 2.3.2-dev here for the sake of example only; + sphinx-2.3.2-beta-win32.zip, + or sphinx-2.3.2-beta-win32-pgsql.zip if you need PostgresSQL support as well. + (We are using version 2.3.2-beta here for the sake of example only; be sure to change this to a specific version you're using.) You can use Windows Explorer in Windows XP and up to extract the files, or a freeware package like 7Zip to open the archive.

      For the remainder of this guide, we will assume that the folders are unzipped into C:\Sphinx, @@ -810,7 +816,7 @@

      Author

      is obsolete and will be removed in the near future.

    2. docinfo=inline is deprecated. You can now use ondisk_attrs or -ondisk_attrs_default instead.

    3. +ondisk_attrs_default instead.

    4. workers=threads is a new default for all OS now. We're gonna get rid of other modes in future.

    5. mem_limit=128M is a new default.

    6. @@ -854,7 +860,7 @@

      Author

    7. Removed CLI search which confused people instead of helping them and sql_query_info.

    8. Deprecated SetMatchMode() API call.

    9. -
    10. Changed default thread_stack +

    11. Changed default thread_stack value to 1M.

    12. Deprecated SetOverride() API call.

    @@ -1020,7 +1026,7 @@

    Author

    (excluding title and content, that are full-text fields) as attributes, indexing them, and then using API calls to setup filtering, sorting, and grouping. Here as an example. -

    Example sphinx.conf part:

    +

    Example sphinx.conf part:

     ...
     sql_query = SELECT id, title, content, \
         author_id, forum_id, post_date FROM my_forum_posts
    @@ -1028,7 +1034,7 @@ 

    Author

    sql_attr_uint = forum_id sql_attr_timestamp = post_date ... -

    Example application code (in PHP):

    +

    Example application code (in PHP):

     // only search posts by author whose ID is 123
     $cl->SetFilter ( "author_id", array ( 123 ) );
     
    @@ -1264,7 +1270,7 @@ 

    Author

    Obviously, that's not much of a difference for 2000-row table, but when it comes to indexing 10-million-row MyISAM table, ranged queries might be of some help. -

    sql_query_post vs. sql_query_post_index

    +

    sql_query_post vs. sql_query_post_index

    The difference between post-query and post-index query is in that post-query is run immediately when Sphinx received all the documents, but further indexing may still fail for some other reason. On the contrary, @@ -1785,7 +1791,7 @@

    Author

    2.0.3-release, binlog_max_log_size defaults to 0.)

    There are 3 different binlog flushing strategies, controlled by -binlog_flush directive +binlog_flush directive which takes the values of 0, 1, or 2. 0 means to flush the log to OS and sync it to disk every second; 1 means flush and sync every transaction; and 2 (the default mode) means flush every @@ -1817,7 +1823,7 @@

    Author

    is not very good for disk use and crash recovery time. Starting with 2.0.1-beta you can configure searchd to perform a periodic RAM chunk flush to fix that problem -using a rt_flush_period +using a rt_flush_period directive. With periodic flushes enabled, searchd will keep a separate thread, checking whether RT indexes RAM chunks need to be written back to disk. Once that happens, @@ -1859,9 +1865,10 @@

    Author

    5.9.1. Plain log format
    5.9.2. SphinxQL log format
    5.10. MySQL protocol support and SphinxQL
    -
    5.11. Multi-queries
    -
    5.12. Collations
    -
    5.13. Query cache
    +
    5.11. HTTP protocol
    +
    5.12. Multi-queries
    +
    5.13. Collations
    +
    5.14. Query cache

5.1. Matching modes

@@ -2283,7 +2290,7 @@

Author

// SphinxQL mysql_query ( "SELECT ... OPTION ranker=sph04" );

-

Legacy matching modes rankers

+

Legacy matching modes rankers

Legacy matching modes automatically select a ranker as follows:

  • SPH_MATCH_ALL uses SPH_RANK_PROXIMITY ranker;

  • SPH_MATCH_ANY uses SPH_RANK_MATCHANY ranker;

  • @@ -2633,6 +2640,7 @@

    Author

  • GEODIST()

  • GEOPOLY2D()

  • GREATEST()

  • +
  • HOUR()

  • IDIV()

  • IF()

  • IN()

  • @@ -2646,13 +2654,16 @@

    Author

  • LOG2()

  • MAX()

  • MIN()

  • +
  • MINUTE()

  • MIN_TOP_SORTVAL()

  • MIN_TOP_WEIGHT()

  • MONTH()

  • NOW()

  • POLY2D()

  • POW()

  • +
  • RAND()

  • REMAP()

  • +
  • SECOND()

  • SIN()

  • SINT()

  • SQRT()

  • @@ -2749,7 +2760,10 @@

    Author

    Returns the current timestamp as an INTEGER. Introduced in version 0.9.9-rc1.

    YEAR()

    Returns the integer year (in 1969..2038 range) from a timestamp argument, according to the current timezone. Introduced in version 2.0.1-beta.

    YEARMONTH()

    Returns the integer year and month code (in 196912..203801 range) from a timestamp argument, according to the current timezone. Introduced in version 2.0.1-beta.

    YEARMONTHDAY()
    -

    Returns the integer year, month, and date code (in 19691231..20380119 range) from a timestamp argument, according to the current timezone. Introduced in version 2.0.1-beta.

+

Returns the integer year, month, and date code (in 19691231..20380119 range) from a timestamp argument, according to the current timezone. Introduced in version 2.0.1-beta.

SECOND()
+

Returns the integer second (in 0..59 range) from a timestamp argument, according to the current timezone. Introduced in version 2.3.2-beta.

MINUTE()
+

Returns the integer minute (in 0..59 range) from a timestamp argument, according to the current timezone. Introduced in version 2.3.2-beta.

HOUR()
+

Returns the integer hour (in 0..23 range) from a timestamp argument, according to the current timezone. Introduced in version 2.3.2-beta.

5.5.4. Type conversion functions

BIGINT()

@@ -3030,6 +3044,9 @@

Author

SELECT REMAP(userid, karmapoints, (1, 67), (999, 0)) FROM users; SELECT REMAP(id%10, salary, (0), (0.0)) FROM employes;

+

rand()
+

+RAND(seed) function was added in 2.3.2-beta. Returns a random float between 0..1. Optional, an integer seed value can be specified.

5.6. Sorting modes

@@ -3051,7 +3068,7 @@

Author

SPH_SORT_RELEVANCE is equivalent to sorting by "@weight DESC, @id ASC" in extended sorting mode, SPH_SORT_ATTR_ASC is equivalent to "attribute ASC, @weight DESC, @id ASC", and SPH_SORT_ATTR_DESC to "attribute DESC, @weight DESC, @id ASC" respectively. -

SPH_SORT_TIME_SEGMENTS mode

+

SPH_SORT_TIME_SEGMENTS mode

In SPH_SORT_TIME_SEGMENTS mode, attribute values are split into so-called time segments, and then sorted by time segment first, and by relevance second.

@@ -3387,7 +3404,28 @@

Author

modifying RT indexes with INSERT, REPLACE, and DELETE, and much more. Full SphinxQL reference is available in Chapter 8, SphinxQL reference.

-

5.11. Multi-queries

+

5.11. HTTP protocol

+

+Starting with 2.3.2-beta, Sphinx search daemon supports HTTP protocol and can be accessed with regular HTTP clients. +Supported endpoints: +

  • / - default response, returns a simple HTML page

  • +
  • /search - allows a simple full-text search, parameters can be : index (index or list of indexes), match (equivalent of MATCH()), select (as SELECT clause), group (grouping attribute), +order (SQL-like sorting), limit (equivalent of LIMIT 0,N) +

    curl -X POST 'http://sphinxsearch:9308/search/' 
    +-d 'index=forum&match=@subject php sphinx&select=id,subject,author_id&limit=5'
    +

    +

  • +
  • / sql - allows running a SELECT SphinxQL, set as query parameter +

    + curl -X POST 'http://sphinxsearch:9308/sql/' 
    +-d 'query=select id,subject,author_id  from forum where match('@subject php sphinx')  group by author_id order by id desc limit 0,5'
    +

    +

  • +
+

+The result for /sql/ and /search/ endpoints is an array of attrs,matches and meta, same as for SphinxAPI, encoded as a JSON object. +

+

5.12. Multi-queries

Multi-queries, or query batches, let you send multiple queries to Sphinx in one go (more formally, one network request). @@ -3396,7 +3434,7 @@

Author

AddQuery() and RunQueries(). You can also run multiple queries with SphinxQL, see -Section 8.43, “Multi-statement queries”. +Section 8.45, “Multi-statement queries”. (In fact, regular Query() call is internally implemented as a single AddQuery() call immediately followed by RunQueries() call.) AddQuery() captures the current state @@ -3404,7 +3442,7 @@

Author

the query. RunQueries() actually sends all the memorized queries, and returns multiple result sets. There are no restrictions on the queries at all, except just a sanity check on a number of queries -in a single batch (see Section 12.4.22, “max_batch_queries”). +in a single batch (see Section 12.4.23, “max_batch_queries”).

Why use multi-queries? Generally, it all boils down to performance. First, by sending requests to searchd in a batch @@ -3463,8 +3501,8 @@

Author

There's a common two-word part ("barack obama") that can be computed only once, then cached and shared across the queries. And common subtree optimization does just that. Per-query cache size is strictly controlled -by subtree_docs_cache -and subtree_hits_cache +by subtree_docs_cache +and subtree_hits_cache directives (so that caching all sixteen gazillions of documents that match "i am" does not exhaust the RAM and instantly kill your server). @@ -3507,7 +3545,7 @@

Author

even more improvements, and that's from production instances, not just synthetic tests.

-

5.12. Collations

+

5.13. Collations

Introduced to Sphinx in version 2.0.1-beta to supplement string sorting, collations essentially affect the string attribute comparisons. They specify @@ -3552,7 +3590,7 @@

Author

case-insensitive (_ci) and case-sensitive (_cs) comparisons respectively. By default they will use C locale, effectively resorting to bytewise comparisons. To change that, you need to specify a different available -locale using collation_libc_locale +locale using collation_libc_locale directive. The list of locales available on your system can usually be obtained with the locale command:

@@ -3594,7 +3632,7 @@ 

Author

SET collation_connection statement. All subsequent SphinxQL queries will use this collation. SphinxAPI and SphinxSE queries will use the server default collation, as specified in -collation_server configuration +collation_server configuration directive. Sphinx currently defaults to libc_ci collation.

Collations should affect all string attribute comparisons, including @@ -3602,20 +3640,20 @@

Author

can be returned depending on the collation chosen. Note that collations don't affect full-text searching, for that use charset_table.

-

5.13. Query cache

+

5.14. Query cache

Query cache, added in 2.3.1-beta, stores a compressed result set in memory, and then reuses it for subsequent queries where possible. You can configure it using the following directives: -

Example: @@ -5045,7 +5091,7 @@

Author

  • FACET clause. This Sphinx specific extension enables faceted search with subtree optimization. -It is capable of returning multiple result sets with a single SQL statement, without the need for complicated multi-queries. +It is capable of returning multiple result sets with a single SQL statement, without the need for complicated multi-queries. FACET clauses should be written at the very end of SELECT statements with spaces between them.

     FACET {expr_list} [BY {expr_list}] [ORDER BY {expr | FACET()} {ASC | DESC}] [LIMIT [offset,] count]
    @@ -5138,7 +5184,7 @@ 

    Author

    SHOW META shows additional meta-information about the latest query such as query time and keyword statistics. IO and CPU counters will only be available if searchd was started with --iostats and --cpustats switches respectively. Additional predicted_time, dist_predicted_time, [{local|dist}]_fetched_[{docs|hits|skips}] counters will only be available if searchd was configured with -predicted time costs and query had predicted_time in OPTION clause. +predicted time costs and query had predicted_time in OPTION clause.

     mysql> SELECT * FROM test1 WHERE MATCH('test|one|two');
     +------+--------+----------+------------+
    @@ -5437,7 +5483,7 @@ 

    Author

    COLLATION_CONNECTION = collation_name

    Selects the collation to be used for ORDER BY or GROUP BY on string -values in the subsequent queries. Refer to Section 5.12, “Collations” +values in the subsequent queries. Refer to Section 5.13, “Collations” for a list of known collation names. Introduced in version 2.0.1-beta.

    CHARACTER_SET_RESULTS = charset_name
    @@ -5461,7 +5507,7 @@

    Author

    PROFILING = {0 | 1}

    Enables query profiling in the current session. Defaults to 0. -See also Section 8.31, “SHOW PROFILE syntax”. +See also Section 8.33, “SHOW PROFILE syntax”. Introduced in version 2.1.1-beta.

  • @@ -5477,15 +5523,15 @@

    Author

    Introduced in version 2.0.1-beta.

    QCACHE_MAX_BYTES = <value>

    -Changes the query cache RAM use limit to a given value. +Changes the query cache RAM use limit to a given value. Added in 2.3.1-beta.

    QCACHE_THRESH_MSEC = <value>

    -Changes the query cache minimum wall time threshold to a given value. +Changes the query cache minimum wall time threshold to a given value. Added in 2.3.1-beta.

    QCACHE_TTL_SEC = <value>

    -Changes the query cache TTL for a cached result to a given value. +Changes the query cache TTL for a cached result to a given value. Added in 2.3.1-beta.

    @@ -5574,7 +5620,7 @@

    Author

    8.15. CALL KEYWORDS syntax

    -CALL KEYWORDS(text, index [, 1])
    +CALL KEYWORDS(text, index [, options])
     

    CALL KEYWORDS statement, introduced in version 1.10-beta, splits text into particular keywords. It returns tokenized and normalized forms @@ -5584,10 +5630,69 @@

    Author

    text is the text to break down to keywords. index is the name of the index from which to take the text -processing settings. hits is an optional boolean parameter +processing settings. +options prior 2.3.2-beta, is an optional boolean parameter that specifies whether to return document and hit occurrence statistics. +options starting with 2.3.2-beta, can also accept parameters for configuring folding depending on tokenization settings: +

    • stats - show statistics of keywords, default is 0

    • +
    • fold_wildcards - fold wildcards, default is 1

    • +
    • fold_lemmas - fold morphological lemmas, default is 0

    • +
    • fold_blended - fold blended words, default is 0

    • +
    • expansion_limit - override expansion_limit defined in configuration, default is 0 (use value from configuration)

    • +
    +

    +

    +call keywords(
    +    'que*',
    +    'myindex',
    +    1 as fold_wildcards,
    +    1 as fold_lemmas,
    +    1 as fold_blended,
    +    1 as expansion_limit,
    +    1 as stats);
    +

    +Default values to match previous CALL KEYWORDS output are: +

    +call keywords(
    +    'que*',
    +    'myindex',
    +    1 as fold_wildcards,
    +    0 as fold_lemmas,
    +    0 as fold_blended,
    +    0 as expansion_limit,
    +    0 as stats);
    +

    -

    8.16. SHOW TABLES syntax

    +

    8.16. CALL QSUGGEST syntax

    +
    +CALL QSUGGEST(word, index [,options])
    +
    +CALL QSUGGEST statement, introduced in version 2.3.2-beta, enumerates for a giving word all suggestions from the dictionary. This statement works only on indexes with infixing enabled and dict=keywords. +It returns the suggested keywords, Levenshtein distance between the suggested and original keyword and the docs statistic of the suggested keyword. +Several options are supported for customization: +
    • limit - returned N top matches, default is 5

    • +
    • max_edits - keep only dictionary words which Levenshtein distance is less or equal, default is 4

    • +
    • result_stats - provide Levenshtein distance and document count of the found words, default is 1 (enabled)

    • +
    • delta_len - keep only dictionary words whose length difference is less, default is 3

    • +
    • max_matches - number of matches to keep, default is 25

    • +
    • reject - defaults to 4; rejected words are matches that are not better than those already in the match queue. They are put in a rejected queue that gets reset in case one actually can go in the match queue. +This parameter defines the size of the rejected queue (as reject*max(max_matched,limit)). If the rejected queue is filled, the engine stops looking for potential matches.

    • +
    • result_line - alternate mode to display the data by returning all suggests, distances and docs each per one row, default is 0

    • +
    +
    +mysql> CALL QSUGGEST('automaticlly ','forum', 5 as limit, 4 as max_edits,1 as result_stats,3 as delta_len,0 as result_line,25 as max_matches,4 as reject );
    ++---------------+----------+------+
    +| suggest       | distance | docs |
    ++---------------+----------+------+
    +| automatically | 1        | 282  |
    +| automaticly   | 1        | 6    |
    +| automaticaly  | 1        | 3    |
    +| automagically | 2        | 14   |
    +| automtically  | 2        | 1    |
    ++---------------+----------+------+
    +5 rows in set (0.00 sec)
    +
    +

    8.17. SHOW TABLES syntax

     SHOW TABLES [ LIKE pattern ]
     

    @@ -5620,7 +5725,7 @@

    Author

    +-------+-------------+ 1 row in set (0.00 sec)

    -

    8.17. DESCRIBE syntax

    +

    8.18. DESCRIBE syntax

     {DESC | DESCRIBE} index [ LIKE pattern ]
     

    @@ -5652,7 +5757,7 @@

    Author

    Starting from version 2.1.1-beta, an optional LIKE clause is supported. Refer to Section 8.3, “SHOW META syntax” for its syntax details.

    -

    8.18. CREATE FUNCTION syntax

    +

    8.19. CREATE FUNCTION syntax

     CREATE FUNCTION udf_name
         RETURNS {INT | INTEGER | BIGINT | FLOAT | STRING}
    @@ -5679,7 +5784,7 @@ 

    Author

    | 4 | 1 | 7,40 | 23.500000 | +------+--------+---------+-----------+

    -

    8.19. DROP FUNCTION syntax

    +

    8.20. DROP FUNCTION syntax

     DROP FUNCTION udf_name
     

    @@ -5693,7 +5798,7 @@

    Author

    mysql> DROP FUNCTION avgmva; Query OK, 0 rows affected (0.00 sec)

    -

    8.20. SHOW VARIABLES syntax

    +

    8.21. SHOW VARIABLES syntax

     SHOW [{GLOBAL | SESSION}] VARIABLES [WHERE variable_name='xxx']
     

    SHOW VARIABLES statement was added in version 2.0.1-beta @@ -5723,7 +5828,7 @@

    Author

    to help certain connectors.

    -

    8.21. SHOW COLLATION syntax

    +

    8.22. SHOW COLLATION syntax

     SHOW COLLATION
     

    @@ -5735,7 +5840,7 @@

    Author

    mysql> SHOW COLLATION; Query OK, 0 rows affected (0.00 sec)

    -

    8.22. SHOW CHARACTER SET syntax

    +

    8.23. SHOW CHARACTER SET syntax

     SHOW CHARACTER SET
     

    @@ -5753,7 +5858,7 @@

    Author

    +---------+---------------+-------------------+--------+ 1 row in set (0.00 sec)

    -

    8.23. UPDATE syntax

    +

    8.24. UPDATE syntax

     UPDATE index SET col1 = newval1 [, ...] WHERE where_condition [OPTION opt_name = opt_value [, ...]]
     

    @@ -5807,7 +5912,7 @@

    Author

    -

    8.24. ALTER syntax

    +

    8.25. ALTER syntax

     ALTER TABLE index {ADD|DROP} COLUMN column_name [{INTEGER|INT|BIGINT|FLOAT|BOOL|MULTI|MULTI64|JSON|STRING}]
     

    @@ -5876,7 +5981,7 @@

    Author

    4 rows in set (0.00 sec)

    -

    8.25. ATTACH INDEX syntax

    +

    8.26. ATTACH INDEX syntax

     ATTACH INDEX diskindex TO RTINDEX rtindex
     

    @@ -5902,7 +6007,7 @@

    Author

    making ATTACH INDEX a one-time conversion operation only. Those restrictions may be lifted in future releases, as we add the needed functionality to the RT indexes. The complete list is as follows. -

    • Target RT index needs to be empty. (See Section 8.29, “TRUNCATE RTINDEX syntax”)

    • +

      • Target RT index needs to be empty. (See Section 8.31, “TRUNCATE RTINDEX syntax”)

      • Source disk index needs to have index_sp=0, boundary_step=0, stopword_step=1.

      • Source disk index needs to have an empty index_zones setting.

      @@ -5961,7 +6066,7 @@

      Author

      mysql> SELECT * FROM disk WHERE MATCH('test'); ERROR 1064 (42000): no enabled local indexes to search

    -

    8.26. FLUSH RTINDEX syntax

    +

    8.27. FLUSH RTINDEX syntax

     FLUSH RTINDEX rtindex
     

    @@ -5974,7 +6079,7 @@

    Author

    write would need to be replayed. Those writes normally happen either on a clean shutdown, or periodically with a (big enough!) interval between writes specified in -rt_flush_period directive. +rt_flush_period directive. So such a backup made at an arbitrary point in time just might end up with way too much binary log data to replay.

    @@ -5986,7 +6091,7 @@

    Author

    mysql> FLUSH RTINDEX rt; Query OK, 0 rows affected (0.05 sec)

    -

    8.27. FLUSH RAMCHUNK syntax

    +

    8.28. FLUSH RAMCHUNK syntax

     FLUSH RAMCHUNK rtindex
     

    @@ -6004,13 +6109,13 @@

    Author

    Most likely, you want to use FLUSH RTINDEX instead. We suggest that you abstain from using just this statement unless you're absolutely sure what you're doing. As the right way is to issue FLUSH RAMCHUNK with -following OPTIMIZE command. +following OPTIMIZE command. Such combo allows to keep RT index fragmentation on minimum.

     mysql> FLUSH RAMCHUNK rt;
     Query OK, 0 rows affected (0.05 sec)
     
    -

    8.28. FLUSH ATTRIBUTES syntax

    +

    8.29. FLUSH ATTRIBUTES syntax

     FLUSH ATTRIBUTES
     

    @@ -6030,7 +6135,16 @@

    Author

    +------+ 1 row in set (0.19 sec)

    -

    8.29. TRUNCATE RTINDEX syntax

    +

    8.30. FLUSH HOSTNAMES syntax

    +
    +FLUSH HOSTNAMES
    +

    +Added in 2.3.2-beta. Renew IPs associates to agent host names. To always query the DNS for getting the host name IP, see hostname_lookup directive. +

    +mysql> FLUSH HOSTNAMES;
    +Query OK, 5 rows affected (0.01 sec)
    +
    +

    8.31. TRUNCATE RTINDEX syntax

     TRUNCATE RTINDEX rtindex
     

    @@ -6043,9 +6157,9 @@

    Author

    You may want to use this if you are using RT indices as "delta index" files; when you build the main index, you need to wipe the delta index, and thus TRUNCATE RTINDEX. -You also need to use this command before attaching an index; see Section 8.25, “ATTACH INDEX syntax”. +You also need to use this command before attaching an index; see Section 8.26, “ATTACH INDEX syntax”.

    -

    8.30. SHOW AGENT STATUS

    +

    8.32. SHOW AGENT STATUS

     SHOW AGENT ['agent'|'index'|index] STATUS [ LIKE pattern ]
     

    @@ -6053,7 +6167,7 @@

    Author

    agents or distributed index. It includes the values like the age of the last request, last answer, the number of different kind of errors and successes, etc. The statistic is shown for every agent for last 1, 5 -and 15 intervals, each of them of ha_period_karma seconds. +and 15 intervals, each of them of ha_period_karma seconds. The command exists only in sphinxql.

     mysql> SHOW AGENT STATUS;
    @@ -6174,7 +6288,7 @@ 

    Author

    +--------------------------------------+--------------------------------+ 13 rows in set (0.00 sec)

    -

    8.31. SHOW PROFILE syntax

    +

    8.33. SHOW PROFILE syntax

     SHOW PROFILE
     

    @@ -6271,7 +6385,7 @@

    Author

    -

    8.32. SHOW INDEX STATUS syntax

    +

    8.34. SHOW INDEX STATUS syntax

     SHOW INDEX index_name STATUS
     

    @@ -6285,6 +6399,8 @@

    Author

  • ram_bytes, total size (in bytes) of the RAM-resident index portion.
  • +
  • queries time statistics of last 1 minute, 5 minutes, 15 minutes and total since daemon start;data is encapsulated as a JSON object which includes number of queries, min,max,avg,95 and 99 percentile values; introduced in 2.3.2-beta
  • +
  • queries found rows statistics of last 1 minute, 5 minutes, 15 minutes and total since daemon start;data is encapsulated as a JSON object which includes number of queries, min,max,avg,95 and 99 percentile values; introduced in 2.3.2-beta
  • @@ -6304,7 +6420,7 @@ 

    Author

    +--------------------+-------------+ 8 rows in set (0.00 sec)

    -

    8.33. SHOW INDEX SETTINGS syntax

    +

    8.35. SHOW INDEX SETTINGS syntax

     SHOW INDEX index_name[.N | CHUNK N] SETTINGS
     

    @@ -6315,7 +6431,7 @@

    Author

    a particular chunk number for the RT indexes.

    -

    8.34. OPTIMIZE INDEX syntax

    +

    8.36. OPTIMIZE INDEX syntax

     OPTIMIZE INDEX index_name
     

    @@ -6336,8 +6452,8 @@

    Author

    to the SHOW INDEX STATUS and SHOW STATUS statements respectively). The optimization thread can be IO-throttled, you can control the maximum number of IOs per second and the maximum IO size -with rt_merge_iops -and rt_merge_maxiosize +with rt_merge_iops +and rt_merge_maxiosize directives respectively. The optimization jobs queue is lost on daemon crash.

    @@ -6354,7 +6470,7 @@

    Author

    mysql> OPTIMIZE INDEX rt; Query OK, 0 rows affected (0.00 sec)

    -

    8.35. SHOW PLAN syntax

    +

    8.37. SHOW PLAN syntax

     SHOW PLAN
     

    @@ -6396,14 +6512,14 @@

    Author

    1 row in set (0.00 sec)

    -

    8.36. SHOW DATABASES syntax

    +

    8.38. SHOW DATABASES syntax

     SHOW DATABASES
     

    Added in 2.2.1-beta. This is a dummy statement to support MySQL Workbench and other clients that require it. Currently, it does absolutely nothing.

    -

    8.37. CREATE PLUGIN syntax

    +

    8.39. CREATE PLUGIN syntax

     CREATE PLUGIN plugin_name TYPE 'plugin_type' SONAME 'plugin_library'
     

    @@ -6420,7 +6536,7 @@

    Author

    mysql> CREATE PLUGIN myranker TYPE 'ranker' SONAME 'myplugins.so'; Query OK, 0 rows affected (0.00 sec)

    -

    8.38. DROP PLUGIN syntax

    +

    8.40. DROP PLUGIN syntax

     DROP PLUGIN plugin_name TYPE 'plugin_type'
     

    @@ -6435,7 +6551,7 @@

    Author

    mysql> DROP PLUGIN myranker TYPE 'ranker'; Query OK, 0 rows affected (0.00 sec)

    -

    8.39. SHOW PLUGINS syntax

    +

    8.41. SHOW PLUGINS syntax

     SHOW PLUGINS
     

    @@ -6455,7 +6571,7 @@

    Author

    +------+----------+----------------+-------+-------+ 1 row in set (0.00 sec)

    -

    8.40. RELOAD PLUGINS syntax

    +

    8.42. RELOAD PLUGINS syntax

     RELOAD PLUGINS FROM SONAME 'plugin_library'
     

    @@ -6485,7 +6601,7 @@

    Author

    mysql> RELOAD PLUGINS FROM SONAME 'udfexample.dll'; Query OK, 0 rows affected (0.00 sec)

    -

    8.41. SHOW THREADS syntax

    +

    8.43. SHOW THREADS syntax

     SHOW THREADS [ OPTION columns=width ]
     

    @@ -6517,7 +6633,7 @@

    Author

    +------+----------+-------+----------+----------------------------------------------------+ 3 row in set (0.00 sec)

    -

    8.42. RELOAD INDEX syntax

    +

    8.44. RELOAD INDEX syntax

     RELOAD INDEX idx [ FROM '/path/to/index_files' ]
     

    @@ -6534,11 +6650,11 @@

    Author

    mysql> RELOAD INDEX plain_index; mysql> RELOAD INDEX plain_index FROM '/home/mighty/new_index_files';

    -

    8.43. Multi-statement queries

    +

    8.45. Multi-statement queries

    Starting version 2.0.1-beta, SphinxQL supports multi-statement queries, or batches. Possible inter-statement optimizations described -in Section 5.11, “Multi-queries” do apply to SphinxQL just as well. +in Section 5.12, “Multi-queries” do apply to SphinxQL just as well. The batched queries should be separated by a semicolon. Your MySQL client library needs to support MySQL multi-query mechanism and multiple result set. For instance, mysqli interface in PHP @@ -6596,7 +6712,7 @@

    Author

    returned should match those that would be returned if the batched queries were sent one by one.

    -

    8.44. Comment syntax

    +

    8.46. Comment syntax

    Since version 2.0.1-beta, SphinxQL supports C-style comment syntax. Everything from an opening /* sequence to a closing @@ -6610,7 +6726,7 @@

    Author

    SELECT /*! SQL_CALC_FOUND_ROWS */ col1 FROM table1 WHERE ...

    -

    8.45. List of SphinxQL reserved keywords

    +

    8.47. List of SphinxQL reserved keywords

    A complete alphabetical list of keywords that are currently reserved in SphinxQL syntax (and therefore can not be used as identifiers).

    @@ -6618,7 +6734,7 @@ 

    Author

    MOD, NOT, NULL, OR, ORDER, SELECT, TRUE

    -

    8.46. SphinxQL upgrade notes, version 2.0.1-beta

    +

    8.48. SphinxQL upgrade notes, version 2.0.1-beta

    This section only applies to existing applications that use SphinxQL versions prior to 2.0.1-beta. @@ -6936,7 +7052,7 @@

    Author

    (Section 9.4.5, “SetGeoAnchor”) are now internally implemented using this computed expressions mechanism, using magic names '@expr' and '@geodist' respectively. -

    Example:

    +

    Example:

     $cl->SetSelect ( "*, @weight+(user_karma+ln(pageviews))*0.1 AS myweight" );
     $cl->SetSelect ( "exp_years, salary_gbp*{$gbp_usd_rate} AS salary_usd,
        IF(age>40,1,0) AS over40" );
    @@ -7420,13 +7536,13 @@ 

    Author

    Added in version 1.10-beta. Whether to handle $docs as data to extract snippets from (default behavior), or to treat it as file names, and load data from specified files on the server side. Starting with - version 2.0.1-beta, up to dist_threads + version 2.0.1-beta, up to dist_threads worker threads per request will be created to parallelize the work when this flag is enabled. Boolean, default is false. Starting with version 2.0.2-beta, - building of the snippets could be parallelized between remote agents. Just set the 'dist_threads' param in the config + building of the snippets could be parallelized between remote agents. Just set the 'dist_threads' param in the config to the value greater than 1, and then invoke the snippets generation over the distributed index, which contain only one(!) local agent and several remotes. - Starting with version 2.1.1-beta, the snippets_file_prefix option is + Starting with version 2.1.1-beta, the snippets_file_prefix option is also in the game and the final filename is calculated by concatenation of the prefix with given name. Otherwords, when snippets_file_prefix is '/var/data' and filename is 'text.txt' the sphinx will try to generate the snippets from the file '/var/datatext.txt', which is exactly '/var/data' + 'text.txt'. @@ -7503,7 +7619,7 @@

    Author

    They are very fast because they're working fully in RAM, but they can also be made persistent: updates are saved on disk on clean searchd shutdown initiated by SIGTERM signal. With additional restrictions, updates -are also possible on MVA attributes; refer to mva_updates_pool +are also possible on MVA attributes; refer to mva_updates_pool directive for details.

    Usage example: @@ -8078,10 +8194,10 @@

    Author

    because to fix it, we need to be able either to reproduce and fix the bug, or to deduce what's causing it from the information that you provide. So here are some instructions on how to do that. -

    Bug-tracker

    Nothing special to say here. Here is the +

    Bug-tracker

    Nothing special to say here. Here is the <a href="http://sphinxsearch.com/bugs">link</a>. Create a new ticket and describe your bug in details so both you and developers can -save their time.

    Crashes

    In case of crashes we sometimes can get enough info to fix from +save their time.

    Crashes

    In case of crashes we sometimes can get enough info to fix from backtrace.

    Sphinx tries to write crash backtrace to its log file. It may look like this:

    @@ -8128,7 +8244,7 @@ 

    Author

    that the binary is not stripped. Our official binary packages should be fine. (That, or we have the symbols stored.) However, if you manually build Sphinx from the source tarball, do not run strip utility on that -binary, and/or do not let your build/packaging system do that!

    Uploading your data

    To fix your bug developers often need to reproduce it on their machines. +binary, and/or do not let your build/packaging system do that!

    Uploading your data

    To fix your bug developers often need to reproduce it on their machines. To do this they need your sphinx.conf, index files, binlog (if present), sometimes data to index (like SQL tables or XMLpipe2 data files) and queries.

    @@ -8270,54 +8386,56 @@

    Author

    12.4.4. query_log_format
    12.4.5. read_timeout
    12.4.6. client_timeout
    -
    12.4.7. max_children
    -
    12.4.8. net_workers
    -
    12.4.9. queue_max_length
    -
    12.4.10. pid_file
    -
    12.4.11. seamless_rotate
    -
    12.4.12. preopen_indexes
    -
    12.4.13. unlink_old
    -
    12.4.14. attr_flush_period
    -
    12.4.15. max_packet_size
    -
    12.4.16. mva_updates_pool
    -
    12.4.17. max_filters
    -
    12.4.18. max_filter_values
    -
    12.4.19. listen_backlog
    -
    12.4.20. read_buffer
    -
    12.4.21. read_unhinted
    -
    12.4.22. max_batch_queries
    -
    12.4.23. subtree_docs_cache
    -
    12.4.24. subtree_hits_cache
    -
    12.4.25. workers
    -
    12.4.26. dist_threads
    -
    12.4.27. binlog_path
    -
    12.4.28. binlog_flush
    -
    12.4.29. binlog_max_log_size
    -
    12.4.30. snippets_file_prefix
    -
    12.4.31. collation_server
    -
    12.4.32. collation_libc_locale
    -
    12.4.33. mysql_version_string
    -
    12.4.34. rt_flush_period
    -
    12.4.35. thread_stack
    -
    12.4.36. expansion_limit
    -
    12.4.37. watchdog
    -
    12.4.38. sphinxql_state
    -
    12.4.39. ha_ping_interval
    -
    12.4.40. ha_period_karma
    -
    12.4.41. persistent_connections_limit
    -
    12.4.42. rt_merge_iops
    -
    12.4.43. rt_merge_maxiosize
    -
    12.4.44. predicted_time_costs
    -
    12.4.45. shutdown_timeout
    -
    12.4.46. ondisk_attrs_default
    -
    12.4.47. query_log_min_msec
    -
    12.4.48. agent_connect_timeout
    -
    12.4.49. agent_query_timeout
    -
    12.4.50. agent_retry_count
    -
    12.4.51. agent_retry_delay
    -
    12.4.52. qcache_max_bytes
    -
    12.4.53. qcache_thresh_msec
    -
    12.4.54. qcache_ttl_sec
    +
    12.4.7. sphinxql_timeout
    +
    12.4.8. max_children
    +
    12.4.9. net_workers
    +
    12.4.10. queue_max_length
    +
    12.4.11. pid_file
    +
    12.4.12. seamless_rotate
    +
    12.4.13. preopen_indexes
    +
    12.4.14. unlink_old
    +
    12.4.15. attr_flush_period
    +
    12.4.16. max_packet_size
    +
    12.4.17. mva_updates_pool
    +
    12.4.18. max_filters
    +
    12.4.19. max_filter_values
    +
    12.4.20. listen_backlog
    +
    12.4.21. read_buffer
    +
    12.4.22. read_unhinted
    +
    12.4.23. max_batch_queries
    +
    12.4.24. subtree_docs_cache
    +
    12.4.25. subtree_hits_cache
    +
    12.4.26. workers
    +
    12.4.27. dist_threads
    +
    12.4.28. binlog_path
    +
    12.4.29. binlog_flush
    +
    12.4.30. binlog_max_log_size
    +
    12.4.31. snippets_file_prefix
    +
    12.4.32. collation_server
    +
    12.4.33. collation_libc_locale
    +
    12.4.34. mysql_version_string
    +
    12.4.35. rt_flush_period
    +
    12.4.36. thread_stack
    +
    12.4.37. expansion_limit
    +
    12.4.38. watchdog
    +
    12.4.39. sphinxql_state
    +
    12.4.40. ha_ping_interval
    +
    12.4.41. ha_period_karma
    +
    12.4.42. persistent_connections_limit
    +
    12.4.43. rt_merge_iops
    +
    12.4.44. rt_merge_maxiosize
    +
    12.4.45. predicted_time_costs
    +
    12.4.46. shutdown_timeout
    +
    12.4.47. ondisk_attrs_default
    +
    12.4.48. query_log_min_msec
    +
    12.4.49. agent_connect_timeout
    +
    12.4.50. agent_query_timeout
    +
    12.4.51. agent_retry_count
    +
    12.4.52. agent_retry_delay
    +
    12.4.53. hostname_lookup
    +
    12.4.54. qcache_max_bytes
    +
    12.4.55. qcache_thresh_msec
    +
    12.4.56. qcache_ttl_sec
    12.5. Common section configuration options
    12.5.1. lemmatizer_base
    12.5.2. on_json_attr_error
    @@ -8346,7 +8464,7 @@

    Author

    mssql type is currently only available on Windows. odbc type is available both on Windows natively and on Linux through UnixODBC library. -

    Example:

    +

    Example:

     type = mysql
     

    12.1.2. sql_host

    @@ -8363,7 +8481,7 @@

    Author

    and "127.0.0.1" will force TCP/IP usage. Refer to MySQL manual for more details. -

    Example:

    +

    Example:

     sql_host = localhost
     

    12.1.3. sql_port

    @@ -8372,7 +8490,7 @@

    Author

    Optional, default is 3306 for mysql source type and 5432 for pgsql type. Applies to SQL source types (mysql, pgsql, mssql) only. Note that it depends on sql_host setting whether this value will actually be used. -

    Example:

    +

    Example:

     sql_port = 3306
     

    12.1.4. sql_user

    @@ -8380,7 +8498,7 @@

    Author

    SQL user to use when connecting to sql_host. Mandatory, no default value. Applies to SQL source types (mysql, pgsql, mssql) only. -

    Example:

    +

    Example:

     sql_user = test
     

    12.1.5. sql_pass

    @@ -8388,7 +8506,7 @@

    Author

    SQL user password to use when connecting to sql_host. Mandatory, no default value. Applies to SQL source types (mysql, pgsql, mssql) only. -

    Example:

    +

    Example:

     sql_pass = mysecretpassword
     

    12.1.6. sql_db

    @@ -8396,7 +8514,7 @@

    Author

    SQL database (in MySQL terms) to use after the connection and perform further queries within. Mandatory, no default value. Applies to SQL source types (mysql, pgsql, mssql) only. -

    Example:

    +

    Example:

     sql_db = test
     

    12.1.7. sql_sock

    @@ -8408,7 +8526,7 @@

    Author

    On Linux, it would typically be /var/lib/mysql/mysql.sock. On FreeBSD, it would typically be /tmp/mysql.sock. Note that it depends on sql_host setting whether this value will actually be used. -

    Example:

    +

    Example:

     sql_sock = /tmp/mysql.sock
     

    12.1.8. mysql_connect_flags

    @@ -8434,7 +8552,7 @@

    Author

    both in theory and in practice. However, enabling compression on 100 Mbps links may improve indexing time significantly (upto 20-30% of the total indexing time improvement was reported). Your mileage may vary. -

    Example:

    +

    Example:

     mysql_connect_flags = 32 # enable compression
     

    12.1.9. mysql_ssl_cert, mysql_ssl_key, mysql_ssl_ca

    @@ -8447,7 +8565,7 @@

    Author

    indexer and MySQL. The details on creating the certificates and setting up MySQL server can be found in MySQL documentation. -

    Example:

    +

    Example:

     mysql_ssl_cert = /etc/ssl/client-cert.pem
     mysql_ssl_key = /etc/ssl/client-key.pem
     mysql_ssl_ca = /etc/ssl/cacert.pem
    @@ -8461,7 +8579,7 @@ 

    Author

    ODBC DSN (Data Source Name) specifies the credentials (host, user, password, etc) to use when connecting to ODBC data source. The format depends on specific ODBC driver used. -

    Example:

    +

    Example:

     odbc_dsn = Driver={Oracle ODBC Driver};Dbq=myDBName;Uid=myUsername;Pwd=myPassword
     

    12.1.11. sql_query_pre

    @@ -8494,7 +8612,7 @@

    Author

     sql_query_pre = SET SESSION query_cache_type=OFF
     

    -

    Example:

    +

    Example:

     sql_query_pre = SET NAMES utf8
     sql_query_pre = SET SESSION query_cache_type=OFF
     
    @@ -8515,7 +8633,7 @@

    Author

    by default it builds with 32-bit IDs support but --enable-id64 option to configure allows to build with 64-bit document and word IDs support. -

    Example:

    +

    Example:

     sql_query = \
         SELECT id, group_id, UNIX_TIMESTAMP(date_added) AS date_added, \
             title, content \
    @@ -8594,7 +8712,7 @@ 

    Author

    it will automatically switch to a variant that matches keywords in those fields, computes a sum of matched payloads multiplied by field weights, and adds that sum to the final rank. -

    Example:

    +

    Example:

     sql_joined_field = \
         tagstext from query; \
         SELECT docid, CONCAT('tag',tagid) FROM tags ORDER BY docid ASC
    @@ -8627,7 +8745,7 @@ 

    Author

    exactly equal to $start or $end from your query. The example in Section 3.8, “Ranged queries”) illustrates that; note how it uses greater-or-equal and less-or-equal comparisons. -

    Example:

    +

    Example:

     sql_query_range = SELECT MIN(id),MAX(id) FROM documents
     

    12.1.15. sql_range_step

    @@ -8648,7 +8766,7 @@

    Author

  • $start=3012, $end=3456

  • -

    Example:

    +

    Example:

     sql_range_step = 1000
     

    12.1.16. sql_query_killlist

    @@ -8694,7 +8812,7 @@

    Author

    over the network when sending queries. (Because that might be too much of an impact when the K-list is huge.) You will need to setup a separate per-server K-lists in that case. -

    Example:

    +

    Example:

     sql_query_killlist = \
         SELECT id FROM documents WHERE updated_ts>=@last_reindex UNION \
         SELECT id FROM documents_deleted WHERE deleted_ts>=@last_reindex
    @@ -8716,7 +8834,7 @@ 

    Author

    such bitfields are packed together in 32-bit chunks in .spa attribute data file. Bit size settings are ignored if using inline storage. -

    Example:

    +

    Example:

     sql_attr_uint = group_id
     sql_attr_uint = forum_id:9 # 9 bits for forum_id
     
    @@ -8726,7 +8844,7 @@

    Author

    Multi-value (there might be multiple attributes declared), optional. Applies to SQL source types (mysql, pgsql, mssql) only. Equivalent to sql_attr_uint declaration with a bit count of 1. -

    Example:

    +

    Example:

     sql_attr_bool = is_deleted # will be packed to 1 bit
     

    12.1.19. sql_attr_bigint

    @@ -8737,7 +8855,7 @@

    Author

    Note that unlike sql_attr_uint, these values are signed. Introduced in version 0.9.9-rc1. -

    Example:

    +

    Example:

     sql_attr_bigint = my_bigint_id
     

    12.1.20. sql_attr_timestamp

    @@ -8763,7 +8881,7 @@

    Author

    and UNIX_TIMESTAMP() in MySQL will not return anything expected. If you only needs to work with dates, not times, consider TO_DAYS() function in MySQL instead. -

    Example:

    +

    Example:

     # sql_query = ... UNIX_TIMESTAMP(added_datetime) AS added_ts ...
     sql_attr_timestamp = added_ts
     
    @@ -8779,7 +8897,7 @@

    Author

    One important usage of the float attributes is storing latitude and longitude values (in radians), for further usage in query-time geosphere distance calculations. -

    Example:

    +

    Example:

     sql_attr_float = lat_radians
     sql_attr_float = long_radians
     
    @@ -8808,7 +8926,7 @@

    Author

  • RANGE-QUERY is SQL query used to fetch min and max ID values, similar to 'sql_query_range'

  • -

    Example:

    +

    Example:

     sql_attr_multi = uint tag from query; SELECT id, tag FROM tags
     sql_attr_multi = bigint tag from ranged-query; \
         SELECT id, tag FROM tags WHERE id>=$start AND id<=$end; \
    @@ -8830,7 +8948,7 @@ 

    Author

    declared using sql_attr_string will not be full-text indexed; you can use sql_field_string directive for that. -

    Example:

    +

    Example:

     sql_attr_string = title # will be stored but will not be indexed
     

    12.1.24. sql_attr_json

    @@ -8865,7 +8983,7 @@

    Author

    You can read more on JSON attributes in http://sphinxsearch.com/blog/2013/08/08/full-json-support-in-trunk/. -

    Example:

    +

    Example:

     sql_attr_json = properties
     

    12.1.25. sql_column_buffers

    @@ -8895,7 +9013,7 @@

    Author

     sql_column_buffers = <colname>=<size>[K|M] [, ...]
     

    -

    Example:

    +

    Example:

     sql_query = SELECT id, mytitle, mycontent FROM documents
     sql_column_buffers = mytitle=64K, mycontent=10M
     
    @@ -8910,7 +9028,7 @@

    Author

    value but does not full-text index it. In some cases it might be desired to both full-text index the column and store it as attribute. sql_field_string lets you do exactly that. Both the field and the attribute will be named the same. -

    Example:

    +

    Example:

     sql_field_string = title # will be both indexed and stored
     

    12.1.27. sql_file_field

    @@ -8925,7 +9043,7 @@

    Author

    in size are skipped. Any errors during the file loading (IO errors, missed limits, etc) will be reported as indexing warnings and will not early terminate the indexing. No content will be indexed for such files. -

    Example:

    +

    Example:

     sql_file_field = my_file_path # load and index files referred to by my_file_path
     

    12.1.28. sql_query_post

    @@ -8943,7 +9061,7 @@

    Author

    For instance, updates on helper table that permanently change the last successfully indexed ID should not be run from post-fetch query; they should be run from post-index query instead. -

    Example:

    +

    Example:

     sql_query_post = DROP TABLE my_tmp_table
     

    12.1.29. sql_query_post_index

    @@ -8959,7 +9077,7 @@

    Author

    expanded to maximum document ID which was actually fetched from the database during indexing. If no documents were indexed, $maxid will be expanded to 0. -

    Example:

    +

    Example:

     sql_query_post_index = REPLACE INTO counters ( id, val ) \
         VALUES ( 'max_indexed_id', $maxid )
     
    @@ -8973,7 +9091,7 @@

    Author

    database server. It causes the indexer to sleep for given amount of milliseconds once per each ranged query step. This sleep is unconditional, and is performed before the fetch query. -

    Example:

    +

    Example:

     sql_ranged_throttle = 1000 # sleep for 1 sec before each query step
     

    12.1.31. xmlpipe_command

    @@ -8984,7 +9102,7 @@

    Author

    Specifies a command that will be executed and which output will be parsed for documents. Refer to Section 3.9, “xmlpipe2 data source” for specific format description. -

    Example:

    +

    Example:

     xmlpipe_command = cat /home/sphinx/test.xml
     

    12.1.32. xmlpipe_field

    @@ -8992,7 +9110,7 @@

    Author

    xmlpipe field declaration. Multi-value, optional. Applies to xmlpipe2 source type only. Refer to Section 3.9, “xmlpipe2 data source”. -

    Example:

    +

    Example:

     xmlpipe_field = subject
     xmlpipe_field = content
     
    @@ -9005,7 +9123,7 @@

    Author

    Makes the specified XML element indexed as both a full-text field and a string attribute. Equivalent to <sphinx:field name="field" attr="string"/> declaration within the XML file. -

    Example:

    +

    Example:

     xmlpipe_field_string = subject
     

    12.1.34. xmlpipe_attr_uint

    @@ -9014,7 +9132,7 @@

    Author

    Multi-value, optional. Applies to xmlpipe2 source type only. Syntax fully matches that of sql_attr_uint. -

    Example:

    +

    Example:

     xmlpipe_attr_uint = author_id
     

    12.1.35. xmlpipe_attr_bigint

    @@ -9023,7 +9141,7 @@

    Author

    Multi-value, optional. Applies to xmlpipe2 source type only. Syntax fully matches that of sql_attr_bigint. -

    Example:

    +

    Example:

     xmlpipe_attr_bigint = my_bigint_id
     

    12.1.36. xmlpipe_attr_bool

    @@ -9032,7 +9150,7 @@

    Author

    Multi-value, optional. Applies to xmlpipe2 source type only. Syntax fully matches that of sql_attr_bool. -

    Example:

    +

    Example:

     xmlpipe_attr_bool = is_deleted # will be packed to 1 bit
     

    12.1.37. xmlpipe_attr_timestamp

    @@ -9041,7 +9159,7 @@

    Author

    Multi-value, optional. Applies to xmlpipe2 source type only. Syntax fully matches that of sql_attr_timestamp. -

    Example:

    +

    Example:

     xmlpipe_attr_timestamp = published
     

    12.1.38. xmlpipe_attr_float

    @@ -9050,7 +9168,7 @@

    Author

    Multi-value, optional. Applies to xmlpipe2 source type only. Syntax fully matches that of sql_attr_float. -

    Example:

    +

    Example:

     xmlpipe_attr_float = lat_radians
     xmlpipe_attr_float = long_radians
     
    @@ -9065,7 +9183,7 @@

    Author

    that will constitute the MVA will be extracted, similar to how sql_attr_multi parses SQL column contents when 'field' MVA source type is specified. -

    Example:

    +

    Example:

     xmlpipe_attr_multi = taglist
     

    12.1.40. xmlpipe_attr_multi_64

    @@ -9079,7 +9197,7 @@

    Author

    that will constitute the MVA will be extracted, similar to how sql_attr_multi parses SQL column contents when 'field' MVA source type is specified. -

    Example:

    +

    Example:

     xmlpipe_attr_multi_64 = taglist
     

    12.1.41. xmlpipe_attr_string

    @@ -9091,7 +9209,7 @@

    Author

    This setting declares a string attribute tag in xmlpipe2 stream. The contents of the specified tag will be parsed and stored as a string value. -

    Example:

    +

    Example:

     xmlpipe_attr_string = subject
     

    12.1.42. xmlpipe_attr_json

    @@ -9104,7 +9222,7 @@

    Author

    XML tag are to be treated as a JSON document and stored into a Sphinx index for later use. Refer to Section 12.1.24, “sql_attr_json” for more details on the JSON attributes. -

    Example:

    +

    Example:

     xmlpipe_attr_json = properties
     

    12.1.43. xmlpipe_fixup_utf8

    @@ -9121,7 +9239,7 @@

    Author

    UTF8 fixup feature lets you avoid that. When fixup is enabled, Sphinx will preprocess the incoming stream before passing it to the XML parser and replace invalid UTF-8 sequences with spaces. -

    Example:

    +

    Example:

     xmlpipe_fixup_utf8 = 1
     

    12.1.44. mssql_winauth

    @@ -9135,7 +9253,7 @@

    Author

    authentication when connecting to MS SQL Server. Note that when running searchd as a service, account user can differ from the account you used to install the service. -

    Example:

    +

    Example:

     mssql_winauth = 1
     

    12.1.45. unpack_zlib

    @@ -9149,7 +9267,7 @@

    Author

    using standard zlib algorithm (called deflate and also implemented by gunzip). When indexing on a different box than the database, this lets you offload the database, and save on network traffic. The feature is only available if zlib and zlib-devel were both available during build time. -

    Example:

    +

    Example:

     unpack_zlib = col1
     unpack_zlib = col2
     
    @@ -9164,7 +9282,7 @@

    Author

    using modified zlib algorithm used by MySQL COMPRESS() and UNCOMPRESS() functions. When indexing on a different box than the database, this lets you offload the database, and save on network traffic. The feature is only available if zlib and zlib-devel were both available during build time. -

    Example:

    +

    Example:

     unpack_mysqlcompress = body_compressed
     unpack_mysqlcompress = description_compressed
     
    @@ -9180,14 +9298,14 @@

    Author

    data can not go over the buffer size. This option lets you control the buffer size, both to limit indexer memory use, and to enable unpacking of really long data fields if necessary. -

    Example:

    +

    Example:

     unpack_mysqlcompress_maxsize = 1M
     

    12.1.48. csvpipe_delimiter

    csvpipe source fields delimiter. Optional, default value is ','. Introduced in version 2.2.1-beta. -

    Example:

    +

    Example:

     csvpipe_delimiter = ;
     

    12.2. Index configuration options

    @@ -9215,7 +9333,7 @@

    Author

    Index type setting lets you choose the needed type. By default, plain local index type will be assumed. -

    Example:

    +

    Example:

     type = distributed
     

    12.2.2. source

    @@ -9274,7 +9392,7 @@

    Author

    -

    Example:

    +

    Example:

     source = srcpart1
     source = srcpart2
     source = srcpart3
    @@ -9304,7 +9422,7 @@ 

    Author

  • .spe stores skip-lists to speed up doc-list filtering

  • -

    Example:

    +

    Example:

     path = /var/data/test1
     

    12.2.4. docinfo

    @@ -9328,7 +9446,7 @@

    Author

    However, such cases are infrequent, and docinfo defaults to "extern". Refer to Section 3.3, “Attributes” for in-depth discussion and RAM usage estimates. -

    Example:

    +

    Example:

     docinfo = inline
     

    12.2.5. mlock

    @@ -9351,7 +9469,7 @@

    Author

    from root account, or be granted enough privileges otherwise. If mlock() fails, a warning is emitted, but index continues working. -

    Example:

    +

    Example:

     mlock = 1
     

    12.2.6. morphology

    @@ -9480,7 +9598,7 @@

    Author

    a matching entry in the dictionary, stemmers will not be applied at all. Or in other words, wordforms can be used to implement stemming exceptions. -

    Example:

    +

    Example:

     morphology = stem_en, libstemmer_sv
     

    12.2.7. dict

    @@ -9549,7 +9667,7 @@

    Author

    on how many actual keywords match the given substring (in other words, into how many keywords does the search term expand). The maximum number of keywords matched is restricted by the -expansion_limit +expansion_limit directive.

    Essentially, keywords and CRC dictionaries represent the two @@ -9558,7 +9676,7 @@

    Author

    top-speed worst-case searches (CRC dictionary), or only slightly impact indexing time but sacrifice worst-case searching time when the prefix expands into very many keywords (keywords dictionary). -

    Example:

    +

    Example:

     dict = keywords
     

    12.2.8. index_sp

    @@ -9596,7 +9714,7 @@

    Author

    PRE, TABLE, TBODY, TD, TFOOT, TH, THEAD, TR, and UL.

    Both sentences and paragraphs increment the keyword position counter by 1. -

    Example:

    +

    Example:

     index_sp = 1
     

    12.2.9. index_zones

    @@ -9627,7 +9745,7 @@

    Author

    in a document. Once indexed, zones can then be used for matching with the ZONE operator, see Section 5.3, “Extended query syntax”. -

    Example:

    +

    Example:

     index_zones = h*, th, title
     

    Earlier versions than 2.1.1-beta only provided this feature for plain @@ -9648,7 +9766,7 @@

    Author

    exactly as long as specified will be stemmed. So in order to avoid stemming 3-character keywords, you should specify 4 for the value. For more finely grained control, refer to wordforms feature. -

    Example:

    +

    Example:

     min_stemming_len = 4
     

    12.2.11. stopwords

    @@ -9686,7 +9804,7 @@

    Author

    of the index, sorted by the keyword frequency, see --buildstops and --buildfreqs switch in Section 7.1, “indexer command reference”. Top keywords from that dictionary can usually be used as stopwords. -

    Example:

    +

    Example:

     stopwords = /usr/local/sphinx/data/stopwords.txt
     stopwords = stopwords-ru.txt stopwords-en.txt
     
    @@ -9756,7 +9874,7 @@

    Author

    s02e02 > season 2 episode 2 s3 e3 > season 3 episode 3

    -

    Example:

    +

    Example:

     wordforms = /usr/local/sphinx/data/wordforms.txt
     wordforms = /usr/local/sphinx/data/alternateforms.txt
     wordforms = /usr/local/sphinx/private/dict*.txt
    @@ -9787,7 +9905,7 @@ 

    Author

    time it makes no sense to embed a 100 MB wordforms dictionary into a tiny delta index. So there needs to be a size threshold, and embedded_limit is that threshold. -

    Example:

    +

    Example:

     embedded_limit = 32K
     

    12.2.14. exceptions

    @@ -9867,7 +9985,7 @@

    Author

    during indexing and searching respectively. Therefore, to pick up changes in the file it's required to reindex and restart searchd. -

    Example:

    +

    Example:

     exceptions = /usr/local/sphinx/data/exceptions.txt
     

    12.2.15. min_word_len

    @@ -9877,7 +9995,7 @@

    Author

    Only those words that are not shorter than this minimum will be indexed. For instance, if min_word_len is 4, then 'the' won't be indexed, but 'they' will be. -

    Example:

    +

    Example:

     min_word_len = 4
     

    12.2.16. charset_table

    @@ -9945,7 +10063,7 @@

    Author

    Starting with 2.2.3-beta, aliases "english" and "russian" are allowed at control character mapping. -

    Example:

    +

    Example:

     # default are English and Russian letters
     charset_table = 0..9, A..Z->a..z, _, a..z, \
         U+410..U+42F->U+430..U+44F, U+430..U+44F, U+401->U+451, U+451
    @@ -9968,7 +10086,7 @@ 

    Author

    The syntax is the same as for charset_table, but it's only allowed to declare characters, and not allowed to map them. Also, the ignored characters must not be present in charset_table. -

    Example:

    +

    Example:

     ignore_chars = U+AD
     

    12.2.18. min_prefix_len

    @@ -9992,7 +10110,7 @@

    Author

    Perfect word matches can be differentiated from prefix matches, and ranked higher, by utilizing all of the following options: a) dict=keywords (on by default), b) index_exact_words=1 (off by default), and c) expand_keywords=1 (also off by default). Note that either with the legacy dict=crc mode (which you should ditch anyway!), or with any of the above options disable, there is no data to differentiate between the prefixes and full words, and thus perfect word matches can't be ranked higher. -

    Example:

    +

    Example:

     min_prefix_len = 3
     

    12.2.19. min_infix_len

    @@ -10019,7 +10137,7 @@

    Author

    identify keywords matching on just a single character, expand '*a*' to an OR operator over 100,000+ keywords, and evaluate that expanded query, in practice this will very definitely kill your server.) -

    Example:

    +

    Example:

     min_infix_len = 3
     

    12.2.20. max_substring_len

    @@ -10055,7 +10173,7 @@

    Author

    and intentionally forbidden in that case. If required, you can still limit the length of a substring that you search for in the application code. -

    Example:

    +

    Example:

     max_substring_len = 12
     

    12.2.21. prefix_fields

    @@ -10069,7 +10187,7 @@

    Author

    page contents. prefix_fields specifies what fields will be prefix-indexed; all other fields will be indexed in normal mode. The value format is a comma-separated list of field names. -

    Example:

    +

    Example:

     prefix_fields = url, domain
     

    12.2.22. infix_fields

    @@ -10079,7 +10197,7 @@

    Author

    Similar to prefix_fields, but lets you limit infix-indexing to given fields. -

    Example:

    +

    Example:

     infix_fields = url, domain
     

    12.2.23. ngram_len

    @@ -10119,7 +10237,7 @@

    Author

    good results, thanks to phrase based ranking: it will pull closer phrase matches (which in case of N-gram CJK words can mean closer multi-character word matches) to the top. -

    Example:

    +

    Example:

     ngram_len = 1
     

    12.2.24. ngram_chars

    @@ -10131,7 +10249,7 @@

    Author

    this list defines characters, sequences of which are subject to N-gram extraction. Words comprised of other characters will not be affected by N-gram indexing feature. The value format is identical to charset_table. -

    Example:

    +

    Example:

     ngram_chars = U+3000..U+2FA1F
     

    12.2.25. phrase_boundary

    @@ -10157,7 +10275,7 @@

    Author

    Phrase boundary condition will be raised if and only if such character is followed by a separator; this is to avoid abbreviations such as S.T.A.L.K.E.R or URLs being treated as several phrases. -

    Example:

    +

    Example:

     phrase_boundary = ., ?, !, U+2026 # horizontal ellipsis
     

    12.2.26. phrase_boundary_step

    @@ -10167,7 +10285,7 @@

    Author

    On phrase boundary, current word position will be additionally incremented by this number. See phrase_boundary for details. -

    Example:

    +

    Example:

     phrase_boundary_step = 100
     

    12.2.27. html_strip

    @@ -10204,7 +10322,7 @@

    Author

    There are no restrictions on tag names; ie. everything that looks like a valid tag start, or end, or a comment will be stripped. -

    Example:

    +

    Example:

     html_strip = 1
     

    12.2.28. html_index_attrs

    @@ -10215,7 +10333,7 @@

    Author

    Specifies HTML markup attributes whose contents should be retained and indexed even though other HTML markup is stripped. The format is per-tag enumeration of indexable attributes, as shown in the example below. -

    Example:

    +

    Example:

     html_index_attrs = img=alt,title; a=title;
     

    12.2.29. html_remove_elements

    @@ -10231,7 +10349,7 @@

    Author

    The value is a comma-separated list of element (tag) names whose contents should be removed. Tag names are case insensitive. -

    Example:

    +

    Example:

     html_remove_elements = style, script
     

    12.2.30. local

    @@ -10247,14 +10365,14 @@

    Author

    Note that by default all local indexes will be searched sequentially, utilizing only 1 CPU or core. To parallelize processing of the local parts in the distributed index, you should use dist_threads directive, -see Section 12.4.26, “dist_threads”. +see Section 12.4.27, “dist_threads”.

    Before dist_threads, there also was a legacy solution to configure searchd to query itself instead of using local indexes (refer to Section 12.2.31, “agent” for the details). However, that creates redundant CPU and network load, and dist_threads is now strongly suggested instead. -

    Example:

    +

    Example:

     local = chunk1
     local = chunk2
     
    @@ -10314,7 +10432,7 @@

    Author

    Starting with 2.2.9-release, the value can additionally enumerate per agent options such as:

     agent = address1:index-list[[ha_strategy=value] | [conn=value] | [blackhole=value]]
    -

    Example:

    +

    Example:

     # config on box2
     # sharding an index over 3 servers
     agent = box2:9312:chunk2
    @@ -10344,7 +10462,7 @@ 

    Author

    agent = box1:9312:chunk1[ha_strategy=nodeads] agent = box2:9312:chunk2[conn=pconn] agent = test:9312:any[blackhole=1] -

    Agent mirrors

    +

    Agent mirrors

    New syntax added in 2.1.1-beta lets you define so-called agent mirrors that can be used interchangeably when processing a search query. Master server keeps track of mirror status (alive or dead) and response times, and does @@ -10365,7 +10483,7 @@

    Author

    By default, all queries are routed to the best of the mirrors. The best one is picked based on the recent statistics, as controlled by the -ha_period_karma config directive. +ha_period_karma config directive. Master stores a number of metrics (total query count, error count, response time, etc) recently observed for every agent. It groups those by time spans, and karma is that time span length. The best agent mirror is then determined @@ -10375,16 +10493,16 @@

    Author

    The karma period is in seconds and defaults to 60 seconds. Master stores upto 15 karma spans with per-agent statistics for instrumentation purposes -(see SHOW AGENT STATUS +(see SHOW AGENT STATUS statement). However, only the last 2 spans out of those are ever used for HA/LB logic.

    When there are no queries, master sends a regular ping command every -ha_ping_interval milliseconds +ha_ping_interval milliseconds in order to have some statistics and at least check, whether the remote host is still alive. ha_ping_interval defaults to 1000 msec. Setting it to 0 disables pings and statistics will only be accumulated based on actual queries. -

    Example:

    +

    Example:

     # sharding index over 4 servers total
     # in just 2 chunks but with 2 failover mirrors for each chunk
     # box1, box2 carry chunk1 as local
    @@ -10407,10 +10525,10 @@ 

    Author

    is that the master will not open a new connection to the agent for every query and then close it. Rather, it will keep a connection open and attempt to reuse for the subsequent queries. The maximal number of such persistent connections per one agent host -is limited by persistent_connections_limit option of searchd section. +is limited by persistent_connections_limit option of searchd section.

    Note, that you have to set the last one in something greater than 0 if you want to use persistent agent connections. -Otherwise - when persistent_connections_limit is not defined, it assumes +Otherwise - when persistent_connections_limit is not defined, it assumes the zero num of persistent connections, and 'agent_persistent' acts exactly as simple 'agent'.

    Persistent master-agent connections reduce TCP port pressure, and @@ -10418,7 +10536,7 @@

    Author

    in workers=threads mode. In other modes, simple non-persistent connections (i.e., one connection per operation) will be used, and a warning will show up in the console. -

    Example:

    +

    Example:

     agent_persistent = remotebox:9312:index2
     

    12.2.33. agent_blackhole

    @@ -10437,7 +10555,7 @@

    Author

    Also, all network errors on blackhole agents will be ignored. The value format is completely identical to regular agent directive. -

    Example:

    +

    Example:

     agent_blackhole = testbox:9312:testindex1,testindex2
     

    12.2.34. agent_connect_timeout

    @@ -10450,7 +10568,7 @@

    Author

    successfully. If the timeout is reached but connect() does not complete, and retries are enabled, retry will be initiated. -

    Example:

    +

    Example:

     agent_connect_timeout = 300
     

    12.2.35. agent_query_timeout

    @@ -10465,7 +10583,7 @@

    Author

    a remote agent equals to the sum of agent_connection_timeout and agent_query_timeout. Queries will not be retried if this timeout is reached; a warning will be produced instead. -

    Example:

    +

    Example:

     agent_query_timeout = 10000 # our query can be long, allow up to 10 sec
     

    12.2.36. preopen

    @@ -10485,7 +10603,7 @@

    Author

    This directive does not affect indexer in any way, it only affects searchd. -

    Example:

    +

    Example:

     preopen = 1
     

    12.2.37. inplace_enable

    @@ -10516,7 +10634,7 @@

    Author

    This directive does not affect searchd in any way, it only affects indexer. -

    Example:

    +

    Example:

     inplace_enable = 1
     

    12.2.38. inplace_hit_gap

    @@ -10528,7 +10646,7 @@

    Author

    This directive does not affect searchd in any way, it only affects indexer. -

    Example:

    +

    Example:

     inplace_hit_gap = 1M
     

    12.2.39. inplace_docinfo_gap

    @@ -10540,7 +10658,7 @@

    Author

    This directive does not affect searchd in any way, it only affects indexer. -

    Example:

    +

    Example:

     inplace_docinfo_gap = 1M
     

    12.2.40. inplace_reloc_factor

    @@ -10552,7 +10670,7 @@

    Author

    This directive does not affect searchd in any way, it only affects indexer. -

    Example:

    +

    Example:

     inplace_reloc_factor = 0.1
     

    12.2.41. inplace_write_factor

    @@ -10564,7 +10682,7 @@

    Author

    This directive does not affect searchd in any way, it only affects indexer. -

    Example:

    +

    Example:

     inplace_write_factor = 0.1
     

    12.2.42. index_exact_words

    @@ -10578,7 +10696,7 @@

    Author

    enables exact form operator in the query language to work. This impacts the index size and the indexing time. However, searching performance is not impacted at all. -

    Example:

    +

    Example:

     index_exact_words = 1
     

    12.2.43. overshort_step

    @@ -10589,7 +10707,7 @@

    Author

    This directive does not affect searchd in any way, it only affects indexer. -

    Example:

    +

    Example:

     overshort_step = 1
     

    12.2.44. stopword_step

    @@ -10600,7 +10718,7 @@

    Author

    This directive does not affect searchd in any way, it only affects indexer. -

    Example:

    +

    Example:

     stopword_step = 1
     

    12.2.45. hitless_words

    @@ -10635,7 +10753,7 @@

    Author

    hitless, "simon says hello world" will be converted to ("simon says" & hello & world) query, matching all documents that contain "hello" and "world" anywhere in the document, and also "simon says" as an exact phrase. -

    Example:

    +

    Example:

     hitless_words = all
     

    12.2.46. expand_keywords

    @@ -10668,7 +10786,7 @@

    Author

    This directive does not affect indexer in any way, it only affects searchd. -

    Example:

    +

    Example:

     expand_keywords = 1
     

    12.2.47. blend_chars

    @@ -10707,7 +10825,7 @@

    Author

    so that multiple different blended characters could be normalized into just one base form. This is useful when indexing multiple alternative Unicode codepoints with equivalent glyphs. -

    Example:

    +

    Example:

     blend_chars = +, &, U+23
     blend_chars = +, &->+ # 2.0.1 and above
     
    @@ -10756,7 +10874,7 @@

    Author

    Default behavior is to index the entire token, equivalent to blend_mode = trim_none. -

    Example:

    +

    Example:

     blend_mode = trim_tail, skip_pure
     

    12.2.49. rt_mem_limit

    @@ -10776,7 +10894,7 @@

    Author

    hence, specifying 512 MB limit and only inserting 3 MB of data should result in allocating 3 MB, not 512 MB.

    -

    Example:

    +

    Example:

     rt_mem_limit = 512M
     

    12.2.50. rt_field

    @@ -10790,7 +10908,7 @@

    Author

    in INSERT statements without an explicit list of inserted columns will have to be in the same order as configured.

    -

    Example:

    +

    Example:

     rt_field = author
     rt_field = title
     rt_field = content
    @@ -10801,7 +10919,7 @@ 

    Author

    Multi-value (an arbitrary number of attributes is allowed), optional. Declares an unsigned 32-bit attribute. Introduced in version 1.10-beta. -

    Example:

    +

    Example:

     rt_attr_uint = gid
     

    12.2.52. rt_attr_bool

    @@ -10810,7 +10928,7 @@

    Author

    Multi-value (there might be multiple attributes declared), optional. Declares a 1-bit unsigned integer attribute. Introduced in version 2.1.2-release. -

    Example:

    +

    Example:

     rt_attr_bool = available
     

    12.2.53. rt_attr_bigint

    @@ -10819,7 +10937,7 @@

    Author

    Multi-value (an arbitrary number of attributes is allowed), optional. Declares a signed 64-bit attribute. Introduced in version 1.10-beta. -

    Example:

    +

    Example:

     rt_attr_bigint = guid
     

    12.2.54. rt_attr_float

    @@ -10828,7 +10946,7 @@

    Author

    Multi-value (an arbitrary number of attributes is allowed), optional. Declares a single precision, 32-bit IEEE 754 format float attribute. Introduced in version 1.10-beta. -

    Example:

    +

    Example:

     rt_attr_float = gpa
     

    12.2.55. rt_attr_multi

    @@ -10837,7 +10955,7 @@

    Author

    Declares the UNSIGNED INTEGER (unsigned 32-bit) MVA attribute. Multi-value (ie. there may be more than one such attribute declared), optional. Applies to RT indexes only. -

    Example:

    +

    Example:

     rt_attr_multi = my_tags
     

    12.2.56. rt_attr_multi_64

    @@ -10846,7 +10964,7 @@

    Author

    Declares the BIGINT (signed 64-bit) MVA attribute. Multi-value (ie. there may be more than one such attribute declared), optional. Applies to RT indexes only. -

    Example:

    +

    Example:

     rt_attr_multi_64 = my_wide_tags
     

    12.2.57. rt_attr_timestamp

    @@ -10854,7 +10972,7 @@

    Author

    Timestamp attribute declaration. Multi-value (an arbitrary number of attributes is allowed), optional. Introduced in version 1.10-beta. -

    Example:

    +

    Example:

     rt_attr_timestamp = date_added
     

    12.2.58. rt_attr_string

    @@ -10862,7 +10980,7 @@

    Author

    String attribute declaration. Multi-value (an arbitrary number of attributes is allowed), optional. Introduced in version 1.10-beta. -

    Example:

    +

    Example:

     rt_attr_string = author
     

    12.2.59. rt_attr_json

    @@ -10872,7 +10990,7 @@

    Author

    Introduced in version 2.1.1-beta.

    Refer to Section 12.1.24, “sql_attr_json” for more details on the JSON attributes. -

    Example:

    +

    Example:

     rt_attr_json = properties
     

    12.2.60. ha_strategy

    @@ -10886,11 +11004,11 @@

    Author

    index. Essentially, this directive controls how exactly master does the load balancing between the configured mirror agent nodes. As of 2.1.1-beta, the following strategies are implemented: -

    Simple random balancing

    ha_strategy = random

    +

    Simple random balancing

    ha_strategy = random

    The default balancing mode. Simple linear random distribution among the mirrors. That is, equal selection probability are assigned to every mirror. Kind of similar to round-robin (RR), but unlike RR, does not impose a strict selection order. -

    Adaptive randomized balancing

    +

    Adaptive randomized balancing

    The default simple random strategy does not take mirror status, error rate, and, most importantly, actual response latencies into account. So to accommodate for heterogeneous clusters and/or temporary spikes in agent node load, we have @@ -10934,7 +11052,7 @@

    Author

    ha_strategy = noerrors

    Latency-weighted probabilities, but mirrors with worse errors/success ratio are excluded from the selection. -

    Round-robin balancing

    ha_strategy = roundrobin

    Simple round-robin selection, that is, selecting the 1st mirror +

    Round-robin balancing

    ha_strategy = roundrobin

    Simple round-robin selection, that is, selecting the 1st mirror in the list, then the 2nd one, then the 3rd one, etc, and then repeating the process once the last mirror in the list is reached. Unlike with the randomized strategies, RR imposes a strict querying order (1, 2, 3, .., @@ -10960,7 +11078,7 @@

    Author

    to index a current word pair or not.

    bigram_freq_words lets you define a list of such keywords. -

    Example:

    +

    Example:

     bigram_freq_words = the, a, you, i
     

    12.2.62. bigram_index

    @@ -11000,7 +11118,7 @@

    Author

    For most usecases, both_freq would be the best mode, but your mileage may vary. -

    Example:

    +

    Example:

     bigram_freq_words = both_freq
     

    12.2.63. index_field_lengths

    @@ -11027,7 +11145,7 @@

    Author

    and its extension towards multiple fields, called BM25F. They require per-document length and per-field lengths, respectively. Hence the additional directive. -

    Example:

    +

    Example:

     index_field_lengths = 1
     

    12.2.64. regexp_filter

    @@ -11064,7 +11182,7 @@

    Author

    installed in the system and Sphinx must be configured built with a --with-re2 switch. Binary packages should come with RE2 builtin. -

    Example:

    +

    Example:

     # index '13-inch' as '13inch'
     regexp_filter = \b(\d+)\" => \1inch
     
    @@ -11088,7 +11206,7 @@ 

    Author

    stopwords_unstemmed directive fixes that issue. When it's enabled, stopwords are applied before stemming (and therefore to the original word forms), and the tokens are stopped when token == stopword. -

    Example:

    +

    Example:

     stopwords_unstemmed = 1
     

    12.2.66. global_idf

    @@ -11123,14 +11241,14 @@

    Author

    first, then converting those to .idf format using --buildidf, then merging all .idf files across cluser using --mergeidf. Refer to Section 7.4, “indextool command reference” for more information. -

    Example:

    +

    Example:

     global_idf = /usr/local/sphinx/var/global.idf
     

    12.2.67. rlp_context

    RLP context configuration file. Mandatory if RLP is used. Added in 2.2.1-beta. -

    Example:

    +

    Example:

     rlp_context = /home/myuser/RLP/rlp-context.xml
     

    12.2.68. ondisk_attrs

    @@ -11149,7 +11267,7 @@

    Author

    Note that this option also affects RT indexes. When it is enabled, all atribute updates will be disabled, and also all disk chunks of RT indexes will behave described above. However inserting and deleting of docs from RT indexes is still possible with enabled ondisk_attrs. -

    Possible values:

    • +

      Possible values:

      • 0 - disabled and default value, all attributes are loaded in memory (the normal behaviour of docinfo = extern)
      • @@ -11167,7 +11285,7 @@

        Author

        This option does not affect indexing in any way, it only requires daemon restart. -

        Example:

        +

        Example:

         ondisk_attrs = pool #keep pooled attributes on disk
         

    12.3. indexer program configuration options

    @@ -11193,7 +11311,7 @@

    Author

    and the database server can timeout. You can resolve that either by raising timeouts on SQL server side or by lowering mem_limit. -

    Example:

    +

    Example:

     mem_limit = 256M
     # mem_limit = 262144K # same, but in KB
     # mem_limit = 268435456 # same, but in bytes
    @@ -11216,7 +11334,7 @@ 

    Author

    (that's mostly limited by disk heads seek time). Limiting indexing I/O to a fraction of that can help reduce search performance degradation caused by indexing. -

    Example:

    +

    Example:

     max_iops = 40
     

    12.3.3. max_iosize

    @@ -11232,14 +11350,14 @@

    Author

    by max_iops setting. At the time of this writing, all I/O calls should be under 256 KB (default internal buffer size) anyway, so max_iosize values higher than 256 KB must not affect anything. -

    Example:

    +

    Example:

     max_iosize = 1048576
     

    12.3.4. max_xmlpipe2_field

    Maximum allowed field size for XMLpipe2 source type, bytes. Optional, default is 2 MB. -

    Example:

    +

    Example:

     max_xmlpipe2_field = 8M
     

    12.3.5. write_buffer

    @@ -11253,7 +11371,7 @@

    Author

    mem_limit. Note that several (currently up to 4) buffers for different files will be allocated, proportionally increasing the RAM usage. -

    Example:

    +

    Example:

     write_buffer = 4M
     

    12.3.6. max_file_field_buffer

    @@ -11273,7 +11391,7 @@

    Author

    (for example) 2 MB in size, but max_file_field_buffer value is 128 MB, peak buffer usage would still be only 2 MB. However, files over 128 MB would be entirely skipped. -

    Example:

    +

    Example:

     max_file_field_buffer = 128M
     

    12.3.7. on_file_field_error

    @@ -11305,7 +11423,7 @@

    Author

    when doing actual parsing work. So in case a file goes away between these two open attempts, the document will still be indexed. -

    Example:

    +

    Example:

     on_file_field_error = skip_document
     

    12.3.8. lemmatizer_cache

    @@ -11346,7 +11464,7 @@

    Author

    go with the small default 256 KB cache when pressed for memory, or spend 128 MB extra RAM and cache the entire dictionary for maximum indexing performance. -

    Example:

    +

    Example:

     lemmatizer_cache = 256M # cache it all
     

    12.4. searchd program configuration options

    @@ -11376,7 +11494,7 @@

    Author

    makes all connections to that port bypass the thread pool and always forcibly create a new dedicated thread. That's useful for managing in case of a severe overload when the daemon would either stall or not let you connect via a regular port. -

    Examples:

    +

    Examples:

     listen = localhost
     listen = localhost:5000
     listen = 192.168.0.1:5000
    @@ -11403,7 +11521,7 @@ 

    Author

    Also you can use the 'syslog' as the file name. In this case the events will be sent to syslog daemon. To use the syslog option the sphinx must be configured '--with-syslog' on building. -

    Example:

    +

    Example:

     log = /var/log/searchd.log
     

    12.4.3. query_log

    @@ -11416,7 +11534,7 @@

    Author

    In this case all search queries will be sent to syslog daemon with LOG_INFO priority, prefixed with '[query]' instead of timestamp. To use the syslog option the sphinx must be configured '--with-syslog' on building. -

    Example:

    +

    Example:

     query_log = /var/log/query.log
     

    12.4.4. query_log_format

    @@ -11432,7 +11550,7 @@

    Author

    on the fly, using SET GLOBAL query_log_format=sphinxql syntax. Refer to Section 5.9, “searchd query log formats” for more discussion and format details. -

    Example:

    +

    Example:

     query_log_format = sphinxql
     

    12.4.5. read_timeout

    @@ -11440,17 +11558,24 @@

    Author

    Network client request read timeout, in seconds. Optional, default is 5 seconds. searchd will forcibly close the client connections which fail to send a query within this timeout. -

    Example:

    +

    Example:

     read_timeout = 1
     

    12.4.6. client_timeout

    Maximum time to wait between requests (in seconds) when using persistent connections. Optional, default is five minutes. -

    Example:

    +

    Example:

     client_timeout = 3600
     
    -

    12.4.7. max_children

    +

    12.4.7. sphinxql_timeout

    +

    +Maximum time to wait between requests (in seconds) when using +sphinxql interface. Optional, default is 15 minutes. Introduced in 2.3.2-beta. +

    Example:

    +sphinxql_timeout = 900
    +
    +

    12.4.8. max_children

    Maximum amount of worker threads (or in other words, concurrent queries to run in parallel). Optional, default is 0 (unlimited) in workers=threads, or 1.5 times the CPU cores count @@ -11476,23 +11601,23 @@

    Author

    an internal network thread, and only the 2 actually active queries will be subject to max_children limit. When the limit is reached, any additional incoming connections will still be accepted, and any additional -queries will get enqueued +queries will get enqueued until there are free worker threads. The queries will only start failing with a temporary Thus, in thread_pool mode it makes little sense to raise max_children much higher than the amount of CPU cores. Usually that will only hurt CPU contention and decrease the general throughput. -

    Example:

    +

    Example:

     max_children = 10
     
    -

    12.4.8. net_workers

    +

    12.4.9. net_workers

    Number of network threads for workers=thread_pool mode, default is 1.

    Useful for extremely high query rates, when just 1 thread is not enough to manage all the incoming queries.

    -

    12.4.9. queue_max_length

    +

    12.4.10. queue_max_length

    Maximum pending queries queue length for workers=thread_pool mode, default is 0 (unlimited).

    @@ -11500,7 +11625,7 @@

    Author

    This directive lets you constrain queue length and start rejecting incoming queries at some point with a "maxed out" message.

    -

    12.4.10. pid_file

    +

    12.4.11. pid_file

    searchd process ID file name. Mandatory. @@ -11512,10 +11637,10 @@

    Author

    of searchd; to stop searchd; to notify it that it should rotate the indexes. Can also be used for different external automation scripts. -

    Example:

    +

    Example:

     pid_file = /var/run/searchd.pid
     
    -

    12.4.11. seamless_rotate

    +

    12.4.12. seamless_rotate

    Prevents searchd stalls while rotating indexes with huge amounts of data to precache. Optional, default is 1 (enable seamless rotation). On Windows systems seamless rotation is disabled by default. @@ -11551,10 +11676,10 @@

    Author

    memory usage during the rotation (because both old and new copies of .spa/.spi/.spm data need to be in RAM while preloading new copy). Average usage stays the same. -

    Example:

    +

    Example:

     seamless_rotate = 1
     
    -

    12.4.12. preopen_indexes

    +

    12.4.13. preopen_indexes

    Whether to forcibly preopen all indexes on startup. Optional, default is 1 (preopen everything). @@ -11574,17 +11699,17 @@

    Author

    They also make searchd use more file handles. In most scenarios it's therefore preferred and recommended to preopen indexes. -

    Example:

    +

    Example:

     preopen_indexes = 1
     
    -

    12.4.13. unlink_old

    +

    12.4.14. unlink_old

    Whether to unlink .old index copies on successful rotation. Optional, default is 1 (do unlink). -

    Example:

    +

    Example:

     unlink_old = 0
     
    -

    12.4.14. attr_flush_period

    +

    12.4.15. attr_flush_period

    When calling UpdateAttributes() to update document attributes in real-time, changes are first written to the in-memory copy of attributes @@ -11597,20 +11722,20 @@

    Author

    between those intervals is set with attr_flush_period, in seconds.

    It defaults to 0, which disables the periodic flushing, but flushing will still occur at normal shut-down. -

    Example:

    +

    Example:

     attr_flush_period = 900 # persist updates to disk every 15 minutes
     
    -

    12.4.15. max_packet_size

    +

    12.4.16. max_packet_size

    Maximum allowed network packet size. Limits both query packets from clients, and response packets from remote agents in distributed environment. Only used for internal sanity checks, does not directly affect RAM use or performance. Optional, default is 8M. Introduced in version 0.9.9-rc1. -

    Example:

    +

    Example:

     max_packet_size = 32M
     
    -

    12.4.16. mva_updates_pool

    +

    12.4.17. mva_updates_pool

    Shared pool size for in-memory MVA updates storage. Optional, default size is 1M. @@ -11625,28 +11750,28 @@

    Author

    In the meantime, MVA updates are intended to be used as a measure to quickly catchup with latest changes in the database until the next index rebuild; not as a persistent storage mechanism. -

    Example:

    +

    Example:

     mva_updates_pool = 16M
     
    -

    12.4.17. max_filters

    +

    12.4.18. max_filters

    Maximum allowed per-query filter count. Only used for internal sanity checks, does not directly affect RAM use or performance. Optional, default is 256. Introduced in version 0.9.9-rc1. -

    Example:

    +

    Example:

     max_filters = 1024
     
    -

    12.4.18. max_filter_values

    +

    12.4.19. max_filter_values

    Maximum allowed per-filter values count. Only used for internal sanity checks, does not directly affect RAM use or performance. Optional, default is 4096. Introduced in version 0.9.9-rc1. -

    Example:

    +

    Example:

     max_filter_values = 16384
     
    -

    12.4.19. listen_backlog

    +

    12.4.20. listen_backlog

    TCP listen backlog. Optional, default is 5. @@ -11657,10 +11782,10 @@

    Author

    fail with "connection refused" message. listen_backlog directive controls the length of the connection queue. Non-Windows builds should work fine with the default value. -

    Example:

    +

    Example:

     listen_backlog = 20
     
    -

    12.4.20. read_buffer

    +

    12.4.21. read_buffer

    Per-keyword read buffer size. Optional, default is 256K. @@ -11669,10 +11794,10 @@

    Author

    two associated read buffers (one for document list and one for hit list). This setting lets you control their sizes, increasing per-query RAM use, but possibly decreasing IO time. -

    Example:

    +

    Example:

     read_buffer = 1M
     
    -

    12.4.21. read_unhinted

    +

    12.4.22. read_unhinted

    Unhinted read size. Optional, default is 32K. @@ -11685,43 +11810,43 @@

    Author

    unhinted read size, but raising it for smaller lists. It will not affect RAM use because read buffer will be already allocated. So it should be not greater than read_buffer. -

    Example:

    +

    Example:

     read_unhinted = 32K
     
    -

    12.4.22. max_batch_queries

    +

    12.4.23. max_batch_queries

    Limits the amount of queries per batch. Optional, default is 32.

    Makes searchd perform a sanity check of the amount of the queries -submitted in a single batch when using multi-queries. +submitted in a single batch when using multi-queries. Set it to 0 to skip the check. -

    Example:

    +

    Example:

     max_batch_queries = 256
     
    -

    12.4.23. subtree_docs_cache

    +

    12.4.24. subtree_docs_cache

    Max common subtree document cache size, per-query. Optional, default is 0 (disabled).

    -Limits RAM usage of a common subtree optimizer (see Section 5.11, “Multi-queries”). +Limits RAM usage of a common subtree optimizer (see Section 5.12, “Multi-queries”). At most this much RAM will be spent to cache document entries per each query. Setting the limit to 0 disables the optimizer. -

    Example:

    +

    Example:

     subtree_docs_cache = 8M
     
    -

    12.4.24. subtree_hits_cache

    +

    12.4.25. subtree_hits_cache

    Max common subtree hit cache size, per-query. Optional, default is 0 (disabled).

    -Limits RAM usage of a common subtree optimizer (see Section 5.11, “Multi-queries”). +Limits RAM usage of a common subtree optimizer (see Section 5.12, “Multi-queries”). At most this much RAM will be spent to cache keyword occurrences (hits) per each query. Setting the limit to 0 disables the optimizer. -

    Example:

    +

    Example:

     subtree_hits_cache = 16M
     
    -

    12.4.25. workers

    +

    12.4.26. workers

    Multi-processing mode (MPM). Optional; allowed values are thread_pool, and threads. @@ -11751,10 +11876,10 @@

    Author

    does not suffer from overheads of creating a new thread per every new connection and managing a lot of parallel threads. As of 2.3.1, we still retain workers=threads for the transition period, but thread pool is scheduled to become the only MPM mode. -

    Example:

    +

    Example:

     workers = thread_pool
     
    -

    12.4.26. dist_threads

    +

    12.4.27. dist_threads

    Max local worker threads to use for parallelizable requests (searching a distributed index; building a batch of snippets). Optional, default is 0, which means to disable in-request parallelism. @@ -11782,7 +11907,7 @@

    Author

    Up to dist_threads threads are be created to process those files. That speeds up snippet extraction when the total amount of document data to process is significant (hundreds of megabytes). -

    Example:

    +

    Example:

     index dist_test
     {
         type = distributed
    @@ -11796,7 +11921,7 @@ 

    Author

    dist_threads = 4

    -

    12.4.27. binlog_path

    +

    12.4.28. binlog_path

    Binary log (aka transaction log) files path. Optional, default is build-time configured data directory. @@ -11821,11 +11946,11 @@

    Author

    Otherwise, the default path, which in most cases is the same as working folder, may point to the folder with no write access (for example, /usr/local/var/data). In this case, the searchd will not start at all. -

    Example:

    +

    Example:

     binlog_path = # disable logging
     binlog_path = /var/data # /var/data/binlog.001 etc will be created
     
    -

    12.4.28. binlog_flush

    +

    12.4.29. binlog_flush

    Binary log transaction flush/sync mode. Optional, default is 2 (flush every transaction, sync every second). @@ -11853,10 +11978,10 @@

    Author

    cases, the default hybrid mode 2 provides a nice balance of speed and safety, with full RT index data protection against daemon crashes, and some protection against hardware ones. -

    Example:

    +

    Example:

     binlog_flush = 1 # ultimate safety, low speed
     
    -

    12.4.29. binlog_max_log_size

    +

    12.4.30. binlog_max_log_size

    Maximum binary log file size. Optional, default is 0 (do not reopen binlog file based on size). @@ -11865,10 +11990,10 @@

    Author

    A new binlog file will be forcibly opened once the current binlog file reaches this limit. This achieves a finer granularity of logs and can yield more efficient binlog disk usage under certain borderline workloads. -

    Example:

    +

    Example:

     binlog_max_log_size = 16M
     
    -

    12.4.30. snippets_file_prefix

    +

    12.4.31. snippets_file_prefix

    A prefix to prepend to the local file names when generating snippets. Optional, default is empty. @@ -11889,10 +12014,10 @@

    Author

    This might be useful, for instance, when the document storage locations (be those local storage or NAS mountpoints) are inconsistent across the servers. -

    Example:

    +

    Example:

     snippets_file_prefix = /mnt/common/server1/
     
    -

    12.4.31. collation_server

    +

    12.4.32. collation_server

    Default server collation. Optional, default is libc_ci. @@ -11900,22 +12025,22 @@

    Author

    Specifies the default collation used for incoming requests. The collation can be overridden on a per-query basis. -Refer to Section 5.12, “Collations” section for the list of available collations and other details. -

    Example:

    +Refer to Section 5.13, “Collations” section for the list of available collations and other details.
    +

    Example:

     collation_server = utf8_ci
     
    -

    12.4.32. collation_libc_locale

    +

    12.4.33. collation_libc_locale

    Server libc locale. Optional, default is C. Introduced in version 2.0.1-beta.

    Specifies the libc locale, affecting the libc-based collations. -Refer to Section 5.12, “Collations” section for the details. -

    Example:

    +Refer to Section 5.13, “Collations” section for the details.
    +

    Example:

     collation_libc_locale = fr_FR
     
    -

    12.4.33. mysql_version_string

    +

    12.4.34. mysql_version_string

    A server version string to return via MySQL protocol. Optional, default is empty (return Sphinx version). @@ -11931,10 +12056,10 @@

    Author

    mysql_version_string directive and have searchd report a different version to clients connecting over MySQL protocol. (By default, it reports its own version.) -

    Example:

    +

    Example:

     mysql_version_string = 5.0.37
     
    -

    12.4.34. rt_flush_period

    +

    12.4.35. rt_flush_period

    RT indexes RAM chunk flush check period, in seconds. Optional, default is 10 hours. @@ -11946,10 +12071,10 @@

    Author

    periodic flush checks, and eligible RAM chunks can get saved, enabling consequential binlog cleanup. See Section 4.4, “Binary logging” for more details. -

    Example:

    +

    Example:

     rt_flush_period = 3600 # 1 hour
     
    -

    12.4.35. thread_stack

    +

    12.4.36. thread_stack

    Per-thread stack size. Optional, default is 1M. @@ -11972,10 +12097,10 @@

    Author

    with upto 250 levels, 150K for upto 700 levels, etc. If the stack size limit is not met, searchd fails the query and reports the required stack size in the error message. -

    Example:

    +

    Example:

     thread_stack = 256K
     
    -

    12.4.36. expansion_limit

    +

    12.4.37. expansion_limit

    The maximum number of expanded keywords for a single wildcard. Optional, default is 0 (no limit). @@ -11989,26 +12114,26 @@

    Author

    of such expansions. Setting expansion_limit = N restricts expansions to no more than N of the most frequent matching keywords (per each wildcard in the query). -

    Example:

    +

    Example:

     expansion_limit = 16
     
    -

    12.4.37. watchdog

    +

    12.4.38. watchdog

    Threaded server watchdog. Optional, default is 1 (watchdog enabled). Introduced in version 2.0.1-beta.

    A crashed query in threads multi-processing mode -(workers = threads) +(workers = threads) can take down the entire server. With watchdog feature enabled, searchd additionally keeps a separate lightweight process that monitors the main server process, and automatically restarts the latter in case of abnormal termination. Watchdog is enabled by default. -

    Example:

    +

    Example:

     watchdog = 0 # disable watchdog
     
    -

    12.4.38. sphinxql_state

    +

    12.4.39. sphinxql_state

    Path to a file where current SphinxQL state will be serialized. Available since version 2.1.1-beta. @@ -12018,10 +12143,10 @@

    Author

    If you load UDF functions, but Sphinx crashes, when it gets (automatically) restarted, your UDF and global variables will no longer be available; using persistent state helps a graceful recovery with no such surprises. -

    Example:

    +

    Example:

     sphinxql_state = uservars.sql
     
    -

    12.4.39. ha_ping_interval

    +

    12.4.40. ha_ping_interval

    Interval between agent mirror pings, in milliseconds. Optional, default is 1000. @@ -12034,10 +12159,10 @@

    Author

    by this directive.

    To disable pings, set ha_ping_interval to 0. -

    Example:

    +

    Example:

     ha_ping_interval = 0
     
    -

    12.4.40. ha_period_karma

    +

    12.4.41. ha_period_karma

    Agent mirror statistics window size, in seconds. Optional, default is 60. @@ -12057,23 +12182,23 @@

    Author

    Despite that at most 2 blocks are used for mirror selection, upto 15 last blocks are actually stored, for instrumentation purposes. They can be inspected using -SHOW AGENT STATUS +SHOW AGENT STATUS statement. -

    Example:

    +

    Example:

     ha_period_karma = 120
     
    -

    12.4.41. persistent_connections_limit

    +

    12.4.42. persistent_connections_limit

    The maximum # of simultaneous persistent connections to remote persistent agents. Each time connecting agent defined under 'agent_persistent' we try to reuse existing connection (if any), or connect and save the connection for the future. However we can't hold unlimited # of such persistent connections, since each one holds a worker on agent size (and finally we'll receive the 'maxed out' error, when all of them are busy). This very directive limits the number. It affects the num of connections to each agent's host, across all distributed indexes.

    -It is reasonable to set the value equal or less than max_children option of the agents. -

    Example:

    +It is reasonable to set the value equal or less than max_children option of the agents.
    +

    Example:

     persistent_connections_limit = 29 # assume that each host of agents has max_children = 30 (or 29).
     
    -

    12.4.42. rt_merge_iops

    +

    12.4.43. rt_merge_iops

    A maximum number of I/O operations (per second) that the RT chunks merge thread is allowed to start. Optional, default is 0 (no limit). Added in 2.1.1-beta. @@ -12083,10 +12208,10 @@

    Author

    RT optimization activity will not generate more disk iops (I/Os per second) than the configured limit. Modern SATA drives can perform up to around 100 I/O operations per second, and limiting rt_merge_iops can reduce search performance degradation caused by merging. -

    Example:

    +

    Example:

     rt_merge_iops = 40
     
    -

    12.4.43. rt_merge_maxiosize

    +

    12.4.44. rt_merge_maxiosize

    A maximum size of an I/O operation that the RT chunks merge thread is allowed to start. @@ -12096,14 +12221,14 @@

    Author

    This directive lets you throttle down the I/O impact arising from the OPTIMIZE statements. I/Os bigger than this limit will be broken down into 2 or more I/Os, which will then be accounted as separate I/Os -with regards to the rt_merge_iops +with regards to the rt_merge_iops limit. Thus, it is guaranteed that all the optimization activity will not generate more than (rt_merge_iops * rt_merge_maxiosize) bytes of disk I/O per second. -

    Example:

    +

    Example:

     rt_merge_maxiosize = 1M
     
    -

    12.4.44. predicted_time_costs

    +

    12.4.45. predicted_time_costs

    Costs for the query time prediction model, in nanoseconds. Optional, default is "doc=64, hit=48, skip=2048, match=64" (without the quotes). @@ -12150,10 +12275,10 @@

    Author

    is somewhat more error prone.) It is not necessary to specify all 4 costs at once, as the missed one will take the default values. However, we strongly suggest to specify all of them, for readability. -

    Example:

    +

    Example:

     predicted_time_costs = doc=128, hit=96, skip=4096, match=128
     
    -

    12.4.45. shutdown_timeout

    +

    12.4.46. shutdown_timeout

    searchd --stopwait wait time, in seconds. Optional, default is 3 seconds. @@ -12164,10 +12289,10 @@

    Author

    flushing attributes and updating binlog. And it requires some time. searchd --stopwait will wait up to shutdown_time seconds for daemon to finish its jobs. Suitable time depends on your index size and load. -

    Example:

    +

    Example:

     shutdown_timeout = 5 # wait for up to 5 seconds
     
    -

    12.4.46. ondisk_attrs_default

    +

    12.4.47. ondisk_attrs_default

    Instance-wide defaults for ondisk_attrs directive. Optional, default is 0 (all attributes are loaded in memory). This @@ -12175,50 +12300,67 @@

    Author

    served by this copy of searchd. Per-index directives take precedence, and will overwrite this instance-wide default value, allowing for fine-grain control.

    -

    12.4.47. query_log_min_msec

    +

    12.4.48. query_log_min_msec

    Limit (in milliseconds) that prevents the query from being written to the query log. Optional, default is 0 (all queries are written to the query log). This directive specifies that only queries with execution times that exceed the specified limit will be logged.

    -

    12.4.48. agent_connect_timeout

    +

    12.4.49. agent_connect_timeout

    Instance-wide defaults for agent_connect_timeout parameter. The last defined in distributed (network) indexes.

    -

    12.4.49. agent_query_timeout

    +

    12.4.50. agent_query_timeout

    Instance-wide defaults for agent_query_timeout parameter. The last defined in distributed (network) indexes, or also may be overrided per-query using OPTION clause.

    -

    12.4.50. agent_retry_count

    +

    12.4.51. agent_retry_count

    Integer, specifies how many times sphinx will try to connect and query remote agents in distributed index before reporting fatal query error. Default is 0 (i.e. no retries). This value may be also specified on per-query basis using 'OPTION retry_count=XXX' clause. If per-query option exists, it will override the one specified in config. +

    +Note, that if you use agent mirrors in definition of your distributed +index, then before every attempt of connect sphinx will select different +mirror, according to specified ha_strategyspecified. +

    +For example, if you have 10 mirrors, and surely know, that at least one of them +alive, then you can definitely take the answer to a correct query, +specifying options ha_strategy = roundrobin and +agent_retry_count = 9 in your config.

    -

    12.4.51. agent_retry_delay

    +

    12.4.52. agent_retry_delay

    Integer, in milliseconds. Specifies the delay sphinx rest before retrying to query a remote agent in case it fails. -The value has sense only if non-zero agent_retry_count +The value has sense only if non-zero agent_retry_count or non-zero per-query OPTION retry_count specified. Default is 500. This value may be also specified on per-query basis using 'OPTION retry_delay=XXX' clause. If per-query option exists, it will override the one specified in config.

    -

    12.4.52. qcache_max_bytes

    +

    12.4.53. hostname_lookup

    +

    +Hostnames renew strategy. By default, IP addresses of agent host names are cached at daemon start to avoid extra flood to DNS. +In some cases the IP can change dynamically (e.g. cloud hosting) and it might be desired to don't cache the IPs. Setting this option to 'request' disabled the caching and queries the DNS at each query. +The IP addresses can also be manually renewed with FLUSH HOSTNAMES command. Added in 2.3.2-beta. +

    +

    12.4.54. qcache_max_bytes

    -Integer, in bytes. The maximum RAM allocated for cached result sets. Defaults to 16777216, -or 16 MB. 0 means disable query cache. Added in 2.3.1-beta. Refer to query cache for details. +Integer, in bytes. The maximum RAM allocated for cached result sets. Default is 0, meaning disabled. Added in 2.3.1-beta. Refer to query cache for details. +

    +qcache_max_bytes = 16777216
    +

    -

    12.4.53. qcache_thresh_msec

    +

    12.4.55. qcache_thresh_msec

    Integer, in milliseconds. The minimum wall time threshold for a query result to be cached. Defaults to 3000, or 3 seconds. 0 means cache everything. Added in 2.3.1-beta. -Refer to query cache for details. +Refer to query cache for details.

    -

    12.4.54. qcache_ttl_sec

    +

    12.4.56. qcache_ttl_sec

    Integer, in seconds. The expiration period for a cached result set. Defaults to 60, or 1 minute. -The minimum possible value is 1 second. Added in 2.3.1-beta. Refer to query cache for details. +The minimum possible value is 1 second. Added in 2.3.1-beta. Refer to query cache for details.

    12.5. Common section configuration options

    12.5.1. lemmatizer_base

    @@ -12232,7 +12374,7 @@

    Author

    the base dictionary path. File names are hardcoded and specific to a given lemmatizer; the Russian lemmatizer uses ru.pak dictionary file. The dictionaries can be obtained from the Sphinx website. -

    Example:

    +

    Example:

     lemmatizer_base = /usr/local/share/sphinx/dicts/
     

    12.5.2. on_json_attr_error

    @@ -12245,7 +12387,7 @@

    Author

    By default, JSON format errors are ignored (ignore_attr) and the indexer tool will just show a warning. Setting this option to fail_index will rather make indexing fail at the first JSON format error. -

    Example:

    +

    Example:

     on_json_attr_error = ignore_attr
     

    12.5.3. json_autoconv_numbers

    @@ -12259,7 +12401,7 @@

    Author

    of strings; if the option is 0, such values will be indexed as strings. This conversion applies to any data source, that is, JSON attributes originating from either SQL or XMLpipe2 sources will all be affected. -

    Example:

    +

    Example:

     json_autoconv_numbers = 1
     

    12.5.4. json_autoconv_keynames

    @@ -12273,21 +12415,21 @@

    Author

    will be automatically brought to lower case when indexing. This conversion applies to any data source, that is, JSON attributes originating from either SQL or XMLpipe2 sources will all be affected. -

    Example:

    +

    Example:

     json_autoconv_keynames = lowercase
     

    12.5.5. rlp_root

    Path to the RLP root folder. Mandatory if RLP is used. Added in 2.2.1-beta. -

    Example:

    +

    Example:

     rlp_root = /home/myuser/RLP
     

    12.5.6. rlp_environment

    RLP environment configuration file. Mandatory if RLP is used. Added in 2.2.1-beta. -

    Example:

    +

    Example:

     rlp_environment = /home/myuser/RLP/rlp-environment.xml
     

    12.5.7. rlp_max_batch_size

    @@ -12296,7 +12438,7 @@

    Author

    Do not set this value to more than 10Mb because sphinx splits large documents to 10Mb chunks before processing them by the RLP. This option has effect only if morphology = rlp_chinese_batched is specified. Added in 2.2.1-beta. -

    Example:

    +

    Example:

     rlp_max_batch_size = 100k
     

    12.5.8. rlp_max_batch_docs

    @@ -12304,7 +12446,7 @@

    Author

    Maximum number of documents batched before processing them by the RLP. Optional, default is 50. This option has effect only if morphology = rlp_chinese_batched is specified. Added in 2.2.1-beta. -

    Example:

    +

    Example:

     rlp_max_batch_docs = 100
     

    12.5.9. plugin_dir

    @@ -12315,75 +12457,206 @@

    Author

    Specifies the trusted directory from which the UDF libraries can be loaded. Requires -workers = thread to take effect. -

    Example:

    +workers = thread to take effect.
    +

    Example:

     plugin_dir = /usr/local/sphinx/lib
     

    Appendix A. Sphinx revision history

    -

    Table of Contents

    A.1. Version 2.3.1-beta, 03 mar 2015
    -
    A.2. Version 2.2.11-release, 19 jul 2016
    -
    A.3. Version 2.2.10-release, 07 sep 2015
    -
    A.4. Version 2.2.9-release, 16 apr 2015
    -
    A.5. Version 2.2.8-release, 09 mar 2015
    -
    A.6. Version 2.2.7-release, 20 jan 2015
    -
    A.7. Version 2.2.6-release, 13 nov 2014
    -
    A.8. Version 2.2.5-release, 06 oct 2014
    -
    A.9. Version 2.2.4-release, 11 sep 2014
    -
    A.10. Version 2.2.3-beta, 13 may 2014
    -
    A.11. Version 2.2.2-beta, 11 feb 2014
    -
    A.12. Version 2.2.1-beta, 13 nov 2013
    -
    A.13. Version 2.1.9-release, 03 jul 2014
    -
    A.14. Version 2.1.8-release, 28 apr 2014
    -
    A.15. Version 2.1.7-release, 30 mar 2014
    -
    A.16. Version 2.1.6-release, 24 feb 2014
    -
    A.17. Version 2.1.5-release, 22 jan 2014
    -
    A.18. Version 2.1.4-release, 18 dec 2013
    -
    A.19. Version 2.1.3-release, 12 nov 2013
    -
    A.20. Version 2.1.2-release, 10 oct 2013
    -
    A.21. Version 2.1.1-beta, 20 feb 2013
    -
    A.22. Version 2.0.11-dev, xx xxx xxxx
    -
    A.23. Version 2.0.10-release, 22 jan 2014
    -
    A.24. Version 2.0.9-release, 26 aug 2013
    -
    A.25. Version 2.0.8-release, 26 apr 2013
    -
    A.26. Version 2.0.7-release, 26 mar 2013
    -
    A.27. Version 2.0.6-release, 22 oct 2012
    -
    A.28. Version 2.0.5-release, 28 jul 2012
    -
    A.29. Version 2.0.4-release, 02 mar 2012
    -
    A.30. Version 2.0.3-release, 23 dec 2011
    -
    A.31. Version 2.0.2-beta, 15 nov 2011
    -
    A.32. Version 2.0.1-beta, 22 apr 2011
    -
    A.33. Version 1.10-beta, 19 jul 2010
    -
    A.34. Version 0.9.9-release, 02 dec 2009
    -
    A.35. Version 0.9.9-rc2, 08 apr 2009
    -
    A.36. Version 0.9.9-rc1, 17 nov 2008
    -
    A.37. Version 0.9.8.1, 30 oct 2008
    -
    A.38. Version 0.9.8, 14 jul 2008
    -
    A.39. Version 0.9.7, 02 apr 2007
    -
    A.40. Version 0.9.7-rc2, 15 dec 2006
    -
    A.41. Version 0.9.7-rc1, 26 oct 2006
    -
    A.42. Version 0.9.6, 24 jul 2006
    -
    A.43. Version 0.9.6-rc1, 26 jun 2006
    +

    Table of Contents

    A.1. Version 2.3.2-beta, 09 sep 2016
    +
    A.2. Version 2.3.1-beta, 03 mar 2015
    +
    A.3. Version 2.2.11-release, 19 jul 2016
    +
    A.4. Version 2.2.10-release, 07 sep 2015
    +
    A.5. Version 2.2.9-release, 16 apr 2015
    +
    A.6. Version 2.2.8-release, 09 mar 2015
    +
    A.7. Version 2.2.7-release, 20 jan 2015
    +
    A.8. Version 2.2.6-release, 13 nov 2014
    +
    A.9. Version 2.2.5-release, 06 oct 2014
    +
    A.10. Version 2.2.4-release, 11 sep 2014
    +
    A.11. Version 2.2.3-beta, 13 may 2014
    +
    A.12. Version 2.2.2-beta, 11 feb 2014
    +
    A.13. Version 2.2.1-beta, 13 nov 2013
    +
    A.14. Version 2.1.9-release, 03 jul 2014
    +
    A.15. Version 2.1.8-release, 28 apr 2014
    +
    A.16. Version 2.1.7-release, 30 mar 2014
    +
    A.17. Version 2.1.6-release, 24 feb 2014
    +
    A.18. Version 2.1.5-release, 22 jan 2014
    +
    A.19. Version 2.1.4-release, 18 dec 2013
    +
    A.20. Version 2.1.3-release, 12 nov 2013
    +
    A.21. Version 2.1.2-release, 10 oct 2013
    +
    A.22. Version 2.1.1-beta, 20 feb 2013
    +
    A.23. Version 2.0.11-dev, xx xxx xxxx
    +
    A.24. Version 2.0.10-release, 22 jan 2014
    +
    A.25. Version 2.0.9-release, 26 aug 2013
    +
    A.26. Version 2.0.8-release, 26 apr 2013
    +
    A.27. Version 2.0.7-release, 26 mar 2013
    +
    A.28. Version 2.0.6-release, 22 oct 2012
    +
    A.29. Version 2.0.5-release, 28 jul 2012
    +
    A.30. Version 2.0.4-release, 02 mar 2012
    +
    A.31. Version 2.0.3-release, 23 dec 2011
    +
    A.32. Version 2.0.2-beta, 15 nov 2011
    +
    A.33. Version 2.0.1-beta, 22 apr 2011
    +
    A.34. Version 1.10-beta, 19 jul 2010
    +
    A.35. Version 0.9.9-release, 02 dec 2009
    +
    A.36. Version 0.9.9-rc2, 08 apr 2009
    +
    A.37. Version 0.9.9-rc1, 17 nov 2008
    +
    A.38. Version 0.9.8.1, 30 oct 2008
    +
    A.39. Version 0.9.8, 14 jul 2008
    +
    A.40. Version 0.9.7, 02 apr 2007
    +
    A.41. Version 0.9.7-rc2, 15 dec 2006
    +
    A.42. Version 0.9.7-rc1, 26 oct 2006
    +
    A.43. Version 0.9.6, 24 jul 2006
    +
    A.44. Version 0.9.6-rc1, 26 jun 2006
    -

    A.1. Version 2.3.1-beta, 03 mar 2015

    -

    Major features

    • added query cache

    • -
    • added thread pool mode, and the respective workers = thread_pool, - max_children, net_workers, - queue_max_length directives +

      A.1. Version 2.3.2-beta, 09 sep 2016

      +

      Major features

      • Searchd now uses mmap(). Daemon is available immediately and spawns a separate thread that loads the indexes.
      • +
      • Built-in suggest using CALL QSUGGEST statement for indexes with infixing enabled and dict=keywords
      • +
      • HTTP protocol interface
      • +
      +

      New functions and options

      +

      Changes and improvements

      • changed SHOW INDEX STATUS now displays performed number of queries, query times and found rows of last 1,5,15 minutes and total since daemon start
      • +
      • changed retry_count behaviour
      • +
      • added wildcard support and new options for CALL KEYWORDS SphinxQL statement
      • +
      • faster RT inserts
      • +
      • faster CSV/TSV indexing
      • +
      • query cache is disabled by default
      • +
      • indexer --keeep-attrs support specific path
      • +
      • daemon now picks changed index path when it receives HUP
      • +
      • added alias support for MVA attributes
      • +
      • added SphinxQL support for comparison, IN, and BETWEEN conditions over ANY/ALL(mva)
      • +
      • added explicit JSON type conversion in WHERE clause
      • +
      +

      Bug fixes

      • fixed #2503 update of attributes at index prevents binlog from clean

      • +
      • fixed #2516 suggest for index with exact_word or morphology options

      • +
      • fixed #2507 .NET Connector overflow exception (unsigned id support)

      • +
      • Fixed initial round-robin counter

      • +
      • Thread-safety checks added (backported)

      • +
      • Refactored dl-staff

      • +
      • added per-index statistics to 'show index status'

      • +
      • fixed #2502 final calculation of expression at RT index (optimized calls count)

      • +
      • Refactored ha-staff

      • +
      • Added begin() and end() to CSphVector, CSphTightVector

      • +
      • fixed error handle for API protocol net loop

      • +
      • Fixed crash on exit (revealed in test 234 on Ubuntu 16.04)

      • +
      • added token_filter and string list filter to API (php, python); set client ver to 32; fixed filter string list escape; updated token_filter plugin interface

      • +
      • Backported behavior for pthread_mutex_timedlock, SCHED_IDLE

      • +
      • Fast runaround for issue #877

      • +
      • fixed #2496 profiler counts multiple sequential queries with thread_pool worker

      • +
      • fixed #1825 added support for embedded zeroes in fields for pgsql, odbc data sources

      • +
      • PHP sphinx api: renamed SphinxClient c-tr to __construct

      • +
      • fixed #2461 crash of daemon with worker thread_pool on high load of fast queries

      • +
      • fixed uninitialized m_bSync variable

      • +
      • fixed #2461 crash of daemon with worker thread_pool on high load of fast queries

      • +
      • fixed #2456 daemon stuck on rotating index due to high amount of search threads

      • +
      • Fixed internal date calculation which caused different result of day(NUM) function in different timezones

      • +
      • fixed #2400 crash of daemon on CALL KEYWORDS to RT index with disk chunks and regexp filter; added regression to test 194

      • +
      • added #2393 feature wildcards for CALL KEYWORDS; bunch of options (fold_wildcards, fold_lemmas, fold_blended, expansion_limit, stats); added cases to test 254; fixed github #17

      • +
      • fixed #2390 latency at workers thread_pool added net-loop wakeup on job done added send at the end of job then transfer left data to net-loop added spin-wait at polling wait added socket_pair emulation for windows version of net-loop added eventfd checks to configure

      • +
      • added length() for expressions, disabled Expr_Time_c hashing, fixed test_253

      • +
      • fixed Expr_Time and Expr_Timediff always returning empty strings

      • +
      • fixed minor expression hash calc bug

      • +
      • added a big test for GetHash in expressions; added Expr_Now_c; fixed template expression name check

      • +
      • fixed several filters vs qcache issues

      • +
      • check filter expression tree when caching queries

      • +
      • fixed #2384 replace large index list at message to distributed index name; added regression to test 153

      • +
      • fixed #2384 fold large index list at message from distributed index; added regression to test 153

      • +
      • fixed #2372 ALL(mva) filter passed from master to agent as legacy filter; added regressions to test 244; set master version to 13

      • +
      • fixed #2371 warning on query via API with filter on MVA attribute; added cases to test 244

      • +
      • fixed query cache vs filters with expressions

      • +
      • fixed #2351 ALTER RECONFIGURE skipped for RT index with only re2 or rlp changes; added regression as test 252 set binlog version to 6

      • +
      • fixed daemon to work with --nodetach option after previous commit breaks it

      • +
      • fixed #2358 mmap memory to be fork-less fixed bitvec copying fixing false socket shutdown at net-loop added ping handling to net-loop instead API command added feature to distributed index to break kill-list of local indexes sequence

      • +
      • fixed a memory leak on inserts with aot enabled

      • +
      • fixed #2062 attribute name shadows field with same name; added check at ALTER and RT index config; added regressions to test 214

      • +
      • fixed #2330 daemon shutdown stopped waiting searching threads

      • +
      • fixed dlopen bug on linux while reloading udf

      • +
      • fixed (searchd.cpp split issues): stats mutex leak and crash of dashboard at distributed index setup due to config reload; added tests 248, 249

      • +
      • fixed #2299 crash of indexer due to empty xmlpipe2 source with embedded schema; added regression to test 68

      • +
      • fixed RLP vs non-CJK fields (missing trailing zero)

      • +
      • refactored RLP to work as a field filter (preprocessor)

      • +
      • fixed RLP enabled build

      • +
      • fixed ubertest to pass on different linux platforms

      • +
      • added SphinxQL support for comparison, IN, and BETWEEN conditions over ANY/ALL(mva); and added missing "ident NOT BETWEEN x AND y" syntax

      • +
      • fixed #2277 network connection timeout overflow for agent with worker = thread_pool added test 243

      • +
      • fixed mantis-2156 (COUNT(DISTINCT attr) does not work with strings)

      • +
      • updated old links to code.google.com to new links to github.com

      • +
      • fixed embedded zeroes in rt inserts

      • +
      • fixed mantis-1825 (no support for embedded zeroes in fields)

      • +
      • Removed CodeBlocks. Modified .gitignore for clion

      • +
      • fixed examples version in documentation, rebuilt docs

      • +
      • added #2262 new blend_mode trim_all added cases to test 192

      • +
      • fixed #2261 ngram chars presence at charset_table, now it warns for such config added regression to tests fixed test 19

      • +
      • fixed multiform handling (multiform + lemmatizer case) in CALL KEYWORDS

      • +
      • fixed libre2.patch to be in sync with latest re2 changes

      • +
      • Eliminated gcc warnings in http_parser.c. Eliminated msvc warning in sphinxquery.cpp.

      • +
      • Windows yy.cmd synced with bash yy.sh script

      • +
      • lex/bison files and rules fixed for bison >1.875

      • +
      • do not create tokenizer for every document in batch insert, create it just once and reuse instead

      • +
      • fixed bug #1766 (UPDATE does not correctly update negative values for bigint and float attributes)

      • +
      • fixed hits duplicates at RT index on document indexing fixed aggregate depended expression at RT index fixed tests 162, 192, 205 to pass rt mode updated visual studio 2013 project file

      • +
      • optimized away crazy memmove() in CSV/TSV parser, much faster CSV/TSV indexing (more than 10x on a synthetic test)

      • +
      • field lengths are no longer required to be last in schema

      • +
      • initial per-index field lengths support for RT, fixes test 217 --rt

      • +
      • fixed CSphMatchVariant::ToDocid conversion to match plain index behavior (fixes test 047 --rt)

      • +
      • fixed duplicates handling vs RT INSERT (first row wins now, not the last one)

      • +
      • added fetched_* counters collection to rt (fixes test_209 in --rt mode)

      • +
      • fixed keyword expansion in rt with docinfo=inline (fixes test_126 in --rt mode)

      • +
      • unified CSphIndex::SetupQueryTokenizer and sphSetupQueryTokenizer implementations, fixes most (but not all) of test 165 --rt

      • +
      • fixed off-by-1 in non-stemmed stopword check; fixed that lemmas got stemmed; fixed that wordforms could get applied twice through exact_dict; and rebuilt test 207 accordingly

      • +
      • improved RT insert speed (%7 gain in my batch insert test case)

      • +
      • indextool needs to preread checkpoints and infixes too

      • +
      • fixed mlock option on caching index files

      • +
      • fixed #2223 query cache last entry eviction during search cause daemon to hung

      • +
      • Expr_Rand_c speedup and fixes, thread-safe XorShift64, updated test 125

      • +
      • fixed #2053 added RAND() function

      • +
      • fixed #2230 memory corruption at daemon on inserting data into RT with bad HTML markup added regression to tests

      • +
      • fixed span length and lcs calculation in proximity queries

      • +
      • fixed performance on reading a lot of small buffers

      • +
      • fixed #2223 crash at watchdog shutdown on some OSes like centos, rhel

      • +
      • optimize RT inserts

      • +
      • refactoring

      • +
      • improving insertion speed into RT index (5% gain in my test)

      • +
      • refactoring, removed unneeded code

      • +
      • added RELOAD INDEX to SphinxQL

      • +
      • fixed #2209 prohibited order by MVA, added error message

      • +
      • fixed undefined reference to void ISphOutputBuffer::SendT in release version

      • +
      • new qcache defaults

      • +
      • lets handle 32bit weights in qcache

      • +
      • fixed a couple of memory leaks

      • +
      • fixed typo in vs2008 proj; added lost files to codeblocks projects

      • +
      • searchd.cpp splitted

      • +
      • fixed agent dashboard setup due to remove of workers

      • +
      • added test_232, positions coming out of the matching engine

      • +
      • fixed several bugs in qcache (bug #2191 and some more)

      • +
      • use RAII on CSphMutex instead of separate initialization method, fixed clang warnings

      • +
      • added feature #2195 memory mapping of all index files with separated caching thread daemon (re)start should be immediately and fix of 'old' ondisk* issue fixed update of attributes for indexes with ondisk* option got rig and prohibit 32bit to 64bit index conversion on load got rid of all shared memory code

      • +
      • fixes in variant_match model generation (more compatible attr types, and better diff report)

      • +
      • fixed HTML stripper handling of broken PI (processing instruction) tags

      • +
      • added #2179 SphinxQL client timeout searchd section option sphinxql_timeout, default value is 900 seconds

      • +
      +

      A.2. Version 2.3.1-beta, 03 mar 2015

      +

      Major features

      -

      Removals

      • removed fork and prefork modes

      • +

        Removals

        • removed fork and prefork modes

        • removed prefork_rotation_throttle directive

        -

        Minor features

        • added RELOAD PLUGINS SphinxQL statement

        • -
        • added FLUSH ATTRIBUTES SphinxQL statement

        • +

          Minor features

          -

          Bug fixes

          • fixed #2167, --keep_attrs did not work with --rotate

          • +

            Bug fixes

            • fixed #2167, --keep_attrs did not work with --rotate

            • fixed #2161, RT indexing could fail with index_token_filter because of multiple errorneous filter loads

            • fixed #2154, crash in ZONE operator

          -

          A.2. Version 2.2.11-release, 19 jul 2016

          -

          New features and changes

          • fixed #2499 crash of daemon at phrase node with star shift; added regressions to test 41

          • +

            A.3. Version 2.2.11-release, 19 jul 2016

            +

            Bug fixes

            • fixed #2499 crash of daemon at phrase node with star shift; added regressions to test 41

            • Backported RE2 patch and solutions from master

            • fixed #2488 performance issue with matching hitless terms

            • fixed #2498 wrong profiling report (was filter instead get_hits)

            • @@ -12459,23 +12732,23 @@

              New features and changes

              fixed #2320 rt index crashes on groupby() for large JSON fields

            • fixed indextool --check vs nested JSON objects

            -

            A.3. Version 2.2.10-release, 07 sep 2015

            -

            New features and changes

            • added #2310, --replay-flags=ignore-open-errors switch to replay binlogs even if some files are missing

            • +

              A.4. Version 2.2.10-release, 07 sep 2015

              +

              New features and changes

              • added #2310, --replay-flags=ignore-open-errors switch to replay binlogs even if some files are missing

              • added #2234, support for empty string values (stringattr='') in WHERE clause

              • added #2233, support for IN() filters with string values

              • added #2232, string collation support in SELECT expressions

              • added #2121, "where flt<>val" support, "where fltcol=intval" and "where fltcol!=intval" conditions

              • added #2119, new indexer exit code 2 on a --rotate failure

              • fixed #2207, unified min_prefix_len, min_infix_len behavior between RT and plain indexes

              • -
              • fixed #2020, unified (and greatly shortened) the list of SphinxQL reserved keywords between indexer checks, SphinxQL parser checks, and the documentation

              • +
              • fixed #2020, unified (and greatly shortened) the list of SphinxQL reserved keywords between indexer checks, SphinxQL parser checks, and the documentation

              -

              Major bug fixes

              • fixed #2251, expressions dependent on aggregation results (eg. as in SELECT MAX(id) m1, m1+10 m2) were not computed properly in RT indexes

              • +

                Major bug fixes

                • fixed #2251, expressions dependent on aggregation results (eg. as in SELECT MAX(id) m1, m1+10 m2) were not computed properly in RT indexes

                • fixed #2248, LENGTH() was 2x off for 64-bit MVA attributes

                • -
                • fixed #2146, OPTIMIZE could occasionally break big RT indexes (by violating 4/16 GB string/MVA per chunk size limits)

                • +
                • fixed #2146, OPTIMIZE could occasionally break big RT indexes (by violating 4/16 GB string/MVA per chunk size limits)

                • fixed #2118, multi-wordforms with clashing prefixes were processed in a wrong order

                • fixed #1926, disabled and later re-enabled indexes were not picked up again by searchd on SIGHUP

                -

                Minor bug fixes

                • fixed #2312, using FACTORS() along with a subtree cache could crash (because on wrong qpos values from the cache passed to the ranker)

                • +

                  Minor bug fixes

                  • fixed #2312, using FACTORS() along with a subtree cache could crash (because on wrong qpos values from the cache passed to the ranker)

                  • fixed #2310, comparing a non-existent JSON field with a string constant (as in jcol.some_typo='abc') could crash

                  • fixed #2309, UDFs with BIGINT return were saved without a type into sphinxql_state file

                  • fixed #2305, punctuation chars not mentioned in charset_table could still occasionally affect term position in the query

                  • @@ -12491,7 +12764,7 @@

                    Minor bug fixes

                      fixed #2242, added whitespaces support to SNIPPET() before_match/after_matches options, and fixed the handling of repeated %PASSAGE_ID% macros

                    • fixed #2238, added a few safeguards to prevent crashes/freezes on loading damaged RT RAM chunks

                    • fixed #2237, ATTACH-ing a part of a distributed index did not correctly invalidate it, could crash

                    • -
                    • fixed #2235, UPDATE ... OPTION strict=1 did not with plain indexes

                    • +
                    • fixed #2235, UPDATE ... OPTION strict=1 did not with plain indexes

                    • fixed #2225, searchd crashed on startup if agent host string was empty

                    • fixed #2127, indextool did not handle RT indexes with updated JSON attributes in them

                    • fixed #2117, GEODIST() calls with hash {in=deg,out=mi} arguments on a distributed index did not parse correctly

                    • @@ -12515,14 +12788,14 @@

                      Minor bug fixes

                        fixed searchd crash when trying to load a damaged index with an incorrect row count

                      • fixed indextool MVA checks (an index error could sometimes be mistakenly reported)

                    -

                    A.4. Version 2.2.9-release, 16 apr 2015

                    -

                    Bug fixes

                    • fixed #2228, removed searchd shutdown behavior on failed connection

                    • +

                      A.5. Version 2.2.9-release, 16 apr 2015

                      +

                      Bug fixes

                      • fixed #2228, removed searchd shutdown behavior on failed connection

                      • fixed #2208, ZONESPANLIST() support for RT indexes

                      • fixed #2203, legacy API SELECT list

                      • fixed #2201, indextool false positive error on RT index

                      • fixed #2201, crash with string comparison at expressions and expression ranker

                      • fixed #2199, invalid packedfactors JSON output for index with stopwords

                      • -
                      • fixed #2197, TRUNCATE fails to remove disk chunk files after calling OPTIMIZE

                      • +
                      • fixed #2197, TRUNCATE fails to remove disk chunk files after calling OPTIMIZE

                      • fixed #2196, .NET connector issue (UTC_TIMESTAMP() support)

                      • fixed #2190, incorrect GROUP BY outer JSON object

                      • fixed #2176, agent used ha_strategy=random instead of specified in config

                      • @@ -12532,10 +12805,10 @@

                        Bug fixes

                          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

                      -

                      A.5. Version 2.2.8-release, 09 mar 2015

                      -

                      Minor features

                      • added #2166, per agent HA strategy for distributed indexes

                      • +

                        A.6. Version 2.2.8-release, 09 mar 2015

                        +

                        Minor features

                        • added #2166, per agent HA strategy for distributed indexes

                        -

                        Bug fixes

                        • fixed #2182, incorrect query results with multiple same destination wordforms

                        • +

                          Bug fixes

                          • 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

                          • @@ -12545,11 +12818,11 @@

                            Bug fixes

                              fixed WLCCS ranking factor computation

                            • fixed memory leak on queries with ZONEs

                          -

                          A.6. Version 2.2.7-release, 20 jan 2015

                          -

                          Minor features

                          • added #2112, string equal comparison support for IF() function (for JSON and string attributes)

                          • +

                            A.7. Version 2.2.7-release, 20 jan 2015

                            +

                            Minor features

                            • added #2112, string equal comparison support for IF() function (for JSON and string attributes)

                            • added #2153, IN() support for mixed and top-level JSON arrays

                            -

                            Bug fixes

                            • fixed #2158, crash at RT index after morphology changed to AOT after index was created

                            • +

                              Bug fixes

                              • 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

                              • @@ -12559,11 +12832,11 @@

                                Bug fixes

                                  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 seamless rotation in prefork mode

                                • fixed snippets crash with blend chars at the beginning of a string

                              -

                              A.7. Version 2.2.6-release, 13 nov 2014

                              -

                              Bug fixes

                              • fixed #2104, ALL()/ANY()/INDEXOF() support for distributed indexes

                              • +

                                A.8. Version 2.2.6-release, 13 nov 2014

                                +

                                Bug fixes

                                • 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

                                • @@ -12571,39 +12844,39 @@

                                  Bug fixes

                                    fixed possibly memory leak in plugin creation function

                                  • indexation of duplicate documents

                                -

                                A.8. Version 2.2.5-release, 06 oct 2014

                                -

                                New minor features

                                • added OPTION rand_seed which affects ORDER BY RAND()

                                • +

                                  A.9. Version 2.2.5-release, 06 oct 2014

                                  +

                                  New minor features

                                  • added OPTION rand_seed which affects ORDER BY RAND()

                                  -

                                  Bug fixes

                                  • fixed #2042, indextool fails with field mask on 32+ fields

                                  • +

                                    Bug fixes

                                    • 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 #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

                                  -

                                  A.9. Version 2.2.4-release, 11 sep 2014

                                  -

                                  New major features

                                  • added ALTER RTINDEX rt1 RECONFIGURE which allows to change RT index settings on the fly

                                  • -
                                  • added SHOW INDEX idx1 SETTINGS statement

                                  • +

                                    A.10. Version 2.2.4-release, 11 sep 2014

                                    +

                                    New major features

                                    • added ALTER RTINDEX rt1 RECONFIGURE which allows to change RT index settings on the fly

                                    • +
                                    • added SHOW INDEX idx1 SETTINGS statement

                                    • added ability to specify several destination forms for the same source wordform (as a result, N:M mapping is now available)

                                    • added blended chars support to exceptions

                                    -

                                    New minor features

                                    • added ANY()/ALL()/INDEXOF() support for JSON string arrays

                                    • +

                                      New minor features

                                      -

                                      Optimizations and removals

                                      • optimized json_autoconv_numbers option speed

                                      • +

                                        Optimizations and removals

                                        -

                                        Bug fixes

                                        • fixed #2027, slow queries to multiple indexes with large kill-lists

                                        • +

                                          Bug fixes

                                          • fixed #2027, slow queries to multiple indexes with large kill-lists

                                          • fixed #2022, blend characters of matched word must not be outside of snippet passage

                                          • fixed #2021, output units in GEODIST() function

                                          • fixed #2018, different wildcard behaviour in RT and plain indexes

                                          • @@ -12615,8 +12888,8 @@

                                            Bug fixes

                                              fixed buffer overrun when sizing packed factors (with way too many fields) in expression ranker

                                            • fixed cpu time logging for cases where work is done in child threads or agents

                                          -

                                          A.10. Version 2.2.3-beta, 13 may 2014

                                          -

                                          New features

                                          • added #1920, charset_table aliases

                                          • +

                                            A.11. Version 2.2.3-beta, 13 may 2014

                                            +

                                            New features

                                            • added #1920, charset_table aliases

                                            • added #1887, filtering over string attributes

                                            • added #1860, USERVARs for distributed indexes

                                            • added #1689, GROUP BY JSON attributes

                                            • @@ -12625,11 +12898,11 @@

                                              New features

                                              -

                                              Optimizations and removals

                                              • improved speed of concurrent insertion in RT indexes

                                              • +

                                                Optimizations and removals

                                                • improved speed of concurrent insertion in RT indexes

                                                • removed max_matches config key

                                                -

                                                Bug fixes

                                                • fixed #1946, IN() function support for string attributes

                                                • -
                                                • fixed #1942, crash in SHOW THREADS command

                                                • +

                                                  Bug fixes

                                                  • fixed #1946, IN() function support for string attributes

                                                  • +
                                                  • fixed #1942, crash in SHOW THREADS command

                                                  • fixed #1922, crash on snippet generation for queries with duplicated words

                                                  • fixed #1919, TSV bitcount attributes indexation issue

                                                  • fixed #1916, COUNT(*) with empty result set

                                                  • @@ -12643,21 +12916,21 @@

                                                    Bug fixes

                                                  -

                                                  A.11. Version 2.2.2-beta, 11 feb 2014

                                                  -

                                                  New features

                                                  • added #1604, CALL KEYWORDS can show now multiple lemmas for a keyword

                                                  • -
                                                  • added ALTER TABLE DROP COLUMN

                                                  • +

                                                    A.12. Version 2.2.2-beta, 11 feb 2014

                                                    +

                                                    New features

                                                    -

                                                    Optimizations, behavior changes, and removals

                                                    • changed #1797, per-term statistics report (expanded terms fold to their respective substrings)

                                                    • -
                                                    • changed default thread_stack value to 1M

                                                    • +

                                                      Optimizations, behavior changes, and removals

                                                      • changed #1797, per-term statistics report (expanded terms fold to their respective substrings)

                                                      • +
                                                      • changed default thread_stack value to 1M

                                                      • changed local directive in a distributed index which takes now a list (eg. local=shard1,shard2,shard3)

                                                      • deprecated SetMatchMode() API call

                                                      • deprecated SetOverride() API call

                                                      • @@ -12672,8 +12945,8 @@

                                                        Optimizations, behavior changes, and removals

                                                        <
                                                      • removed deprecated str2wordcount attributes

                                                      • removed support for client versions 0.9.6 and below

                                                    -

                                                    A.12. Version 2.2.1-beta, 13 nov 2013

                                                    -

                                                    Major new features

                                                    • added ALTER TABLE that can add attributes to disk and RT indexes on the fly
                                                    • +

                                                      A.13. Version 2.2.1-beta, 13 nov 2013

                                                      +

                                                      Major new features

                                                      • added ALTER TABLE that can add attributes to disk and RT indexes on the fly
                                                      • added ATTACH support for non-empty RT target indexes
                                                      • added Chinese segmentation with RLP (Rosette Linguistics platform) support
                                                      • added English, German lemmatization support
                                                      • @@ -12684,23 +12957,23 @@

                                                        Major new features

                                                        added full JSON attributes support, arbitrary JSON documents (with subobjects etc) can now be stored
                                                      • added in-place JSON updates for scalar values
                                                      • added index type=template directive (allows CALL KEYWORDS, CALL SNIPPETS)
                                                      • -
                                                      • added ondisk_attrs, ondisk_attrs_default directives that keep attributes on disk
                                                      • +
                                                      • added ondisk_attrs, ondisk_attrs_default directives that keep attributes on disk
                                                      • added table functions mechanism, and REMOVE_REPEATS() table function
                                                      • added support for arbitrary expressions in WHERE for DELETE queries
                                                      -

                                                      Ranking related features

                                                      • added OPTION local_df=1, an option to aggregate IDFs over local indexes (shards)
                                                      • +

                                                        Ranking related features

                                                        • added OPTION local_df=1, an option to aggregate IDFs over local indexes (shards)
                                                        • added UDF XXX_reinit() method to reload UDFs with workers=prefork
                                                        • added comma-separated syntax to OPTION idf, tfidf_unnormalized and tfidf_normalized flags
                                                        • added lccs, wlccs, exact_order, min_gaps, and atc ranking factors
                                                        • added sphinx_get_XXX_factors(), a faster interface to access PACKEDFACTORS() in UDFs
                                                        • added support for exact_hit, exact_order field factors when using more than 32 fields (exact_hit, exact_order)
                                                        -

                                                        Instrumentation features

                                                        • added DESCRIBE and --dumpheader support for tokencount attributes (generated by index_field_lengths=1 directive)
                                                        • -
                                                        • added RT index query profile, percentages, totals to SHOW PROFILE
                                                        • +

                                                          Instrumentation features

                                                          • added DESCRIBE and --dumpheader support for tokencount attributes (generated by index_field_lengths=1 directive)
                                                          • +
                                                          • added RT index query profile, percentages, totals to SHOW PROFILE
                                                          • added predicted_time, dist_predicted_time, fetched_docs, fetched_hits counters to SHOW META
                                                          • -
                                                          • added total_tokens and disk_bytes counters to SHOW INDEX STATUS
                                                          • +
                                                          • added total_tokens and disk_bytes counters to SHOW INDEX STATUS
                                                          -

                                                          General features

                                                          • added ALL(), ANY() and INDEXOF() functions for JSON subarrays
                                                          • +

                                                            General features

                                                            • added ALL(), ANY() and INDEXOF() functions for JSON subarrays
                                                            • added MIN_TOP_WEIGHT(), MIN_TOP_SORTVAL() functions
                                                            • added TOP() aggregate function to expression ranker
                                                            • added a check for duplicated tail hit positions in indextool --check
                                                            • @@ -12710,15 +12983,15 @@

                                                              General features

                                                                added indexer --nohup and indextool --rotate switches to check index files before rotating them
                                                              • added scientific notation support for JSON attributes (as per RFC 4627)
                                                              • added several SphinxQL statements to fix MySQL Workbench connection issues (LIKE for session variables, etc.)
                                                              • -
                                                              • added shutdown_timeout directive to searchd config section
                                                              • +
                                                              • added shutdown_timeout directive to searchd config section
                                                              • added signed values support for INTEGER() and UINT() function
                                                              • added snippet generation options to SNIPPET() function
                                                              • added string filter support in distributed queries, SphinxAPI, SphinxQL query log
                                                              • added support for mixed distributed and local index queries (SELECT * FROM dist1,dist2,local3), and index_weights option for that case
                                                              -

                                                              Optimizations, behavior changes, and removals

                                                              • optimized JSON attributes access (1.12x to 2.0x+ total query speedup depending on the JSON data)
                                                              • +

                                                                Optimizations, behavior changes, and removals

                                                                • optimized JSON attributes access (1.12x to 2.0x+ total query speedup depending on the JSON data)
                                                                • optimized SELECT (1.02x to 3.5x speedup, depending on index schema size)
                                                                • -
                                                                • optimized UPDATE (up to 3x faster on big updates)
                                                                • +
                                                                • optimized UPDATE (up to 3x faster on big updates)
                                                                • optimized away internal threads table mutex contention with workers=threads and 1000s of threads
                                                                • changed [emptyword -foo] query behavior in cases when emptyword is a stopword or an overshort word, made such queries computable rather than erroneous
                                                                • changed post-morphology wordforms behavior, now it works as 'if ( stem(token)==stem(abc) ) emit(def)'
                                                                • @@ -12727,13 +13000,13 @@

                                                                  Optimizations, behavior changes, and removals

                                                                  <
                                                                • disallowed dashes in index names in API requests (just like in SphinxQL)
                                                                • removed legacy xmlpipe data source v1, compat_sphinxql_magics directive, SetWeights() SphinxAPI call, and SPH_SORT_CUSTOM SphinxAPI mode
                                                                -

                                                                Bug fixes

                                                                • fixed #1734, unquoted literal in json subscript could cause a crash, returns 'unknown column' now.
                                                                • +

                                                                  Bug fixes

                                                                  • fixed #1734, unquoted literal in json subscript could cause a crash, returns 'unknown column' now.
                                                                  • fixed #1683, under certain conditions stopwords were not taken into account in RT indexes
                                                                  • fixed #1648, #1644, when using AOT lemmas with snippet generation, not all the forms got highlighted
                                                                  • fixed #1549, OPTIONidf=tfidf_normalized was ignored for distributed queries
                                                                  • fixed that ORDER BY RAND() was not affected by index_weights
                                                                  • fixed that float updates with integer values in SphinxQL mistakenly set the float to 0
                                                                  • -
                                                                  • fixed that predicted_time was not accumulated with dist_threads
                                                                  • +
                                                                  • fixed that predicted_time was not accumulated with dist_threads
                                                                  • fixed GROUP_CONCAT result length limit (was implicitly limited by 1024 bytes)
                                                                  • fixed agent query distribution in HA mirroring
                                                                  • fixed duplicates check for quorum operator, it works ok now for expanded keywords
                                                                  • @@ -12741,26 +13014,26 @@

                                                                    Bug fixes

                                                                  -

                                                                  A.13. Version 2.1.9-release, 03 jul 2014

                                                                  -

                                                                  Bug fixes

                                                                  • fixed #1994, parsing of empty JSON arrays

                                                                  • +

                                                                    A.14. Version 2.1.9-release, 03 jul 2014

                                                                    +

                                                                    Bug fixes

                                                                    • fixed #1994, parsing of empty JSON arrays

                                                                    • fixed #1987, handling of index_exact_words with AOT morphology and infixes on

                                                                    • fixed #1984, teaching HTML parser to handle hex numbers

                                                                    • fixed #1983, master and agents networking issue

                                                                    • fixed #1977, escaping of characters doens't work with exceptions

                                                                    • fixed #1968, parsing of WEIGHT() function (queries to distributed indexes affected)

                                                                    -

                                                                    A.14. Version 2.1.8-release, 28 apr 2014

                                                                    -

                                                                    Bug fixes

                                                                    • fixed #1937, crash at SENTENCE operator

                                                                    • +

                                                                      A.15. Version 2.1.8-release, 28 apr 2014

                                                                      +

                                                                      Bug fixes

                                                                      • fixed #1937, crash at SENTENCE operator

                                                                      • fixed #1933, quorum operator works incorrectly if it's number is exception

                                                                      • fixed #1932, fixed daemon index recovery after failed rotation

                                                                      • fixed #1923, crash at indexer with dict=keywords

                                                                      • fixed #1918, fixed 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 #1878, daemon doesn't reset regexp_filter after rotation with seamless_rotate=0

                                                                      • fixed #1769, crash after unsuccessful INSERT at RT index

                                                                      • fixed #1682, field end modifier doesn't work with words containing blended chars

                                                                      -

                                                                      A.15. Version 2.1.7-release, 30 mar 2014

                                                                      -

                                                                      Bug fixes

                                                                      • fixed #1917, field limit propagation outside of group

                                                                      • +

                                                                        A.16. Version 2.1.7-release, 30 mar 2014

                                                                        +

                                                                        Bug fixes

                                                                        • 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

                                                                        • @@ -12774,8 +13047,8 @@

                                                                          Bug fixes

                                                                            fixed unnecessary escaping in JSON result set

                                                                          • fixed Quick Tour documentation chapter

                                                                        -

                                                                        A.16. Version 2.1.6-release, 24 feb 2014

                                                                        -

                                                                        Bug fixes

                                                                        • fixed #1857, crash in arabic stemmer

                                                                        • +

                                                                          A.17. Version 2.1.6-release, 24 feb 2014

                                                                          +

                                                                          Bug fixes

                                                                          • fixed #1857, crash in arabic stemmer

                                                                          • fixed #1875, fixed crash on adding documents with long words in dict=keyword index with morphology and infixes enabled

                                                                          • fixed #1876, crash on words with large codepoints and infix searches

                                                                          • fixed #1880, crash on multiquery with one incorrect query

                                                                          • @@ -12793,35 +13066,35 @@

                                                                            Bug fixes

                                                                              fixed #1759, indextool false positives on persistent MVA checking

                                                                            • fixed GROUP BY id

                                                                            • fixed crash on sending empty snippet result

                                                                            • -
                                                                            • fixed index corruption in UPDATE queries with non-existent attributes

                                                                            • +
                                                                            • fixed index corruption in UPDATE queries with non-existent attributes

                                                                          -

                                                                          A.17. Version 2.1.5-release, 22 jan 2014

                                                                          -

                                                                          Bug fixes

                                                                          • fixed #1848, infixes and morphology clash

                                                                          • +

                                                                            A.18. Version 2.1.5-release, 22 jan 2014

                                                                            +

                                                                            Bug fixes

                                                                            • fixed #1848, infixes and morphology clash

                                                                            • fixed #1823, indextool fails to handle indexes with lemmatizer morphology

                                                                            • fixed #1799, crash in queries to distributed indexes with GROUP BY on multiple values

                                                                            • fixed #1718, expand_keywords option lost in disk chunks of RT indexes

                                                                            • -
                                                                            • fixed documentation on rt_flush_period

                                                                            • +
                                                                            • fixed documentation on rt_flush_period

                                                                            • fixed network protocol issue which results in timeouts of libmysqlclient for big Sphinx responses

                                                                            -

                                                                            A.18. Version 2.1.4-release, 18 dec 2013

                                                                            -

                                                                            Bug fixes

                                                                            • fixed #1778, indexes with more than 255 attributes

                                                                            • +

                                                                              A.19. Version 2.1.4-release, 18 dec 2013

                                                                              +

                                                                              Bug fixes

                                                                              • fixed #1778, indexes with more than 255 attributes

                                                                              • fixed #1777, ORDER BY WEIGHT()

                                                                              • fixed #1796, missing results in queries with quorum operator of indexes with some lemmatizer

                                                                              • fixed #1780, incorrect results while querying indexes with wordforms, some lemmatizer and enable_star=1

                                                                              • fixed, SHOW PROFILE for fullscan queries

                                                                              • fixed, --with-re2 check

                                                                              -

                                                                              A.19. Version 2.1.3-release, 12 nov 2013

                                                                              -

                                                                              Bug fixes

                                                                              • fixed #1753, path to re2 sources could not be set using --with-re2, options --with-re2-libs and --with-re2-includes added to configure

                                                                              • +

                                                                                A.20. Version 2.1.3-release, 12 nov 2013

                                                                                +

                                                                                Bug fixes

                                                                                • fixed #1753, path to re2 sources could not be set using --with-re2, options --with-re2-libs and --with-re2-includes added to configure

                                                                                • fixed #1739, erroneous conversion of RAM chunk into disk chunk when loading id32 index with id64 binary

                                                                                • fixed #1738, unlinking RAM chunk when converting it to disk chunk

                                                                                • fixed #1710, unable to filter by attributes created by index_field_lengths=1

                                                                                • fixed #1716, random crash with with multiple running threads

                                                                                • fixed crash while querying index with lemmatizer and wordforms

                                                                                -

                                                                                A.20. Version 2.1.2-release, 10 oct 2013

                                                                                -

                                                                                New features

                                                                                • added FLUSH RAMCHUNK statement

                                                                                • -
                                                                                • added SHOW PLAN statement

                                                                                • +

                                                                                  A.21. Version 2.1.2-release, 10 oct 2013

                                                                                  +

                                                                                  New features

                                                                                  • added FLUSH RAMCHUNK statement

                                                                                  • +
                                                                                  • added SHOW PLAN statement

                                                                                  • added support for GROUP BY on multiple attributes

                                                                                  • added BM25F() function to SELECT expressions (now works with the expression based ranker)

                                                                                  • added indextool --fold command and -q switch

                                                                                  • @@ -12834,7 +13107,7 @@

                                                                                    New features

                                                                                      JSON attributes (up to 5-20% faster SELECTs using JSON objects)

                                                                                    • optimized xmlpipe2 indexing (up to 9 times faster on some schemas)

                                                                                    -

                                                                                    Bug fixes

                                                                                    • fixed #1684, COUNT(DISTINCT smth) with implicit GROUP BY returns correct value now

                                                                                    • +

                                                                                      Bug fixes

                                                                                      • fixed #1684, COUNT(DISTINCT smth) with implicit GROUP BY returns correct value now

                                                                                      • fixed #1672, exact token AOT vs lemma (indexer skips exact form of token that passed AOT through tokenizer)

                                                                                      • fixed #1659, fail while loading empty infix dictionary with dict=keywords

                                                                                      • fixed #1638, force explicit JSON type conversion for aggregate functions

                                                                                      • @@ -12845,7 +13118,7 @@

                                                                                        Bug fixes

                                                                                          fixed #1606, hard interruption of the daemon by Ctrl+C (SIGINT) signal

                                                                                        • fixed #1592, duplicates vs expression ranker

                                                                                        • fixed #1578, SORT BY string attribute via API attr_asc \ attr_desc

                                                                                        • -
                                                                                        • fixed #1575, crash of daemon on MVA receive from agents with dist_threads enabled

                                                                                        • +
                                                                                        • fixed #1575, crash of daemon on MVA receive from agents with dist_threads enabled

                                                                                        • fixed #1574, agent got kill list of local indexes of distributed index

                                                                                        • fixed #1573, ranker expression vs expanded terms

                                                                                        • fixed #1572, BM25F vs negative terms

                                                                                        • @@ -12873,7 +13146,7 @@

                                                                                          Bug fixes

                                                                                            fixed #1439, filters on float values in JSON issue, string values quoting issue

                                                                                          • fixed #1399, filter error message on string attribute

                                                                                          • fixed #1384, added possibility to define any own DSN line with source=mssql (like as in source=odbc)

                                                                                          • -
                                                                                          • fixed ATTACH vs wordforms or stopwords; after daemon was restarted this setting was getting lost in RT indexes

                                                                                          • +
                                                                                          • fixed ATTACH vs wordforms or stopwords; after daemon was restarted this setting was getting lost in RT indexes

                                                                                          • fixed balancing of agents in HA

                                                                                          • fixed co-working of index_exact_word + AOT lemmatizer

                                                                                          • fixed epoll invoking and turned on by default

                                                                                          • @@ -12892,32 +13165,32 @@

                                                                                            Bug fixes

                                                                                              fixed string case error with JSON attributes in select list of a query

                                                                                            • fixed TOP_COUNT usage in misc/suggest and updated to PHP 5.3 and UTF-8

                                                                                          -

                                                                                          A.21. Version 2.1.1-beta, 20 feb 2013

                                                                                          -

                                                                                          Major new features

                                                                                          • added query profiling (SET PROFILING=1 and SHOW PROFILE statements)

                                                                                          • +

                                                                                            A.22. Version 2.1.1-beta, 20 feb 2013

                                                                                            +

                                                                                            Major new features

                                                                                            -

                                                                                            New features

                                                                                            • added --checkconfig switch to indextool to check config file for correctness (bug #1395)

                                                                                            • +

                                                                                              New features

                                                                                              • added --checkconfig switch to indextool to check config file for correctness (bug #1395)

                                                                                              • added global IDF support (global_idf directive, OPTION global_idf)

                                                                                              • added "term1 term2 term3"/0.5 quorum fraction syntax (bug #1372)

                                                                                              • added an option to apply stopwords before morphology, stopwords_unstemmed directive

                                                                                              • added an alternative method to compute keyword IDFs, OPTION idf=plain

                                                                                              • added boolean query optimizations, OPTION boolean_simplify=1 (bug #1294)

                                                                                              • -
                                                                                              • added stringptr return type support to UDFs, and CREATE FUNCTION ... RETURNS STRING syntax

                                                                                              • -
                                                                                              • added early query termination by predicted execution time (OPTION max_predicted_time, and predicted_time_costs directive)

                                                                                              • +
                                                                                              • added stringptr return type support to UDFs, and CREATE FUNCTION ... RETURNS STRING syntax

                                                                                              • +
                                                                                              • added early query termination by predicted execution time (OPTION max_predicted_time, and predicted_time_costs directive)

                                                                                              • added index_field_lengths directive, BM25A() and BM25F() functions to expression ranker

                                                                                              • added ranker=export, and PACKEDFACTORS() function

                                                                                              • added OPTION agent_query_timeout

                                                                                              • added support for attribute files over 4 GB (bug #1274)

                                                                                              • added addr2line output to crash reports (bug #1265)

                                                                                              • -
                                                                                              • added OPTION ignore_nonexistent_columns to UPDATE, and a respective UpdateAttributes() argument

                                                                                              • +
                                                                                              • added OPTION ignore_nonexistent_columns to UPDATE, and a respective UpdateAttributes() argument

                                                                                              • added --keep-attrs switch to indexer

                                                                                              • added --with-static-mysql, --with-static-pgsql switches to configure

                                                                                              • added double-buffering for RT INSERTs (bug #1200)

                                                                                              • @@ -12926,17 +13199,17 @@

                                                                                                New features

                                                                                                -

                                                                                                New SphinxQL features

                                                                                                • added SHOW INDEX indexname STATUS statement

                                                                                                • +

                                                                                                  New SphinxQL features

                                                                                                  -

                                                                                                  Major behavior changes and optimizations

                                                                                                  • changed that UDFs are now allowed in fork/prefork modes via sphinxql_state startup script

                                                                                                  • +

                                                                                                    Major behavior changes and optimizations

                                                                                                    • changed that UDFs are now allowed in fork/prefork modes via sphinxql_state startup script

                                                                                                    • changed that compat_sphinxql_magics now defaults to 0

                                                                                                    • changed that small enough exceptions, wordforms, stopwords files are now embedded into the index header

                                                                                                    • changed that rt_mem_limit can now be over 2 GB (bug #1059)

                                                                                                    • @@ -12955,10 +13228,10 @@

                                                                                                      Major behavior changes and optimizations

                                                                                                      optimized multi-keyword searching (added skiplists)

                                                                                                    • optimized filtering and scan in several frequent cases (single-value, 2-arg, 3-arg WHERE clauses)

                                                                                                  -

                                                                                                  A.22. Version 2.0.11-dev, xx xxx xxxx

                                                                                                  -

                                                                                                  Bug fixes

                                                                                                  -

                                                                                                  A.23. Version 2.0.10-release, 22 jan 2014

                                                                                                  -

                                                                                                  Bug fixes

                                                                                                  • fixed #1778, SENTENCE and PARAGRAPH operators and infix stars clash

                                                                                                  • +

                                                                                                    A.23. Version 2.0.11-dev, xx xxx xxxx

                                                                                                    +

                                                                                                    Bug fixes

                                                                                                    +

                                                                                                    A.24. Version 2.0.10-release, 22 jan 2014

                                                                                                    +

                                                                                                    Bug fixes

                                                                                                    • fixed #1778, SENTENCE and PARAGRAPH operators and infix stars clash

                                                                                                    • fixed #1774, stack overflow on parsing large expressions

                                                                                                    • fixed #1744, daemon failed to write to log file bigger than 4G

                                                                                                    • fixed #1705, expression ranker handling of indexes with more than 32 fields

                                                                                                    • @@ -12971,11 +13244,11 @@

                                                                                                      Bug fixes

                                                                                                        fixed #1520, SetLimits() API documentation

                                                                                                      • fixed #1491, documentation: space character is prohibited in charset_table

                                                                                                      • fixed memory leak in expressions with max_window_hits

                                                                                                      • -
                                                                                                      • fixed rt_flush_period - less stricter internal check and more often flushes overall

                                                                                                      • +
                                                                                                      • fixed rt_flush_period - less stricter internal check and more often flushes overall

                                                                                                    -

                                                                                                    A.24. Version 2.0.9-release, 26 aug 2013

                                                                                                    -

                                                                                                    Bug fixes

                                                                                                    • fixed #1655, special characters like ()?* were not processed correctly by exceptions

                                                                                                    • -
                                                                                                    • fixed #1651, CREATE FUNCTION can now be used with BIGINT return type

                                                                                                    • +

                                                                                                      A.25. Version 2.0.9-release, 26 aug 2013

                                                                                                      +

                                                                                                      Bug fixes

                                                                                                      • fixed #1655, special characters like ()?* were not processed correctly by exceptions

                                                                                                      • +
                                                                                                      • fixed #1651, CREATE FUNCTION can now be used with BIGINT return type

                                                                                                      • fixed #1649, incorrect warning message (about statistics mismatch) was returned when mixing wildcards and regular keywords

                                                                                                      • fixed #1603, passing MVA64 arguments to non-MVA functions caused unpredicted behavior and crashes (now explicitly forbidden)

                                                                                                      • fixed #1601, negative numbers in IN() clause caused a syntax error

                                                                                                      • @@ -12989,15 +13262,15 @@

                                                                                                        Bug fixes

                                                                                                          fixed #757, wordforms shared between multiple indexes with different tokenizer settings failed to load (they now load with a warning)

                                                                                                        • fixed that batch queries did not batch in some cases (because of internal expression alias issues)

                                                                                                        • fixed that CALL KEYWORDS occasionally gave incorrect error messages

                                                                                                        • -
                                                                                                        • fixed searchd crashes on ATTACHing plain indexes with MVAs

                                                                                                        • +
                                                                                                        • fixed searchd crashes on ATTACHing plain indexes with MVAs

                                                                                                        • fixed several deadlocks and other threading issues

                                                                                                        • -
                                                                                                        • fixed incorrect sorting order with utf8_general_ci

                                                                                                        • +
                                                                                                        • fixed incorrect sorting order with utf8_general_ci

                                                                                                        • fixed that in some cases incorrect attribute values were returned when using expression aliases

                                                                                                        • optimized xmlpipe2 indexing

                                                                                                        • added a warning for missed stopwords, exception, wordforms files on index load and in indextool --check

                                                                                                      -

                                                                                                      A.25. Version 2.0.8-release, 26 apr 2013

                                                                                                      -

                                                                                                      Bug fixes

                                                                                                      • fixed #1515, log strings over 2KB were clipped when query_log_format=plain

                                                                                                      • +

                                                                                                        A.26. Version 2.0.8-release, 26 apr 2013

                                                                                                        +

                                                                                                        Bug fixes

                                                                                                        • fixed #1515, log strings over 2KB were clipped when query_log_format=plain

                                                                                                        • fixed #1514, RT index disk chunk lose attribute update on daemon restart

                                                                                                        • fixed #1512, crash while formatting log messages

                                                                                                        • fixed #1511, crash on indexing PostgreSQL data source with MVA attributes

                                                                                                        • @@ -13012,14 +13285,14 @@

                                                                                                          Bug fixes

                                                                                                        -

                                                                                                        A.26. Version 2.0.7-release, 26 mar 2013

                                                                                                        -

                                                                                                        Bug fixes

                                                                                                        • fixed #1475, memory leak in the expression parser

                                                                                                        • +

                                                                                                          A.27. Version 2.0.7-release, 26 mar 2013

                                                                                                          +

                                                                                                          Bug fixes

                                                                                                          • fixed #1475, memory leak in the expression parser

                                                                                                          • fixed #1457, error messages over 2KB were clipped

                                                                                                          • fixed #1454, searchd did not display an error message when the binlog path did not exist

                                                                                                          • fixed #1441, SHOW META in a query batch was returning the last non-batch error

                                                                                                          • @@ -13069,8 +13342,8 @@

                                                                                                            Bug fixes

                                                                                                              added a console message about crashes during index loading at startup

                                                                                                            • added more debug info about failed index loading

                                                                                                          -

                                                                                                          A.27. Version 2.0.6-release, 22 oct 2012

                                                                                                          -

                                                                                                          Bug fixes

                                                                                                          • fixed #1322, J connector seems to be broken in rel20 , but works in trunk

                                                                                                          • +

                                                                                                            A.28. Version 2.0.6-release, 22 oct 2012

                                                                                                            +

                                                                                                            Bug fixes

                                                                                                            • fixed #1322, J connector seems to be broken in rel20 , but works in trunk

                                                                                                            • fixed #1321, 'set names utf8' passes, but 'set names utf-8' doesn't because of syntax error '-'

                                                                                                            • fixed #1318, unhandled float comparison operators at filter

                                                                                                            • fixed #1317, FD leaks on thread seamless rotation

                                                                                                            • @@ -13080,7 +13353,7 @@

                                                                                                              Bug fixes

                                                                                                                fixed #1302, daemon random crashes on OS X

                                                                                                              • fixed #1301, indexer fails to send rotate signal

                                                                                                              • fixed #1300, lost index settings on attach

                                                                                                              • -
                                                                                                              • fixed #1299, daemon failed to rotate ATTACHed plain index

                                                                                                              • +
                                                                                                              • fixed #1299, daemon failed to rotate ATTACHed plain index

                                                                                                              • fixed #1289, SENTENCE or PARAGRAPH searching leak memory

                                                                                                              • fixes #1285, crash on running searchd with syslog and watchdog

                                                                                                              • fixed #1279, linking against explicitly disabled iconv. Also added --with-libexpat to config options, which sometimes required on systems without XML support

                                                                                                              • @@ -13123,13 +13396,13 @@

                                                                                                                Bug fixes

                                                                                                                  fixed sample config file

                                                                                                                • fixed x64 configurations for libstemmer

                                                                                                              -

                                                                                                              A.28. Version 2.0.5-release, 28 jul 2012

                                                                                                              -

                                                                                                              Bug fixes

                                                                                                              • fixed #1258, xmlpipe2 refused to index indexes with docinfo=inline

                                                                                                              • +

                                                                                                                A.29. Version 2.0.5-release, 28 jul 2012

                                                                                                                +

                                                                                                                Bug fixes

                                                                                                                • fixed #1258, xmlpipe2 refused to index indexes with docinfo=inline

                                                                                                                • fixed #1257, legacy groupby modes vs dist_threads could occasionally return wrong search results (race condition)

                                                                                                                • fixed #1253, missing single-word query performance optimization (simplified ranker) vs prefix-expanded keywords vs dict=keywords

                                                                                                                • -
                                                                                                                • fixed #1252, COUNT(*) vs dist_threads could occasionally crash (race condition)

                                                                                                                • +
                                                                                                                • fixed #1252, COUNT(*) vs dist_threads could occasionally crash (race condition)

                                                                                                                • fixed #1251, missing expression support in the IN() function

                                                                                                                • -
                                                                                                                • fixed #1245, FlushAttributes mistakenly disabled by attr_flush_period=0 setting

                                                                                                                • +
                                                                                                                • fixed #1245, FlushAttributes mistakenly disabled by attr_flush_period=0 setting

                                                                                                                • fixed #1244, per-API-command (search, update, etc) statistics were not updated by SphinxQL requests

                                                                                                                • fixed #1243, misc issues (broken statistics, weights, checks) with very long keywords having blended parts in RT indexes

                                                                                                                • fixed #1240, embedded xmlpipe2 schema with more attributes than the sphinx.conf one caused indexer to crash

                                                                                                                • @@ -13179,8 +13452,8 @@

                                                                                                                  Bug fixes

                                                                                                                    fixed that blended vs multiforms vs min_word_len could hang the query parser

                                                                                                                  • fixed missing command-line switches documentation

                                                                                                                -

                                                                                                                A.29. Version 2.0.4-release, 02 mar 2012

                                                                                                                -

                                                                                                                Bug fixes

                                                                                                                • fixed #605, pack vs mysql compress

                                                                                                                • +

                                                                                                                  A.30. Version 2.0.4-release, 02 mar 2012

                                                                                                                  +

                                                                                                                  Bug fixes

                                                                                                                  • fixed #605, pack vs mysql compress

                                                                                                                  • fixed #783, #862, #917, #985, #990, #1032 documentation bugs

                                                                                                                  • fixed #885, bitwise AND/OR were not available via API

                                                                                                                  • fixed #984, crash on indexing data with MAGIC_CODE_ZONE symbol

                                                                                                                  • @@ -13192,7 +13465,7 @@

                                                                                                                    Bug fixes

                                                                                                                    -

                                                                                                                    A.30. Version 2.0.3-release, 23 dec 2011

                                                                                                                    -

                                                                                                                    Bug fixes

                                                                                                                    • fixed #1031, SphinxQL parsing syntax for MVA at insert \ replace statements

                                                                                                                    • +

                                                                                                                      A.31. Version 2.0.3-release, 23 dec 2011

                                                                                                                      +

                                                                                                                      Bug fixes

                                                                                                                      • fixed #1031, SphinxQL parsing syntax for MVA at insert \ replace statements

                                                                                                                      • fixed #1027, stalls on attribute update in high-concurrency load

                                                                                                                      • fixed #1026, daemon crash on malformed API command

                                                                                                                      • fixed #1021, max_children option has been ignored with worker=threads

                                                                                                                      • @@ -13235,16 +13508,16 @@

                                                                                                                        Bug fixes

                                                                                                                          fixed build of SphinxSE with MySQL 5.1

                                                                                                                        • fixed crash log for 'fork' and 'prefork' workers

                                                                                                                      -

                                                                                                                      A.31. Version 2.0.2-beta, 15 nov 2011

                                                                                                                      -

                                                                                                                      Major new features

                                                                                                                      • added keywords dictionary (dict=keywords) support to RT indexes

                                                                                                                      • +

                                                                                                                        A.32. 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 WHERE clause support to UPDATE statement

                                                                                                                        • -
                                                                                                                        • added bigint, float, and MVA attribute support to UPDATE statement

                                                                                                                        • +
                                                                                                                        • added ATTACH INDEX statement that converts a disk index to RT index

                                                                                                                        • +
                                                                                                                        • added WHERE clause support to UPDATE statement

                                                                                                                        • +
                                                                                                                        • added bigint, float, and MVA attribute support to UPDATE statement

                                                                                                                        -

                                                                                                                        New features

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

                                                                                                                        • +

                                                                                                                          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)

                                                                                                                          • @@ -13263,17 +13536,17 @@

                                                                                                                            New features

                                                                                                                              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

                                                                                                                            • +
                                                                                                                            • changed max_filter_values sanity check to 10M values

                                                                                                                            -

                                                                                                                            New SphinxQL features

                                                                                                                            • added FLUSH RTINDEX statement

                                                                                                                            • +

                                                                                                                              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 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

                                                                                                                              • +

                                                                                                                                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

                                                                                                                                • @@ -13340,55 +13613,55 @@

                                                                                                                                  Bug fixes

                                                                                                                                    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

                                                                                                                                -

                                                                                                                                A.32. Version 2.0.1-beta, 22 apr 2011

                                                                                                                                -

                                                                                                                                New general features

                                                                                                                                • added remapping support to blend_chars directive

                                                                                                                                • -
                                                                                                                                • added multi-threaded snippet batches support (requires a batch sent via API, dist_threads, and load_files)

                                                                                                                                • -
                                                                                                                                • added collations (collation_server, collation_libc_locale directives)

                                                                                                                                • +

                                                                                                                                  A.33. Version 2.0.1-beta, 22 apr 2011

                                                                                                                                  +

                                                                                                                                  New general features

                                                                                                                                  -

                                                                                                                                  New SphinxQL features

                                                                                                                                  • added new, more SQL compliant SphinxQL syntax; and a compat_sphinxql_magics directive

                                                                                                                                  • +

                                                                                                                                    New SphinxQL features

                                                                                                                                    -

                                                                                                                                    New command-line switches

                                                                                                                                    • added --print-queries switch to indexer that dumps SQL queries it runs

                                                                                                                                    • +

                                                                                                                                      New command-line switches

                                                                                                                                      • added --print-queries switch to indexer that dumps SQL queries it runs

                                                                                                                                      • added --sighup-each switch to indexer that rotates indexes one by one

                                                                                                                                      • added --strip-path switch to searchd that skips file paths embedded in the index(-es)

                                                                                                                                      • added --dumpconfig switch to indextool that dumps an index header in sphinx.conf format

                                                                                                                                      -

                                                                                                                                      Major changes and optimizations

                                                                                                                                      • changed default preopen_indexes value to 1

                                                                                                                                      • +

                                                                                                                                        Major changes and optimizations

                                                                                                                                        • changed default preopen_indexes value to 1

                                                                                                                                        • optimized English stemmer (results in 1.3x faster snippets and indexing with morphology=stem_en)

                                                                                                                                        • optimized snippets, 1.6x general speedup

                                                                                                                                        • optimized const-list parsing in SphinxQL

                                                                                                                                        • optimized full-document highlighting CPU/RAM use

                                                                                                                                        • optimized binlog replay (improved performance on K-list update)

                                                                                                                                        -

                                                                                                                                        Bug fixes

                                                                                                                                        • fixed #767, joined fields vs ODBC sources

                                                                                                                                        • +

                                                                                                                                          Bug fixes

                                                                                                                                          • fixed #767, joined fields vs ODBC sources

                                                                                                                                          • fixed #757, wordforms shared by indexes with different settings

                                                                                                                                          • fixed #733, loading of indexes in formats prior to v.14

                                                                                                                                          • fixed #763, occasional snippets failures

                                                                                                                                          • @@ -13472,12 +13745,12 @@

                                                                                                                                            Bug fixes

                                                                                                                                              fixed libsphinxclient SIGPIPE handling

                                                                                                                                            • fixed libsphinxclient vs VS2003 compiler bug

                                                                                                                                          -

                                                                                                                                          A.33. Version 1.10-beta, 19 jul 2010

                                                                                                                                          +

                                                                                                                                          A.34. Version 1.10-beta, 19 jul 2010

                                                                                                                                          • added RT indexes support (Chapter 4, Real-time indexes)

                                                                                                                                          • -
                                                                                                                                          • added prefork and threads support (workers directives)

                                                                                                                                          • -
                                                                                                                                          • added multi-threaded local searches in distributed indexes (dist_threads directive)

                                                                                                                                          • -
                                                                                                                                          • added common subquery cache (subtree_docs_cache, - subtree_hits_cache directives)

                                                                                                                                          • +
                                                                                                                                          • added prefork and threads support (workers directives)

                                                                                                                                          • +
                                                                                                                                          • added multi-threaded local searches in distributed indexes (dist_threads directive)

                                                                                                                                          • +
                                                                                                                                          • added common subquery cache (subtree_docs_cache, + subtree_hits_cache directives)

                                                                                                                                          • added string attributes support (sql_attr_string, sql_field_string, xml_attr_string, @@ -13508,7 +13781,7 @@

                                                                                                                                            Bug fixes

                                                                                                                                              added @groupby/@count/@distinct columns support to SELECT (but not to expressions)

                                                                                                                                            • added query-time keyword expansion support (expand_keywords directive, SPH_RANK_SPH04 ranker)

                                                                                                                                            • -
                                                                                                                                            • added query batch size limit option (max_batch_queries directive; was hardcoded)

                                                                                                                                            • +
                                                                                                                                            • added query batch size limit option (max_batch_queries directive; was hardcoded)

                                                                                                                                            • added SINT() function to expressions

                                                                                                                                            • improved SphinxQL syntax error reporting

                                                                                                                                            • improved expression optimizer (better constant handling)

                                                                                                                                            • @@ -13547,7 +13820,7 @@

                                                                                                                                              Bug fixes

                                                                                                                                                fixed #506, better MySQL protocol commands support in SphinxQL (PING etc)

                                                                                                                                              • fixed #509, indexing ranged results from stored procedures

                                                                                                                                            -

                                                                                                                                            A.34. Version 0.9.9-release, 02 dec 2009

                                                                                                                                            +

                                                                                                                                            A.35. Version 0.9.9-release, 02 dec 2009

                                                                                                                                            • added Open, Close, Status calls to libsphinxclient (C API)

                                                                                                                                            • added automatic persistent connection reopening to PHP, Python APIs

                                                                                                                                            • added 64-bit value/range filters, fullscan mode support to SphinxSE

                                                                                                                                            • @@ -13602,9 +13875,9 @@

                                                                                                                                              Bug fixes

                                                                                                                                                fixed #344 (invalid checkpoints after merge)

                                                                                                                                              • fixed #326 (missing CLOCK_xxx on FreeBSD)

                                                                                                                                            -

                                                                                                                                            A.35. Version 0.9.9-rc2, 08 apr 2009

                                                                                                                                            +

                                                                                                                                            A.36. Version 0.9.9-rc2, 08 apr 2009

                                                                                                                                            • added IsConnectError(), Open(), Close() calls to Java API (bug #240)

                                                                                                                                            • -
                                                                                                                                            • added read_buffer, read_unhinted directives

                                                                                                                                            • +
                                                                                                                                            • added read_buffer, read_unhinted directives

                                                                                                                                            • added checks for build options returned by mysql_config (builds on Solaris now)

                                                                                                                                            • added fixed-RAM index merge (bug #169)

                                                                                                                                            • added logging chained queries count in case of (optimized) multi-queries

                                                                                                                                            • @@ -13619,7 +13892,7 @@

                                                                                                                                              Bug fixes

                                                                                                                                              -

                                                                                                                                              A.36. Version 0.9.9-rc1, 17 nov 2008

                                                                                                                                              +

                                                                                                                                              A.37. Version 0.9.9-rc1, 17 nov 2008

                                                                                                                                              • added min_stemming_len directive

                                                                                                                                              • added IsConnectError() API call (helps distingusih API vs remote errors)

                                                                                                                                              • added duplicate log messages filter to searchd

                                                                                                                                              • added --nodetach debugging switch to searchd

                                                                                                                                              • added blackhole agents support for debugging/testing (agent_blackhole directive)

                                                                                                                                              • -
                                                                                                                                              • added max_filters, max_filter_values directives (were hardcoded before)

                                                                                                                                              • +
                                                                                                                                              • added max_filters, max_filter_values directives (were hardcoded before)

                                                                                                                                              • added int64 expression evaluation path, automatic inference, and BIGINT() enforcer function

                                                                                                                                              • added crash handler for debugging (crash_log_path directive)

                                                                                                                                              • added MS SQL (aka SQL Server) source support (Windows only, mssql_winauth and mssql_unicode directives)

                                                                                                                                              • @@ -13691,14 +13964,14 @@

                                                                                                                                                Bug fixes

                                                                                                                                                  added persistent connections support (Open() and Close() API calls)

                                                                                                                                                • added index_exact_words feature, and exact form operator to query language ("hello =world")

                                                                                                                                                • added status variables support to SphinxSE (SHOW STATUS LIKE 'sphinx_%')

                                                                                                                                                • -
                                                                                                                                                • added max_packet_size directive (was hardcoded at 8M before)

                                                                                                                                                • +
                                                                                                                                                • added max_packet_size directive (was hardcoded at 8M before)

                                                                                                                                                • added UNIX socket support, and multi-interface support (listen directive)

                                                                                                                                                • added star-syntax support to BuildExcerpts() API call

                                                                                                                                                • added inplace inversion of .spa and .spp (inplace_enable directive, 1.5-2x less disk space for indexing)

                                                                                                                                                • added builtin Czech stemmer (morphology=stem_cz)

                                                                                                                                                • added IDIV(), NOW(), INTERVAL(), IN() functions to expressions

                                                                                                                                                • added index-level early-reject based on filters

                                                                                                                                                • -
                                                                                                                                                • added MVA updates feature (mva_updates_pool directive)

                                                                                                                                                • +
                                                                                                                                                • added MVA updates feature (mva_updates_pool directive)

                                                                                                                                                • added select-list feature with computed expressions support (see SetSelect() API call, test.php --select switch), protocol 1.22

                                                                                                                                                • added integer expressions support (2x faster than float)

                                                                                                                                                • added multiforms support (multiple source words in wordforms file)

                                                                                                                                                • @@ -13707,7 +13980,7 @@

                                                                                                                                                  Bug fixes

                                                                                                                                                    added killlist support (sql_query_killlist directive, --merge-killlists switch)

                                                                                                                                                  • added on-disk SPI support (ondisk_dict directive)

                                                                                                                                                  • added indexer IO stats

                                                                                                                                                  • -
                                                                                                                                                  • added periodic .spa flush (attr_flush_period directive)

                                                                                                                                                  • +
                                                                                                                                                  • added periodic .spa flush (attr_flush_period directive)

                                                                                                                                                  • added config reload on SIGHUP

                                                                                                                                                  • added per-query attribute overrides feature (see SetOverride() API call); protocol 1.21

                                                                                                                                                  • added signed 64bit attrs support (sql_attr_bigint directive)

                                                                                                                                                  • @@ -13719,7 +13992,7 @@

                                                                                                                                                    Bug fixes

                                                                                                                                                      fixed backslash escaping, added backslash to EscapeString()

                                                                                                                                                    • fixed handling of over-2GB dictionary files (.spi)

                                                                                                                                                  -

                                                                                                                                                  A.37. Version 0.9.8.1, 30 oct 2008

                                                                                                                                                  +

                                                                                                                                                  A.38. Version 0.9.8.1, 30 oct 2008

                                                                                                                                                  • added configure script to libsphinxclient

                                                                                                                                                  • changed proximity/quorum operator syntax to require whitespace after length

                                                                                                                                                  • fixed potential head process crash on SIGPIPE during "maxed out" message

                                                                                                                                                  • @@ -13740,8 +14013,8 @@

                                                                                                                                                    Bug fixes

                                                                                                                                                      fixed Python API to accept offset/limit of 'long' type

                                                                                                                                                    • fixed default ID range (that filtered out all 64-bit values) in Java and Python APIs

                                                                                                                                                  -

                                                                                                                                                  A.38. Version 0.9.8, 14 jul 2008

                                                                                                                                                  -

                                                                                                                                                  Indexing

                                                                                                                                                  • added support for 64-bit document and keyword IDs, --enable-id64 switch to configure

                                                                                                                                                  • +

                                                                                                                                                    A.39. Version 0.9.8, 14 jul 2008

                                                                                                                                                    +

                                                                                                                                                    Indexing

                                                                                                                                                    • added support for 64-bit document and keyword IDs, --enable-id64 switch to configure

                                                                                                                                                    • added support for floating point attributes

                                                                                                                                                    • added support for bitfields in attributes, sql_attr_bool directive and bit-widths part in sql_attr_uint directive

                                                                                                                                                    • added support for multi-valued attributes (MVA)

                                                                                                                                                    • @@ -13763,10 +14036,10 @@

                                                                                                                                                      Indexing

                                                                                                                                                        improved ordinals sorting; now runs in fixed RAM

                                                                                                                                                      • improved handling of documents with zero/NULL ids, now skipping them instead of aborting

                                                                                                                                                      -

                                                                                                                                                      Search daemon

                                                                                                                                                      • added an option to unlink old index on succesful rotation, unlink_old directive

                                                                                                                                                      • -
                                                                                                                                                      • added an option to keep index files open at all times (fixes subtle races on rotation), preopen and preopen_indexes directives

                                                                                                                                                      • +

                                                                                                                                                        Search daemon

                                                                                                                                                        • added an option to unlink old index on succesful rotation, unlink_old directive

                                                                                                                                                        • +
                                                                                                                                                        • added an option to keep index files open at all times (fixes subtle races on rotation), preopen and preopen_indexes directives

                                                                                                                                                        • added an option to profile searchd disk I/O, --iostats command-line option

                                                                                                                                                        • -
                                                                                                                                                        • added an option to rotate index seamlessly (fully avoids query stalls), seamless_rotate directive

                                                                                                                                                        • +
                                                                                                                                                        • added an option to rotate index seamlessly (fully avoids query stalls), seamless_rotate directive

                                                                                                                                                        • added HTML stripping support to excerpts (uses per-index settings)

                                                                                                                                                        • added 'exact_phrase', 'single_passage', 'use_boundaries', 'weight_order 'options to BuildExcerpts() API call

                                                                                                                                                        • added distributed attribute updates propagation

                                                                                                                                                        • @@ -13777,7 +14050,7 @@

                                                                                                                                                          Search daemon

                                                                                                                                                            added Windows --rotate support

                                                                                                                                                          • improved log timestamping, now with millisecond precision

                                                                                                                                                          -

                                                                                                                                                          Querying

                                                                                                                                                          • added extended engine V2 (faster, cleaner, better; SPH_MATCH_EXTENDED2 mode)

                                                                                                                                                          • +

                                                                                                                                                            Querying

                                                                                                                                                            • added extended engine V2 (faster, cleaner, better; SPH_MATCH_EXTENDED2 mode)

                                                                                                                                                            • added ranking modes support (V2 engine only; SetRankingMode() API call)

                                                                                                                                                            • added quorum searching support to query language (V2 engine only; example: "any three of all these words"/3)

                                                                                                                                                            • added query escaping support to query language, and EscapeString() API call

                                                                                                                                                            • @@ -13798,14 +14071,14 @@

                                                                                                                                                              Querying

                                                                                                                                                                added optional limit on query time, SetMaxQueryTime() API call

                                                                                                                                                              • added optional limit on found matches count (4rd arg to SetLimits() API call, so-called 'cutoff')

                                                                                                                                                              -

                                                                                                                                                              APIs and SphinxSE

                                                                                                                                                              • added pure C API (libsphinxclient)

                                                                                                                                                              • +

                                                                                                                                                                APIs and SphinxSE

                                                                                                                                                                • added pure C API (libsphinxclient)

                                                                                                                                                                • added Ruby API (thanks to Dmytro Shteflyuk)

                                                                                                                                                                • added Java API

                                                                                                                                                                • added SphinxSE support for MVAs (use varchar), floats (use float), 64bit docids (use bigint)

                                                                                                                                                                • added SphinxSE options "floatrange", "geoanchor", "fieldweights", "indexweights", "maxquerytime", "comment", "host" and "port"; and support for "expr:CLAUSE"

                                                                                                                                                                • improved SphinxSE max query size (using MySQL condition pushdown), upto 256K now

                                                                                                                                                                -

                                                                                                                                                                General

                                                                                                                                                                • added scripting (shebang syntax) support to config files (example: #!/usr/bin/php in the first line)

                                                                                                                                                                • +

                                                                                                                                                                  General

                                                                                                                                                                  • added scripting (shebang syntax) support to config files (example: #!/usr/bin/php in the first line)

                                                                                                                                                                  • added unified config handling and validation to all programs

                                                                                                                                                                  • added unified documentation

                                                                                                                                                                  • added .spec file for RPM builds

                                                                                                                                                                  • @@ -13857,7 +14130,7 @@

                                                                                                                                                                    Changes and fixes since 0.9.8-rc2

                                                                                                                                                                    <
                                                                                                                                                                  • fixed rare count(distinct) vs. querying multiple local indexes vs. reusable sorter issue

                                                                                                                                                                  • fixed sorting of negative floats in SPH_SORT_EXTENDED mode

                                                                                                                                                                -

                                                                                                                                                                A.39. Version 0.9.7, 02 apr 2007

                                                                                                                                                                +

                                                                                                                                                                A.40. Version 0.9.7, 02 apr 2007

                                                                                                                                                                • added support for sql_str2ordinal_column

                                                                                                                                                                • added support for upto 5 sort-by attrs (in extended sorting mode)

                                                                                                                                                                • added support for separate groups sorting clause (in group-by mode)

                                                                                                                                                                • @@ -13895,7 +14168,7 @@

                                                                                                                                                                  Changes and fixes since 0.9.8-rc2

                                                                                                                                                                  <
                                                                                                                                                                • fixed wrong assertion in SBCS encoder

                                                                                                                                                                • fixed crashes with no-attribute indexes after rotate

                                                                                                                                                                -

                                                                                                                                                                A.40. Version 0.9.7-rc2, 15 dec 2006

                                                                                                                                                                +

                                                                                                                                                                A.41. Version 0.9.7-rc2, 15 dec 2006

                                                                                                                                                                • added support for extended matching mode (query language)

                                                                                                                                                                • added support for extended sorting mode (sorting clauses)

                                                                                                                                                                • added support for SBCS excerpts

                                                                                                                                                                • @@ -13912,7 +14185,7 @@

                                                                                                                                                                  Changes and fixes since 0.9.8-rc2

                                                                                                                                                                  <
                                                                                                                                                                • fixed --with-mysql-includes/libs (they conflicted with well-known paths)

                                                                                                                                                                • fixes for 64-bit platforms

                                                                                                                                                                -

                                                                                                                                                                A.41. Version 0.9.7-rc1, 26 oct 2006

                                                                                                                                                                +

                                                                                                                                                                A.42. Version 0.9.7-rc1, 26 oct 2006

                                                                                                                                                                • added alpha index merging code

                                                                                                                                                                • added an option to decrease max_matches per-query

                                                                                                                                                                • added an option to specify IP address for searchd to listen on

                                                                                                                                                                • @@ -13936,14 +14209,14 @@

                                                                                                                                                                  Changes and fixes since 0.9.8-rc2

                                                                                                                                                                  <
                                                                                                                                                                • fixed line numbering in config parser

                                                                                                                                                                • fixed some issues with index rotation

                                                                                                                                                                -

                                                                                                                                                                A.42. Version 0.9.6, 24 jul 2006

                                                                                                                                                                +

                                                                                                                                                                A.43. Version 0.9.6, 24 jul 2006

                                                                                                                                                                • added support for empty indexes

                                                                                                                                                                • added support for multiple sql_query_pre/post/post_index

                                                                                                                                                                • fixed timestamp ranges filter in "match any" mode

                                                                                                                                                                • fixed configure issues with --without-mysql and --with-pgsql options

                                                                                                                                                                • fixed building on Solaris 9

                                                                                                                                                                -

                                                                                                                                                                A.43. Version 0.9.6-rc1, 26 jun 2006

                                                                                                                                                                +

                                                                                                                                                                A.44. Version 0.9.6-rc1, 26 jun 2006

                                                                                                                                                                • added boolean queries support (experimental, beta version)

                                                                                                                                                                • added simple file-based query cache (experimental, beta version)

                                                                                                                                                                • added storage engine for MySQL 5.0 and 5.1 (experimental, beta version)

                                                                                                                                                                • diff --git a/doc/sphinx.txt b/doc/sphinx.txt index 8dec5d99e..1f471427d 100644 --- a/doc/sphinx.txt +++ b/doc/sphinx.txt @@ -1,5 +1,5 @@ -Sphinx 2.3.2-dev reference manual -================================= +Sphinx 2.3.2-beta reference manual +================================== Free open-source SQL full-text search engine ============================================ @@ -84,9 +84,10 @@ Table of Contents 5.9.2. SphinxQL log format 5.10. MySQL protocol support and SphinxQL - 5.11. Multi-queries - 5.12. Collations - 5.13. Query cache + 5.11. HTTP protocol + 5.12. Multi-queries + 5.13. Collations + 5.14. Query cache 6. Extending Sphinx 6.1. Sphinx UDFs (User Defined Functions) @@ -116,37 +117,39 @@ Table of Contents 8.13. ROLLBACK syntax 8.14. CALL SNIPPETS syntax 8.15. CALL KEYWORDS syntax - 8.16. SHOW TABLES syntax - 8.17. DESCRIBE syntax - 8.18. CREATE FUNCTION syntax - 8.19. DROP FUNCTION syntax - 8.20. SHOW VARIABLES syntax - 8.21. SHOW COLLATION syntax - 8.22. SHOW CHARACTER SET syntax - 8.23. UPDATE syntax - 8.24. ALTER syntax - 8.25. ATTACH INDEX syntax - 8.26. FLUSH RTINDEX syntax - 8.27. FLUSH RAMCHUNK syntax - 8.28. FLUSH ATTRIBUTES syntax - 8.29. TRUNCATE RTINDEX syntax - 8.30. SHOW AGENT STATUS - 8.31. SHOW PROFILE syntax - 8.32. SHOW INDEX STATUS syntax - 8.33. SHOW INDEX SETTINGS syntax - 8.34. OPTIMIZE INDEX syntax - 8.35. SHOW PLAN syntax - 8.36. SHOW DATABASES syntax - 8.37. CREATE PLUGIN syntax - 8.38. DROP PLUGIN syntax - 8.39. SHOW PLUGINS syntax - 8.40. RELOAD PLUGINS syntax - 8.41. SHOW THREADS syntax - 8.42. RELOAD INDEX syntax - 8.43. Multi-statement queries - 8.44. Comment syntax - 8.45. List of SphinxQL reserved keywords - 8.46. SphinxQL upgrade notes, version 2.0.1-beta + 8.16. CALL QSUGGEST syntax + 8.17. SHOW TABLES syntax + 8.18. DESCRIBE syntax + 8.19. CREATE FUNCTION syntax + 8.20. DROP FUNCTION syntax + 8.21. SHOW VARIABLES syntax + 8.22. SHOW COLLATION syntax + 8.23. SHOW CHARACTER SET syntax + 8.24. UPDATE syntax + 8.25. ALTER syntax + 8.26. ATTACH INDEX syntax + 8.27. FLUSH RTINDEX syntax + 8.28. FLUSH RAMCHUNK syntax + 8.29. FLUSH ATTRIBUTES syntax + 8.30. FLUSH HOSTNAMES syntax + 8.31. TRUNCATE RTINDEX syntax + 8.32. SHOW AGENT STATUS + 8.33. SHOW PROFILE syntax + 8.34. SHOW INDEX STATUS syntax + 8.35. SHOW INDEX SETTINGS syntax + 8.36. OPTIMIZE INDEX syntax + 8.37. SHOW PLAN syntax + 8.38. SHOW DATABASES syntax + 8.39. CREATE PLUGIN syntax + 8.40. DROP PLUGIN syntax + 8.41. SHOW PLUGINS syntax + 8.42. RELOAD PLUGINS syntax + 8.43. SHOW THREADS syntax + 8.44. RELOAD INDEX syntax + 8.45. Multi-statement queries + 8.46. Comment syntax + 8.47. List of SphinxQL reserved keywords + 8.48. SphinxQL upgrade notes, version 2.0.1-beta 9. API reference 9.1. General API functions @@ -352,54 +355,56 @@ Table of Contents 12.4.4. query_log_format 12.4.5. read_timeout 12.4.6. client_timeout - 12.4.7. max_children - 12.4.8. net_workers - 12.4.9. queue_max_length - 12.4.10. pid_file - 12.4.11. seamless_rotate - 12.4.12. preopen_indexes - 12.4.13. unlink_old - 12.4.14. attr_flush_period - 12.4.15. max_packet_size - 12.4.16. mva_updates_pool - 12.4.17. max_filters - 12.4.18. max_filter_values - 12.4.19. listen_backlog - 12.4.20. read_buffer - 12.4.21. read_unhinted - 12.4.22. max_batch_queries - 12.4.23. subtree_docs_cache - 12.4.24. subtree_hits_cache - 12.4.25. workers - 12.4.26. dist_threads - 12.4.27. binlog_path - 12.4.28. binlog_flush - 12.4.29. binlog_max_log_size - 12.4.30. snippets_file_prefix - 12.4.31. collation_server - 12.4.32. collation_libc_locale - 12.4.33. mysql_version_string - 12.4.34. rt_flush_period - 12.4.35. thread_stack - 12.4.36. expansion_limit - 12.4.37. watchdog - 12.4.38. sphinxql_state - 12.4.39. ha_ping_interval - 12.4.40. ha_period_karma - 12.4.41. persistent_connections_limit - 12.4.42. rt_merge_iops - 12.4.43. rt_merge_maxiosize - 12.4.44. predicted_time_costs - 12.4.45. shutdown_timeout - 12.4.46. ondisk_attrs_default - 12.4.47. query_log_min_msec - 12.4.48. agent_connect_timeout - 12.4.49. agent_query_timeout - 12.4.50. agent_retry_count - 12.4.51. agent_retry_delay - 12.4.52. qcache_max_bytes - 12.4.53. qcache_thresh_msec - 12.4.54. qcache_ttl_sec + 12.4.7. sphinxql_timeout + 12.4.8. max_children + 12.4.9. net_workers + 12.4.10. queue_max_length + 12.4.11. pid_file + 12.4.12. seamless_rotate + 12.4.13. preopen_indexes + 12.4.14. unlink_old + 12.4.15. attr_flush_period + 12.4.16. max_packet_size + 12.4.17. mva_updates_pool + 12.4.18. max_filters + 12.4.19. max_filter_values + 12.4.20. listen_backlog + 12.4.21. read_buffer + 12.4.22. read_unhinted + 12.4.23. max_batch_queries + 12.4.24. subtree_docs_cache + 12.4.25. subtree_hits_cache + 12.4.26. workers + 12.4.27. dist_threads + 12.4.28. binlog_path + 12.4.29. binlog_flush + 12.4.30. binlog_max_log_size + 12.4.31. snippets_file_prefix + 12.4.32. collation_server + 12.4.33. collation_libc_locale + 12.4.34. mysql_version_string + 12.4.35. rt_flush_period + 12.4.36. thread_stack + 12.4.37. expansion_limit + 12.4.38. watchdog + 12.4.39. sphinxql_state + 12.4.40. ha_ping_interval + 12.4.41. ha_period_karma + 12.4.42. persistent_connections_limit + 12.4.43. rt_merge_iops + 12.4.44. rt_merge_maxiosize + 12.4.45. predicted_time_costs + 12.4.46. shutdown_timeout + 12.4.47. ondisk_attrs_default + 12.4.48. query_log_min_msec + 12.4.49. agent_connect_timeout + 12.4.50. agent_query_timeout + 12.4.51. agent_retry_count + 12.4.52. agent_retry_delay + 12.4.53. hostname_lookup + 12.4.54. qcache_max_bytes + 12.4.55. qcache_thresh_msec + 12.4.56. qcache_ttl_sec 12.5. Common section configuration options 12.5.1. lemmatizer_base @@ -413,49 +418,50 @@ Table of Contents 12.5.9. plugin_dir A. Sphinx revision history - A.1. Version 2.3.1-beta, 03 mar 2015 - A.2. Version 2.2.11-release, 19 jul 2016 - A.3. Version 2.2.10-release, 07 sep 2015 - A.4. Version 2.2.9-release, 16 apr 2015 - A.5. Version 2.2.8-release, 09 mar 2015 - A.6. Version 2.2.7-release, 20 jan 2015 - A.7. Version 2.2.6-release, 13 nov 2014 - A.8. Version 2.2.5-release, 06 oct 2014 - A.9. Version 2.2.4-release, 11 sep 2014 - A.10. Version 2.2.3-beta, 13 may 2014 - A.11. Version 2.2.2-beta, 11 feb 2014 - A.12. Version 2.2.1-beta, 13 nov 2013 - A.13. Version 2.1.9-release, 03 jul 2014 - A.14. Version 2.1.8-release, 28 apr 2014 - A.15. Version 2.1.7-release, 30 mar 2014 - A.16. Version 2.1.6-release, 24 feb 2014 - A.17. Version 2.1.5-release, 22 jan 2014 - A.18. Version 2.1.4-release, 18 dec 2013 - A.19. Version 2.1.3-release, 12 nov 2013 - A.20. Version 2.1.2-release, 10 oct 2013 - A.21. Version 2.1.1-beta, 20 feb 2013 - A.22. Version 2.0.11-dev, xx xxx xxxx - A.23. Version 2.0.10-release, 22 jan 2014 - A.24. Version 2.0.9-release, 26 aug 2013 - A.25. Version 2.0.8-release, 26 apr 2013 - A.26. Version 2.0.7-release, 26 mar 2013 - A.27. Version 2.0.6-release, 22 oct 2012 - A.28. Version 2.0.5-release, 28 jul 2012 - A.29. Version 2.0.4-release, 02 mar 2012 - A.30. Version 2.0.3-release, 23 dec 2011 - A.31. Version 2.0.2-beta, 15 nov 2011 - A.32. Version 2.0.1-beta, 22 apr 2011 - A.33. Version 1.10-beta, 19 jul 2010 - A.34. Version 0.9.9-release, 02 dec 2009 - A.35. Version 0.9.9-rc2, 08 apr 2009 - A.36. Version 0.9.9-rc1, 17 nov 2008 - A.37. Version 0.9.8.1, 30 oct 2008 - A.38. Version 0.9.8, 14 jul 2008 - A.39. Version 0.9.7, 02 apr 2007 - A.40. Version 0.9.7-rc2, 15 dec 2006 - A.41. Version 0.9.7-rc1, 26 oct 2006 - A.42. Version 0.9.6, 24 jul 2006 - A.43. Version 0.9.6-rc1, 26 jun 2006 + A.1. Version 2.3.2-beta, 09 sep 2016 + A.2. Version 2.3.1-beta, 03 mar 2015 + A.3. Version 2.2.11-release, 19 jul 2016 + A.4. Version 2.2.10-release, 07 sep 2015 + A.5. Version 2.2.9-release, 16 apr 2015 + A.6. Version 2.2.8-release, 09 mar 2015 + A.7. Version 2.2.7-release, 20 jan 2015 + A.8. Version 2.2.6-release, 13 nov 2014 + A.9. Version 2.2.5-release, 06 oct 2014 + A.10. Version 2.2.4-release, 11 sep 2014 + A.11. Version 2.2.3-beta, 13 may 2014 + A.12. Version 2.2.2-beta, 11 feb 2014 + A.13. Version 2.2.1-beta, 13 nov 2013 + A.14. Version 2.1.9-release, 03 jul 2014 + A.15. Version 2.1.8-release, 28 apr 2014 + A.16. Version 2.1.7-release, 30 mar 2014 + A.17. Version 2.1.6-release, 24 feb 2014 + A.18. Version 2.1.5-release, 22 jan 2014 + A.19. Version 2.1.4-release, 18 dec 2013 + A.20. Version 2.1.3-release, 12 nov 2013 + A.21. Version 2.1.2-release, 10 oct 2013 + A.22. Version 2.1.1-beta, 20 feb 2013 + A.23. Version 2.0.11-dev, xx xxx xxxx + A.24. Version 2.0.10-release, 22 jan 2014 + A.25. Version 2.0.9-release, 26 aug 2013 + A.26. Version 2.0.8-release, 26 apr 2013 + A.27. Version 2.0.7-release, 26 mar 2013 + A.28. Version 2.0.6-release, 22 oct 2012 + A.29. Version 2.0.5-release, 28 jul 2012 + A.30. Version 2.0.4-release, 02 mar 2012 + A.31. Version 2.0.3-release, 23 dec 2011 + A.32. Version 2.0.2-beta, 15 nov 2011 + A.33. Version 2.0.1-beta, 22 apr 2011 + A.34. Version 1.10-beta, 19 jul 2010 + A.35. Version 0.9.9-release, 02 dec 2009 + A.36. Version 0.9.9-rc2, 08 apr 2009 + A.37. Version 0.9.9-rc1, 17 nov 2008 + A.38. Version 0.9.8.1, 30 oct 2008 + A.39. Version 0.9.8, 14 jul 2008 + A.40. Version 0.9.7, 02 apr 2007 + A.41. Version 0.9.7-rc2, 15 dec 2006 + A.42. Version 0.9.7-rc1, 26 oct 2006 + A.43. Version 0.9.6, 24 jul 2006 + A.44. Version 0.9.6-rc1, 26 jun 2006 List of Tables @@ -804,10 +810,10 @@ project files) manually. 1. Extract everything from the distribution tarball (haven't you already?) and go to the sphinx subdirectory. (We are using version - 2.3.2-dev here for the sake of example only; be sure to change this + 2.3.2-beta here for the sake of example only; be sure to change this to a specific version you're using.) - | $ tar xzvf sphinx-2.3.2-dev.tar.gz + | $ tar xzvf sphinx-2.3.2-beta.tar.gz | $ cd sphinx 2. Run the configuration program: @@ -886,7 +892,7 @@ Deb packages: $ sudo apt-get install mysql-client unixodbc libpq5 2. Now you can install Sphinx: - $ sudo dpkg -i sphinxsearch_2.3.2-dev-0ubuntu11~trusty_amd64.deb + $ sudo dpkg -i sphinxsearch_2.3.2-beta-1~trusty_amd64.deb PPA repository (Ubuntu only). @@ -936,10 +942,10 @@ a Linux environment; unless you are preparing code patches, you can use the pre-compiled binary files from the Downloads area on the website. 1. Extract everything from the .zip file you have downloaded - - sphinx-2.3.2-dev-win32.zip, or sphinx-2.3.2-dev-win32-pgsql.zip if - you need PostgresSQL support as well. (We are using version 2.3.2-dev - here for the sake of example only; be sure to change this to - a specific version you're using.) You can use Windows Explorer in + sphinx-2.3.2-beta-win32.zip, or sphinx-2.3.2-beta-win32-pgsql.zip if + you need PostgresSQL support as well. (We are using version + 2.3.2-beta here for the sake of example only; be sure to change this + to a specific version you're using.) You can use Windows Explorer in Windows XP and up to extract the files, or a freeware package like 7Zip to open the archive. @@ -2168,9 +2174,10 @@ Table of Contents 5.9.2. SphinxQL log format 5.10. MySQL protocol support and SphinxQL -5.11. Multi-queries -5.12. Collations -5.13. Query cache +5.11. HTTP protocol +5.12. Multi-queries +5.13. Collations +5.14. Query cache 5.1. Matching modes =================== @@ -3068,6 +3075,8 @@ and functions. Here's the complete reference list for quick access. * GREATEST() + * HOUR() + * IDIV() * IF() @@ -3094,6 +3103,8 @@ and functions. Here's the complete reference list for quick access. * MIN() + * MINUTE() + * MIN_TOP_SORTVAL() * MIN_TOP_WEIGHT() @@ -3106,8 +3117,12 @@ and functions. Here's the complete reference list for quick access. * POW() + * RAND() + * REMAP() + * SECOND() + * SIN() * SINT() @@ -3286,6 +3301,18 @@ YEARMONTHDAY() range) from a timestamp argument, according to the current timezone. Introduced in version 2.0.1-beta. +SECOND() + Returns the integer second (in 0..59 range) from a timestamp argument, + according to the current timezone. Introduced in version 2.3.2-beta. + +MINUTE() + Returns the integer minute (in 0..59 range) from a timestamp argument, + according to the current timezone. Introduced in version 2.3.2-beta. + +HOUR() + Returns the integer hour (in 0..23 range) from a timestamp argument, + according to the current timezone. Introduced in version 2.3.2-beta. + 5.5.4. Type conversion functions -------------------------------- @@ -3595,6 +3622,10 @@ REMAP() | SELECT REMAP(userid, karmapoints, (1, 67), (999, 0)) FROM users; | SELECT REMAP(id%10, salary, (0), (0.0)) FROM employes; +rand() + RAND(seed) function was added in 2.3.2-beta. Returns a random float + between 0..1. Optional, an integer seed value can be specified. + 5.6. Sorting modes ================== @@ -4008,7 +4039,31 @@ supports the standard querying all the index types with SELECT, modifying RT indexes with INSERT, REPLACE, and DELETE, and much more. Full SphinxQL reference is available in Chapter 8, SphinxQL reference. -5.11. Multi-queries +5.11. HTTP protocol +=================== + +Starting with 2.3.2-beta, Sphinx search daemon supports HTTP protocol and +can be accessed with regular HTTP clients. Supported endpoints: + + * / - default response, returns a simple HTML page + + * /search - allows a simple full-text search, parameters can be : index + (index or list of indexes), match (equivalent of MATCH()), select (as + SELECT clause), group (grouping attribute), order (SQL-like sorting), + limit (equivalent of LIMIT 0,N) + + | curl -X POST 'http://sphinxsearch:9308/search/' + | -d 'index=forum&match=@subject php sphinx&select=id,subject,author_id&limit=5' + + * / sql - allows running a SELECT SphinxQL, set as query parameter + + | curl -X POST 'http://sphinxsearch:9308/sql/' + | -d 'query=select id,subject,author_id from forum where match('@subject php sphinx') group by author_id order by id desc limit 0,5' + +The result for /sql/ and /search/ endpoints is an array of attrs,matches +and meta, same as for SphinxAPI, encoded as a JSON object. + +5.12. Multi-queries =================== Multi-queries, or query batches, let you send multiple queries to Sphinx in @@ -4016,14 +4071,14 @@ one go (more formally, one network request). Two API methods that implement multi-query mechanism are AddQuery() and RunQueries(). You can also run multiple queries with SphinxQL, see -Section 8.43, <>. (In fact, regular Query() call +Section 8.45, <>. (In fact, regular Query() call is internally implemented as a single AddQuery() call immediately followed by RunQueries() call.) AddQuery() captures the current state of all the query settings set by previous API calls, and memorizes the query. RunQueries() actually sends all the memorized queries, and returns multiple result sets. There are no restrictions on the queries at all, except just a sanity check on a number of queries in a single batch (see -Section 12.4.22, <>). +Section 12.4.23, <>). Why use multi-queries? Generally, it all boils down to performance. First, by sending requests to searchd in a batch instead of one by one, you always @@ -4120,7 +4175,7 @@ common query and common subtree optimizations, there were reports of 3x and even more improvements, and that's from production instances, not just synthetic tests. -5.12. Collations +5.13. Collations ================ Introduced to Sphinx in version 2.0.1-beta to supplement string sorting, @@ -4215,7 +4270,7 @@ within ORDER BY and GROUP BY, so differently ordered or grouped results can be returned depending on the collation chosen. Note that collations don't affect full-text searching, for that use charset_table. -5.13. Query cache +5.14. Query cache ================= Query cache, added in 2.3.1-beta, stores a compressed result set in memory, @@ -4854,7 +4909,10 @@ performed. These options are: updated attributes in the index, but not in the actual source used for the index, all updates will be lost when reindexing; using --keep-attrs enables saving the updated attribute values from the - previous index + previous index. Starting with 2.3.2-beta it is possible to specify + a path for index files to used instead of reference path from config: + + | indexer myindex --keep-attrs=/path/to/index/files * --dump-rows dumps rows fetched by SQL source(s) into the specified file, in a MySQL compatible syntax. Resulting dumps are the @@ -5311,37 +5369,39 @@ Table of Contents 8.13. ROLLBACK syntax 8.14. CALL SNIPPETS syntax 8.15. CALL KEYWORDS syntax -8.16. SHOW TABLES syntax -8.17. DESCRIBE syntax -8.18. CREATE FUNCTION syntax -8.19. DROP FUNCTION syntax -8.20. SHOW VARIABLES syntax -8.21. SHOW COLLATION syntax -8.22. SHOW CHARACTER SET syntax -8.23. UPDATE syntax -8.24. ALTER syntax -8.25. ATTACH INDEX syntax -8.26. FLUSH RTINDEX syntax -8.27. FLUSH RAMCHUNK syntax -8.28. FLUSH ATTRIBUTES syntax -8.29. TRUNCATE RTINDEX syntax -8.30. SHOW AGENT STATUS -8.31. SHOW PROFILE syntax -8.32. SHOW INDEX STATUS syntax -8.33. SHOW INDEX SETTINGS syntax -8.34. OPTIMIZE INDEX syntax -8.35. SHOW PLAN syntax -8.36. SHOW DATABASES syntax -8.37. CREATE PLUGIN syntax -8.38. DROP PLUGIN syntax -8.39. SHOW PLUGINS syntax -8.40. RELOAD PLUGINS syntax -8.41. SHOW THREADS syntax -8.42. RELOAD INDEX syntax -8.43. Multi-statement queries -8.44. Comment syntax -8.45. List of SphinxQL reserved keywords -8.46. SphinxQL upgrade notes, version 2.0.1-beta +8.16. CALL QSUGGEST syntax +8.17. SHOW TABLES syntax +8.18. DESCRIBE syntax +8.19. CREATE FUNCTION syntax +8.20. DROP FUNCTION syntax +8.21. SHOW VARIABLES syntax +8.22. SHOW COLLATION syntax +8.23. SHOW CHARACTER SET syntax +8.24. UPDATE syntax +8.25. ALTER syntax +8.26. ATTACH INDEX syntax +8.27. FLUSH RTINDEX syntax +8.28. FLUSH RAMCHUNK syntax +8.29. FLUSH ATTRIBUTES syntax +8.30. FLUSH HOSTNAMES syntax +8.31. TRUNCATE RTINDEX syntax +8.32. SHOW AGENT STATUS +8.33. SHOW PROFILE syntax +8.34. SHOW INDEX STATUS syntax +8.35. SHOW INDEX SETTINGS syntax +8.36. OPTIMIZE INDEX syntax +8.37. SHOW PLAN syntax +8.38. SHOW DATABASES syntax +8.39. CREATE PLUGIN syntax +8.40. DROP PLUGIN syntax +8.41. SHOW PLUGINS syntax +8.42. RELOAD PLUGINS syntax +8.43. SHOW THREADS syntax +8.44. RELOAD INDEX syntax +8.45. Multi-statement queries +8.46. Comment syntax +8.47. List of SphinxQL reserved keywords +8.48. SphinxQL upgrade notes, version 2.0.1-beta SphinxQL is our SQL dialect that exposes all of the search daemon functionality using a standard SQL syntax with a few Sphinx-specific @@ -5464,7 +5524,7 @@ omissions (such as (currently) missing support for JOINs). Specifically, | GROUP BY vendorid Starting with 2.0.1-beta, GROUP BY on a string attribute is supported, - with respect for current collation (see Section 5.12, <>). + with respect for current collation (see Section 5.13, <>). Starting with 2.2.1-beta, you can query Sphinx to return (no more than) N top matches for each group accordingly to WITHIN GROUP ORDER @@ -5506,7 +5566,7 @@ omissions (such as (currently) missing support for JOINs). Specifically, | ORDER BY timeseg DESC, w DESC Starting with 2.0.1-beta, WITHIN GROUP ORDER BY on a string attribute - is supported, with respect for current collation (see Section 5.12, + is supported, with respect for current collation (see Section 5.13, <>). * HAVING clause. This is used to filter on GROUP BY values. It was added @@ -5536,7 +5596,7 @@ omissions (such as (currently) missing support for JOINs). Specifically, be evaluated just for a subset of values. Starting with 2.0.1-beta, ORDER BY on a string attribute is supported, - with respect for current collation (see Section 5.12, <>). + with respect for current collation (see Section 5.13, <>). Starting with 2.0.2-beta, ORDER BY RAND() syntax is supported. Note that this syntax is actually going to randomize the weight values and @@ -5656,7 +5716,7 @@ omissions (such as (currently) missing support for JOINs). Specifically, * 'max_query_time' - integer (max search time threshold, msec) * 'max_predicted_time' - integer (max predicted search time, see - Section 12.4.44, <>) + Section 12.4.45, <>) * 'ranker' - any of 'proximity_bm25', 'bm25', 'none', 'wordcount', 'proximity', 'matchany', 'fieldmask', 'sph04', 'expr', or 'export' @@ -5681,6 +5741,9 @@ omissions (such as (currently) missing support for JOINs). Specifically, default, a new and different seed value is autogenerated for every query. + * 'low_priority' - runs the query with idle priority, introduced in + 2.3.2-beta. + Example: | SELECT * FROM test WHERE MATCH('@title hello @body world') @@ -6090,7 +6153,7 @@ AUTOCOMMIT = {0 | 1} COLLATION_CONNECTION = collation_name Selects the collation to be used for ORDER BY or GROUP BY on string - values in the subsequent queries. Refer to Section 5.12, <> + values in the subsequent queries. Refer to Section 5.13, <> for a list of known collation names. Introduced in version 2.0.1-beta. CHARACTER_SET_RESULTS = charset_name @@ -6110,7 +6173,7 @@ SQL_MODE = value PROFILING = {0 | 1} Enables query profiling in the current session. Defaults to 0. See also - Section 8.31, <>. Introduced in version 2.1.1-beta. + Section 8.33, <>. Introduced in version 2.1.1-beta. Known global server variables are: @@ -6223,7 +6286,7 @@ documented in Section 9.7.1, <>. Usage example: 8.15. CALL KEYWORDS syntax ========================== - | CALL KEYWORDS(text, index [, 1]) + | CALL KEYWORDS(text, index [, options]) CALL KEYWORDS statement, introduced in version 1.10-beta, splits text into particular keywords. It returns tokenized and normalized forms of the @@ -6232,11 +6295,91 @@ also returns the position of each keyword in the query and all forms of tokenized keywords in the case that lemmatizers were used. text is the text to break down to keywords. index is the name of the index -from which to take the text processing settings. hits is an optional -boolean parameter that specifies whether to return document and hit -occurrence statistics. +from which to take the text processing settings. options prior 2.3.2-beta, +is an optional boolean parameter that specifies whether to return document +and hit occurrence statistics. options starting with 2.3.2-beta, can also +accept parameters for configuring folding depending on tokenization +settings: + + * stats - show statistics of keywords, default is 0 + + * fold_wildcards - fold wildcards, default is 1 + + * fold_lemmas - fold morphological lemmas, default is 0 -8.16. SHOW TABLES syntax + * fold_blended - fold blended words, default is 0 + + * expansion_limit - override expansion_limit defined in configuration, + default is 0 (use value from configuration) + + | call keywords( + | 'que*', + | 'myindex', + | 1 as fold_wildcards, + | 1 as fold_lemmas, + | 1 as fold_blended, + | 1 as expansion_limit, + | 1 as stats); + +Default values to match previous CALL KEYWORDS output are: + + | call keywords( + | 'que*', + | 'myindex', + | 1 as fold_wildcards, + | 0 as fold_lemmas, + | 0 as fold_blended, + | 0 as expansion_limit, + | 0 as stats); + +8.16. CALL QSUGGEST syntax +========================== + + | CALL QSUGGEST(word, index [,options]) + +CALL QSUGGEST statement, introduced in version 2.3.2-beta, enumerates for +a giving word all suggestions from the dictionary. This statement works +only on indexes with infixing enabled and dict=keywords. It returns the +suggested keywords, Levenshtein distance between the suggested and original +keyword and the docs statistic of the suggested keyword. Several options +are supported for customization: + + * limit - returned N top matches, default is 5 + + * max_edits - keep only dictionary words which Levenshtein distance is + less or equal, default is 4 + + * result_stats - provide Levenshtein distance and document count of the + found words, default is 1 (enabled) + + * delta_len - keep only dictionary words whose length difference is + less, default is 3 + + * max_matches - number of matches to keep, default is 25 + + * reject - defaults to 4; rejected words are matches that are not better + than those already in the match queue. They are put in a rejected + queue that gets reset in case one actually can go in the match queue. + This parameter defines the size of the rejected queue (as + reject*max(max_matched,limit)). If the rejected queue is filled, the + engine stops looking for potential matches. + + * result_line - alternate mode to display the data by returning all + suggests, distances and docs each per one row, default is 0 + + | mysql> CALL QSUGGEST('automaticlly ','forum', 5 as limit, 4 as max_edits,1 as result_stats,3 as delta_len,0 as result_line,25 as max_matches,4 as reject ); + | +---------------+----------+------+ + | | suggest | distance | docs | + | +---------------+----------+------+ + | | automatically | 1 | 282 | + | | automaticly | 1 | 6 | + | | automaticaly | 1 | 3 | + | | automagically | 2 | 14 | + | | automtically | 2 | 1 | + | +---------------+----------+------+ + | 5 rows in set (0.00 sec) + +8.17. SHOW TABLES syntax ======================== | SHOW TABLES [ LIKE pattern ] @@ -6267,7 +6410,7 @@ Refer to Section 8.3, <> for its syntax details. | +-------+-------------+ | 1 row in set (0.00 sec) -8.17. DESCRIBE syntax +8.18. DESCRIBE syntax ===================== | {DESC | DESCRIBE} index [ LIKE pattern ] @@ -6294,7 +6437,7 @@ binaries were built with 32-bit or 64-bit document ID support. Example: Starting from version 2.1.1-beta, an optional LIKE clause is supported. Refer to Section 8.3, <> for its syntax details. -8.18. CREATE FUNCTION syntax +8.19. CREATE FUNCTION syntax ============================ | CREATE FUNCTION udf_name @@ -6320,7 +6463,7 @@ queries that the server receives. Example: | | 4 | 1 | 7,40 | 23.500000 | | +------+--------+---------+-----------+ -8.19. DROP FUNCTION syntax +8.20. DROP FUNCTION syntax ========================== | DROP FUNCTION udf_name @@ -6334,7 +6477,7 @@ postponed until those queries complete. Example: | mysql> DROP FUNCTION avgmva; | Query OK, 0 rows affected (0.00 sec) -8.20. SHOW VARIABLES syntax +8.21. SHOW VARIABLES syntax =========================== | SHOW [{GLOBAL | SESSION}] VARIABLES [WHERE variable_name='xxx'] @@ -6364,7 +6507,7 @@ added. Starting from 2.1.1-beta, support for WHERE variable_name clause was added, to help certain connectors. -8.21. SHOW COLLATION syntax +8.22. SHOW COLLATION syntax =========================== | SHOW COLLATION @@ -6376,7 +6519,7 @@ with frameworks and connectors that automatically execute this statement. | mysql> SHOW COLLATION; | Query OK, 0 rows affected (0.00 sec) -8.22. SHOW CHARACTER SET syntax +8.23. SHOW CHARACTER SET syntax =============================== | SHOW CHARACTER SET @@ -6394,7 +6537,7 @@ automatically execute this statement. | +---------+---------------+-------------------+--------+ | 1 row in set (0.00 sec) -8.23. UPDATE syntax +8.24. UPDATE syntax =================== | UPDATE index SET col1 = newval1 [, ...] WHERE where_condition [OPTION opt_name = opt_value [, ...]] @@ -6453,7 +6596,7 @@ Specifically for UPDATE statement you can use these options: you try to update, for example, array type you'll get error with 'strict' option on and warning otherwise. -8.24. ALTER syntax +8.25. ALTER syntax ================== | ALTER TABLE index {ADD|DROP} COLUMN column_name [{INTEGER|INT|BIGINT|FLOAT|BOOL|MULTI|MULTI64|JSON|STRING}] @@ -6523,7 +6666,7 @@ warnings regarding the keyword sets mismatch. | +------------+-----------+ | 4 rows in set (0.00 sec) -8.25. ATTACH INDEX syntax +8.26. ATTACH INDEX syntax ========================= | ATTACH INDEX diskindex TO RTINDEX rtindex @@ -6550,7 +6693,7 @@ ATTACH INDEX a one-time conversion operation only. Those restrictions may be lifted in future releases, as we add the needed functionality to the RT indexes. The complete list is as follows. - * Target RT index needs to be empty. (See Section 8.29, <>) * Source disk index needs to have index_sp=0, boundary_step=0, @@ -6611,7 +6754,7 @@ indexes. The complete list is as follows. | mysql> SELECT * FROM disk WHERE MATCH('test'); | ERROR 1064 (42000): no enabled local indexes to search -8.26. FLUSH RTINDEX syntax +8.27. FLUSH RTINDEX syntax ========================== | FLUSH RTINDEX rtindex @@ -6636,7 +6779,7 @@ instant. | mysql> FLUSH RTINDEX rt; | Query OK, 0 rows affected (0.05 sec) -8.27. FLUSH RAMCHUNK syntax +8.28. FLUSH RAMCHUNK syntax =========================== | FLUSH RAMCHUNK rtindex @@ -6659,7 +6802,7 @@ command. Such combo allows to keep RT index fragmentation on minimum. | mysql> FLUSH RAMCHUNK rt; | Query OK, 0 rows affected (0.05 sec) -8.28. FLUSH ATTRIBUTES syntax +8.29. FLUSH ATTRIBUTES syntax ============================= | FLUSH ATTRIBUTES @@ -6680,7 +6823,18 @@ since the daemon startup). | +------+ | 1 row in set (0.19 sec) -8.29. TRUNCATE RTINDEX syntax +8.30. FLUSH HOSTNAMES syntax +============================ + + | FLUSH HOSTNAMES + +Added in 2.3.2-beta. Renew IPs associates to agent host names. To always +query the DNS for getting the host name IP, see hostname_lookup directive. + + | mysql> FLUSH HOSTNAMES; + | Query OK, 5 rows affected (0.01 sec) + +8.31. TRUNCATE RTINDEX syntax ============================= | TRUNCATE RTINDEX rtindex @@ -6695,9 +6849,9 @@ data files, and releases the associated binary logs. You may want to use this if you are using RT indices as "delta index" files; when you build the main index, you need to wipe the delta index, and thus TRUNCATE RTINDEX. You also need to use this command before attaching -an index; see Section 8.25, <>. +an index; see Section 8.26, <>. -8.30. SHOW AGENT STATUS +8.32. SHOW AGENT STATUS ======================= | SHOW AGENT ['agent'|'index'|index] STATUS [ LIKE pattern ] @@ -6825,7 +6979,7 @@ when one of the weighted-probability strategies is in effect). | +--------------------------------------+--------------------------------+ | 13 rows in set (0.00 sec) -8.31. SHOW PROFILE syntax +8.33. SHOW PROFILE syntax ========================= | SHOW PROFILE @@ -6923,7 +7077,7 @@ Here's a brief description of the currently profiled states. * aggregate, aggregating multiple result sets. * net_write, writing the result set to the network. -8.32. SHOW INDEX STATUS syntax +8.34. SHOW INDEX STATUS syntax ============================== | SHOW INDEX index_name STATUS @@ -6938,6 +7092,14 @@ Currently, those include: ranking purposes). Only available for indexes built with index_field_lengths=1. * ram_bytes, total size (in bytes) of the RAM-resident index portion. + * queries time statistics of last 1 minute, 5 minutes, 15 minutes and + total since daemon start;data is encapsulated as a JSON object which + includes number of queries, min,max,avg,95 and 99 percentile values; + introduced in 2.3.2-beta + * queries found rows statistics of last 1 minute, 5 minutes, 15 minutes + and total since daemon start;data is encapsulated as a JSON object + which includes number of queries, min,max,avg,95 and 99 percentile + values; introduced in 2.3.2-beta | mysql> SHOW INDEX lj STATUS; | +--------------------+-------------+ @@ -6955,7 +7117,7 @@ Currently, those include: | +--------------------+-------------+ | 8 rows in set (0.00 sec) -8.33. SHOW INDEX SETTINGS syntax +8.35. SHOW INDEX SETTINGS syntax ================================ | SHOW INDEX index_name[.N | CHUNK N] SETTINGS @@ -6965,7 +7127,7 @@ to the --dumpconfig option of the indextool. The report provides a breakdown of all the index settings, including tokenizer and dictionary options. You may also specify a particular chunk number for the RT indexes. -8.34. OPTIMIZE INDEX syntax +8.36. OPTIMIZE INDEX syntax =========================== | OPTIMIZE INDEX index_name @@ -7001,7 +7163,7 @@ be optimized automatically. That might change in the future releases. | mysql> OPTIMIZE INDEX rt; | Query OK, 0 rows affected (0.00 sec) -8.35. SHOW PLAN syntax +8.37. SHOW PLAN syntax ====================== | SHOW PLAN @@ -7043,7 +7205,7 @@ expansions and other transformations: | AND(fields=(body), KEYWORD(hey, querypos=2))) | 1 row in set (0.00 sec) -8.36. SHOW DATABASES syntax +8.38. SHOW DATABASES syntax =========================== | SHOW DATABASES @@ -7051,7 +7213,7 @@ expansions and other transformations: Added in 2.2.1-beta. This is a dummy statement to support MySQL Workbench and other clients that require it. Currently, it does absolutely nothing. -8.37. CREATE PLUGIN syntax +8.39. CREATE PLUGIN syntax ========================== | CREATE PLUGIN plugin_name TYPE 'plugin_type' SONAME 'plugin_library' @@ -7072,7 +7234,7 @@ writing the plugins. | mysql> CREATE PLUGIN myranker TYPE 'ranker' SONAME 'myplugins.so'; | Query OK, 0 rows affected (0.00 sec) -8.38. DROP PLUGIN syntax +8.40. DROP PLUGIN syntax ======================== | DROP PLUGIN plugin_name TYPE 'plugin_type' @@ -7087,7 +7249,7 @@ the library is also automatically unloaded. | mysql> DROP PLUGIN myranker TYPE 'ranker'; | Query OK, 0 rows affected (0.00 sec) -8.39. SHOW PLUGINS syntax +8.41. SHOW PLUGINS syntax ========================= | SHOW PLUGINS @@ -7107,7 +7269,7 @@ the return type for the UDFs and is empty for all the other plugin types. | +------+----------+----------------+-------+-------+ | 1 row in set (0.00 sec) -8.40. RELOAD PLUGINS syntax +8.42. RELOAD PLUGINS syntax =========================== | RELOAD PLUGINS FROM SONAME 'plugin_library' @@ -7139,7 +7301,7 @@ reload you will also be able to delete the renamed old library, too. | mysql> RELOAD PLUGINS FROM SONAME 'udfexample.dll'; | Query OK, 0 rows affected (0.00 sec) -8.41. SHOW THREADS syntax +8.43. SHOW THREADS syntax ========================= | SHOW THREADS [ OPTION columns=width ] @@ -7172,7 +7334,7 @@ API-snippet, the data size will be displayed along with the query. | +------+----------+-------+----------+----------------------------------------------------+ | 3 row in set (0.00 sec) -8.42. RELOAD INDEX syntax +8.44. RELOAD INDEX syntax ========================= | RELOAD INDEX idx [ FROM '/path/to/index_files' ] @@ -7191,11 +7353,11 @@ from index_files.sp? to idx.new.sp? and rotate them. | mysql> RELOAD INDEX plain_index; | mysql> RELOAD INDEX plain_index FROM '/home/mighty/new_index_files'; -8.43. Multi-statement queries +8.45. Multi-statement queries ============================= Starting version 2.0.1-beta, SphinxQL supports multi-statement queries, or -batches. Possible inter-statement optimizations described in Section 5.11, +batches. Possible inter-statement optimizations described in Section 5.12, <> do apply to SphinxQL just as well. The batched queries should be separated by a semicolon. Your MySQL client library needs to support MySQL multi-query mechanism and multiple result set. For instance, @@ -7249,7 +7411,7 @@ WARNINGS, SHOW STATUS, and SHOW META. Arbitrary sequence of these statements are allowed. The results sets returned should match those that would be returned if the batched queries were sent one by one. -8.44. Comment syntax +8.46. Comment syntax ==================== Since version 2.0.1-beta, SphinxQL supports C-style comment syntax. @@ -7262,7 +7424,7 @@ between Sphinx and MySQL.) | SELECT /*! SQL_CALC_FOUND_ROWS */ col1 FROM table1 WHERE ... -8.45. List of SphinxQL reserved keywords +8.47. List of SphinxQL reserved keywords ======================================== A complete alphabetical list of keywords that are currently reserved in @@ -7271,7 +7433,7 @@ SphinxQL syntax (and therefore can not be used as identifiers). | AND, AS, BY, DIV, FACET, FALSE, FROM, ID, IN, IS, LIMIT, | MOD, NOT, NULL, OR, ORDER, SELECT, TRUE -8.46. SphinxQL upgrade notes, version 2.0.1-beta +8.48. SphinxQL upgrade notes, version 2.0.1-beta ================================================ This section only applies to existing applications that use SphinxQL @@ -9114,54 +9276,56 @@ Table of Contents 12.4.4. query_log_format 12.4.5. read_timeout 12.4.6. client_timeout - 12.4.7. max_children - 12.4.8. net_workers - 12.4.9. queue_max_length - 12.4.10. pid_file - 12.4.11. seamless_rotate - 12.4.12. preopen_indexes - 12.4.13. unlink_old - 12.4.14. attr_flush_period - 12.4.15. max_packet_size - 12.4.16. mva_updates_pool - 12.4.17. max_filters - 12.4.18. max_filter_values - 12.4.19. listen_backlog - 12.4.20. read_buffer - 12.4.21. read_unhinted - 12.4.22. max_batch_queries - 12.4.23. subtree_docs_cache - 12.4.24. subtree_hits_cache - 12.4.25. workers - 12.4.26. dist_threads - 12.4.27. binlog_path - 12.4.28. binlog_flush - 12.4.29. binlog_max_log_size - 12.4.30. snippets_file_prefix - 12.4.31. collation_server - 12.4.32. collation_libc_locale - 12.4.33. mysql_version_string - 12.4.34. rt_flush_period - 12.4.35. thread_stack - 12.4.36. expansion_limit - 12.4.37. watchdog - 12.4.38. sphinxql_state - 12.4.39. ha_ping_interval - 12.4.40. ha_period_karma - 12.4.41. persistent_connections_limit - 12.4.42. rt_merge_iops - 12.4.43. rt_merge_maxiosize - 12.4.44. predicted_time_costs - 12.4.45. shutdown_timeout - 12.4.46. ondisk_attrs_default - 12.4.47. query_log_min_msec - 12.4.48. agent_connect_timeout - 12.4.49. agent_query_timeout - 12.4.50. agent_retry_count - 12.4.51. agent_retry_delay - 12.4.52. qcache_max_bytes - 12.4.53. qcache_thresh_msec - 12.4.54. qcache_ttl_sec + 12.4.7. sphinxql_timeout + 12.4.8. max_children + 12.4.9. net_workers + 12.4.10. queue_max_length + 12.4.11. pid_file + 12.4.12. seamless_rotate + 12.4.13. preopen_indexes + 12.4.14. unlink_old + 12.4.15. attr_flush_period + 12.4.16. max_packet_size + 12.4.17. mva_updates_pool + 12.4.18. max_filters + 12.4.19. max_filter_values + 12.4.20. listen_backlog + 12.4.21. read_buffer + 12.4.22. read_unhinted + 12.4.23. max_batch_queries + 12.4.24. subtree_docs_cache + 12.4.25. subtree_hits_cache + 12.4.26. workers + 12.4.27. dist_threads + 12.4.28. binlog_path + 12.4.29. binlog_flush + 12.4.30. binlog_max_log_size + 12.4.31. snippets_file_prefix + 12.4.32. collation_server + 12.4.33. collation_libc_locale + 12.4.34. mysql_version_string + 12.4.35. rt_flush_period + 12.4.36. thread_stack + 12.4.37. expansion_limit + 12.4.38. watchdog + 12.4.39. sphinxql_state + 12.4.40. ha_ping_interval + 12.4.41. ha_period_karma + 12.4.42. persistent_connections_limit + 12.4.43. rt_merge_iops + 12.4.44. rt_merge_maxiosize + 12.4.45. predicted_time_costs + 12.4.46. shutdown_timeout + 12.4.47. ondisk_attrs_default + 12.4.48. query_log_min_msec + 12.4.49. agent_connect_timeout + 12.4.50. agent_query_timeout + 12.4.51. agent_retry_count + 12.4.52. agent_retry_delay + 12.4.53. hostname_lookup + 12.4.54. qcache_max_bytes + 12.4.55. qcache_thresh_msec + 12.4.56. qcache_ttl_sec 12.5. Common section configuration options 12.5.1. lemmatizer_base @@ -11257,7 +11421,7 @@ in different distributed indexes. Note that by default all local indexes will be searched sequentially, utilizing only 1 CPU or core. To parallelize processing of the local parts in the distributed index, you should use dist_threads directive, see -Section 12.4.26, <>. +Section 12.4.27, <>. Before dist_threads, there also was a legacy solution to configure searchd to query itself instead of using local indexes (refer to Section 12.2.31, @@ -11323,7 +11487,7 @@ sequentially or in parallel too) depends solely on the agent configuration Starting with 2.2.9-release, the value can additionally enumerate per agent options such as: - * ha_strategy - random, roundrobin, nodeads, noerrors (replces index + * ha_strategy - random, roundrobin, nodeads, noerrors (replaces index ha_strategy for particular agent) * conn - pconn, persistent (same as agent_persistent agent declaration) @@ -12569,7 +12733,17 @@ Example: | client_timeout = 3600 -12.4.7. max_children +12.4.7. sphinxql_timeout +------------------------ + +Maximum time to wait between requests (in seconds) when using sphinxql +interface. Optional, default is 15 minutes. Introduced in 2.3.2-beta. + +Example: + + | sphinxql_timeout = 900 + +12.4.8. max_children -------------------- Maximum amount of worker threads (or in other words, concurrent queries to @@ -12608,7 +12782,7 @@ Example: | max_children = 10 -12.4.8. net_workers +12.4.9. net_workers ------------------- Number of network threads for workers=thread_pool mode, default is 1. @@ -12616,8 +12790,8 @@ Number of network threads for workers=thread_pool mode, default is 1. Useful for extremely high query rates, when just 1 thread is not enough to manage all the incoming queries. -12.4.9. queue_max_length ------------------------- +12.4.10. queue_max_length +------------------------- Maximum pending queries queue length for workers=thread_pool mode, default is 0 (unlimited). @@ -12626,7 +12800,7 @@ In case of high CPU load thread pool queries queue may grow all the time. This directive lets you constrain queue length and start rejecting incoming queries at some point with a "maxed out" message. -12.4.10. pid_file +12.4.11. pid_file ----------------- searchd process ID file name. Mandatory. @@ -12642,7 +12816,7 @@ Example: | pid_file = /var/run/searchd.pid -12.4.11. seamless_rotate +12.4.12. seamless_rotate ------------------------ Prevents searchd stalls while rotating indexes with huge amounts of data to @@ -12694,7 +12868,7 @@ Example: | seamless_rotate = 1 -12.4.12. preopen_indexes +12.4.13. preopen_indexes ------------------------ Whether to forcibly preopen all indexes on startup. Optional, default is @@ -12718,7 +12892,7 @@ Example: | preopen_indexes = 1 -12.4.13. unlink_old +12.4.14. unlink_old ------------------- Whether to unlink .old index copies on successful rotation. Optional, @@ -12728,7 +12902,7 @@ Example: | unlink_old = 0 -12.4.14. attr_flush_period +12.4.15. attr_flush_period -------------------------- When calling UpdateAttributes() to update document attributes in real-time, @@ -12748,7 +12922,7 @@ Example: | attr_flush_period = 900 # persist updates to disk every 15 minutes -12.4.15. max_packet_size +12.4.16. max_packet_size ------------------------ Maximum allowed network packet size. Limits both query packets from @@ -12761,7 +12935,7 @@ Example: | max_packet_size = 32M -12.4.16. mva_updates_pool +12.4.17. mva_updates_pool ------------------------- Shared pool size for in-memory MVA updates storage. Optional, default size @@ -12781,7 +12955,7 @@ Example: | mva_updates_pool = 16M -12.4.17. max_filters +12.4.18. max_filters -------------------- Maximum allowed per-query filter count. Only used for internal sanity @@ -12792,7 +12966,7 @@ Example: | max_filters = 1024 -12.4.18. max_filter_values +12.4.19. max_filter_values -------------------------- Maximum allowed per-filter values count. Only used for internal sanity @@ -12803,7 +12977,7 @@ Example: | max_filter_values = 16384 -12.4.19. listen_backlog +12.4.20. listen_backlog ----------------------- TCP listen backlog. Optional, default is 5. @@ -12819,7 +12993,7 @@ Example: | listen_backlog = 20 -12.4.20. read_buffer +12.4.21. read_buffer -------------------- Per-keyword read buffer size. Optional, default is 256K. @@ -12833,7 +13007,7 @@ Example: | read_buffer = 1M -12.4.21. read_unhinted +12.4.22. read_unhinted ---------------------- Unhinted read size. Optional, default is 32K. @@ -12850,7 +13024,7 @@ Example: | read_unhinted = 32K -12.4.22. max_batch_queries +12.4.23. max_batch_queries -------------------------- Limits the amount of queries per batch. Optional, default is 32. @@ -12862,13 +13036,13 @@ Example: | max_batch_queries = 256 -12.4.23. subtree_docs_cache +12.4.24. subtree_docs_cache --------------------------- Max common subtree document cache size, per-query. Optional, default is 0 (disabled). -Limits RAM usage of a common subtree optimizer (see Section 5.11, +Limits RAM usage of a common subtree optimizer (see Section 5.12, <>). At most this much RAM will be spent to cache document entries per each query. Setting the limit to 0 disables the optimizer. @@ -12876,13 +13050,13 @@ Example: | subtree_docs_cache = 8M -12.4.24. subtree_hits_cache +12.4.25. subtree_hits_cache --------------------------- Max common subtree hit cache size, per-query. Optional, default is 0 (disabled). -Limits RAM usage of a common subtree optimizer (see Section 5.11, +Limits RAM usage of a common subtree optimizer (see Section 5.12, <>). At most this much RAM will be spent to cache keyword occurrences (hits) per each query. Setting the limit to 0 disables the optimizer. @@ -12891,7 +13065,7 @@ Example: | subtree_hits_cache = 16M -12.4.25. workers +12.4.26. workers ---------------- Multi-processing mode (MPM). Optional; allowed values are thread_pool, and @@ -12924,7 +13098,7 @@ Example: | workers = thread_pool -12.4.26. dist_threads +12.4.27. dist_threads --------------------- Max local worker threads to use for parallelizable requests (searching @@ -12971,7 +13145,7 @@ Example: | | dist_threads = 4 -12.4.27. binlog_path +12.4.28. binlog_path -------------------- Binary log (aka transaction log) files path. Optional, default is @@ -13003,7 +13177,7 @@ Example: | binlog_path = # disable logging | binlog_path = /var/data # /var/data/binlog.001 etc will be created -12.4.28. binlog_flush +12.4.29. binlog_flush --------------------- Binary log transaction flush/sync mode. Optional, default is 2 (flush every @@ -13034,7 +13208,7 @@ Example: | binlog_flush = 1 # ultimate safety, low speed -12.4.29. binlog_max_log_size +12.4.30. binlog_max_log_size ---------------------------- Maximum binary log file size. Optional, default is 0 (do not reopen binlog @@ -13048,7 +13222,7 @@ Example: | binlog_max_log_size = 16M -12.4.30. snippets_file_prefix +12.4.31. snippets_file_prefix ----------------------------- A prefix to prepend to the local file names when generating snippets. @@ -13075,14 +13249,14 @@ Example: | snippets_file_prefix = /mnt/common/server1/ -12.4.31. collation_server +12.4.32. collation_server ------------------------- Default server collation. Optional, default is libc_ci. Introduced in version 2.0.1-beta. Specifies the default collation used for incoming requests. The collation -can be overridden on a per-query basis. Refer to Section 5.12, +can be overridden on a per-query basis. Refer to Section 5.13, <> section for the list of available collations and other details. @@ -13090,20 +13264,20 @@ Example: | collation_server = utf8_ci -12.4.32. collation_libc_locale +12.4.33. collation_libc_locale ------------------------------ Server libc locale. Optional, default is C. Introduced in version 2.0.1-beta. Specifies the libc locale, affecting the libc-based collations. Refer to -Section 5.12, <> section for the details. +Section 5.13, <> section for the details. Example: | collation_libc_locale = fr_FR -12.4.33. mysql_version_string +12.4.34. mysql_version_string ----------------------------- A server version string to return via MySQL protocol. Optional, default is @@ -13123,7 +13297,7 @@ Example: | mysql_version_string = 5.0.37 -12.4.34. rt_flush_period +12.4.35. rt_flush_period ------------------------ RT indexes RAM chunk flush check period, in seconds. Optional, default is @@ -13139,7 +13313,7 @@ Example: | rt_flush_period = 3600 # 1 hour -12.4.35. thread_stack +12.4.36. thread_stack --------------------- Per-thread stack size. Optional, default is 1M. Introduced in version @@ -13167,7 +13341,7 @@ Example: | thread_stack = 256K -12.4.36. expansion_limit +12.4.37. expansion_limit ------------------------ The maximum number of expanded keywords for a single wildcard. Optional, @@ -13185,7 +13359,7 @@ Example: | expansion_limit = 16 -12.4.37. watchdog +12.4.38. watchdog ----------------- Threaded server watchdog. Optional, default is 1 (watchdog enabled). @@ -13201,7 +13375,7 @@ Example: | watchdog = 0 # disable watchdog -12.4.38. sphinxql_state +12.4.39. sphinxql_state ----------------------- Path to a file where current SphinxQL state will be serialized. Available @@ -13218,7 +13392,7 @@ Example: | sphinxql_state = uservars.sql -12.4.39. ha_ping_interval +12.4.40. ha_ping_interval ------------------------- Interval between agent mirror pings, in milliseconds. Optional, default is @@ -13235,7 +13409,7 @@ Example: | ha_ping_interval = 0 -12.4.40. ha_period_karma +12.4.41. ha_period_karma ------------------------ Agent mirror statistics window size, in seconds. Optional, default is 60. @@ -13260,7 +13434,7 @@ Example: | ha_period_karma = 120 -12.4.41. persistent_connections_limit +12.4.42. persistent_connections_limit ------------------------------------- The maximum # of simultaneous persistent connections to remote persistent @@ -13279,7 +13453,7 @@ Example: | persistent_connections_limit = 29 # assume that each host of agents has max_children = 30 (or 29). -12.4.42. rt_merge_iops +12.4.43. rt_merge_iops ---------------------- A maximum number of I/O operations (per second) that the RT chunks merge @@ -13297,7 +13471,7 @@ Example: | rt_merge_iops = 40 -12.4.43. rt_merge_maxiosize +12.4.44. rt_merge_maxiosize --------------------------- A maximum size of an I/O operation that the RT chunks merge thread is @@ -13314,7 +13488,7 @@ Example: | rt_merge_maxiosize = 1M -12.4.44. predicted_time_costs +12.4.45. predicted_time_costs ----------------------------- Costs for the query time prediction model, in nanoseconds. Optional, @@ -13367,7 +13541,7 @@ Example: | predicted_time_costs = doc=128, hit=96, skip=4096, match=128 -12.4.45. shutdown_timeout +12.4.46. shutdown_timeout ------------------------- searchd --stopwait wait time, in seconds. Optional, default is 3 seconds. @@ -13383,7 +13557,7 @@ Example: | shutdown_timeout = 5 # wait for up to 5 seconds -12.4.46. ondisk_attrs_default +12.4.47. ondisk_attrs_default ----------------------------- Instance-wide defaults for ondisk_attrs directive. Optional, default is @@ -13392,7 +13566,7 @@ the default value of ondisk_attrs for all indexes served by this copy of searchd. Per-index directives take precedence, and will overwrite this instance-wide default value, allowing for fine-grain control. -12.4.47. query_log_min_msec +12.4.48. query_log_min_msec --------------------------- Limit (in milliseconds) that prevents the query from being written to the @@ -13400,20 +13574,20 @@ query log. Optional, default is 0 (all queries are written to the query log). This directive specifies that only queries with execution times that exceed the specified limit will be logged. -12.4.48. agent_connect_timeout +12.4.49. agent_connect_timeout ------------------------------ Instance-wide defaults for agent_connect_timeout parameter. The last defined in distributed (network) indexes. -12.4.49. agent_query_timeout +12.4.50. agent_query_timeout ---------------------------- Instance-wide defaults for agent_query_timeout parameter. The last defined in distributed (network) indexes, or also may be overrided per-query using OPTION clause. -12.4.50. agent_retry_count +12.4.51. agent_retry_count -------------------------- Integer, specifies how many times sphinx will try to connect and query @@ -13422,7 +13596,16 @@ Default is 0 (i.e. no retries). This value may be also specified on per-query basis using 'OPTION retry_count=XXX' clause. If per-query option exists, it will override the one specified in config. -12.4.51. agent_retry_delay +Note, that if you use agent mirrors in definition of your distributed +index, then before every attempt of connect sphinx will select different +mirror, according to specified ha_strategyspecified. + +For example, if you have 10 mirrors, and surely know, that at least one of +them alive, then you can definitely take the answer to a correct query, +specifying options ha_strategy = roundrobin and agent_retry_count = 9 in +your config. + +12.4.52. agent_retry_delay -------------------------- Integer, in milliseconds. Specifies the delay sphinx rest before retrying @@ -13432,21 +13615,33 @@ specified. Default is 500. This value may be also specified on per-query basis using 'OPTION retry_delay=XXX' clause. If per-query option exists, it will override the one specified in config. -12.4.52. qcache_max_bytes +12.4.53. hostname_lookup +------------------------ + +Hostnames renew strategy. By default, IP addresses of agent host names are +cached at daemon start to avoid extra flood to DNS. In some cases the IP +can change dynamically (e.g. cloud hosting) and it might be desired to +don't cache the IPs. Setting this option to 'request' disabled the caching +and queries the DNS at each query. The IP addresses can also be manually +renewed with FLUSH HOSTNAMES command. Added in 2.3.2-beta. + +12.4.54. qcache_max_bytes ------------------------- Integer, in bytes. The maximum RAM allocated for cached result sets. -Defaults to 16777216, or 16 MB. 0 means disable query cache. Added in -2.3.1-beta. Refer to query cache for details. +Default is 0, meaning disabled. Added in 2.3.1-beta. Refer to query cache +for details. -12.4.53. qcache_thresh_msec + | qcache_max_bytes = 16777216 + +12.4.55. qcache_thresh_msec --------------------------- Integer, in milliseconds. The minimum wall time threshold for a query result to be cached. Defaults to 3000, or 3 seconds. 0 means cache everything. Added in 2.3.1-beta. Refer to query cache for details. -12.4.54. qcache_ttl_sec +12.4.56. qcache_ttl_sec ----------------------- Integer, in seconds. The expiration period for a cached result set. @@ -13582,51 +13777,368 @@ Appendix A. Sphinx revision history Table of Contents -A.1. Version 2.3.1-beta, 03 mar 2015 -A.2. Version 2.2.11-release, 19 jul 2016 -A.3. Version 2.2.10-release, 07 sep 2015 -A.4. Version 2.2.9-release, 16 apr 2015 -A.5. Version 2.2.8-release, 09 mar 2015 -A.6. Version 2.2.7-release, 20 jan 2015 -A.7. Version 2.2.6-release, 13 nov 2014 -A.8. Version 2.2.5-release, 06 oct 2014 -A.9. Version 2.2.4-release, 11 sep 2014 -A.10. Version 2.2.3-beta, 13 may 2014 -A.11. Version 2.2.2-beta, 11 feb 2014 -A.12. Version 2.2.1-beta, 13 nov 2013 -A.13. Version 2.1.9-release, 03 jul 2014 -A.14. Version 2.1.8-release, 28 apr 2014 -A.15. Version 2.1.7-release, 30 mar 2014 -A.16. Version 2.1.6-release, 24 feb 2014 -A.17. Version 2.1.5-release, 22 jan 2014 -A.18. Version 2.1.4-release, 18 dec 2013 -A.19. Version 2.1.3-release, 12 nov 2013 -A.20. Version 2.1.2-release, 10 oct 2013 -A.21. Version 2.1.1-beta, 20 feb 2013 -A.22. Version 2.0.11-dev, xx xxx xxxx -A.23. Version 2.0.10-release, 22 jan 2014 -A.24. Version 2.0.9-release, 26 aug 2013 -A.25. Version 2.0.8-release, 26 apr 2013 -A.26. Version 2.0.7-release, 26 mar 2013 -A.27. Version 2.0.6-release, 22 oct 2012 -A.28. Version 2.0.5-release, 28 jul 2012 -A.29. Version 2.0.4-release, 02 mar 2012 -A.30. Version 2.0.3-release, 23 dec 2011 -A.31. Version 2.0.2-beta, 15 nov 2011 -A.32. Version 2.0.1-beta, 22 apr 2011 -A.33. Version 1.10-beta, 19 jul 2010 -A.34. Version 0.9.9-release, 02 dec 2009 -A.35. Version 0.9.9-rc2, 08 apr 2009 -A.36. Version 0.9.9-rc1, 17 nov 2008 -A.37. Version 0.9.8.1, 30 oct 2008 -A.38. Version 0.9.8, 14 jul 2008 -A.39. Version 0.9.7, 02 apr 2007 -A.40. Version 0.9.7-rc2, 15 dec 2006 -A.41. Version 0.9.7-rc1, 26 oct 2006 -A.42. Version 0.9.6, 24 jul 2006 -A.43. Version 0.9.6-rc1, 26 jun 2006 - -A.1. Version 2.3.1-beta, 03 mar 2015 +A.1. Version 2.3.2-beta, 09 sep 2016 +A.2. Version 2.3.1-beta, 03 mar 2015 +A.3. Version 2.2.11-release, 19 jul 2016 +A.4. Version 2.2.10-release, 07 sep 2015 +A.5. Version 2.2.9-release, 16 apr 2015 +A.6. Version 2.2.8-release, 09 mar 2015 +A.7. Version 2.2.7-release, 20 jan 2015 +A.8. Version 2.2.6-release, 13 nov 2014 +A.9. Version 2.2.5-release, 06 oct 2014 +A.10. Version 2.2.4-release, 11 sep 2014 +A.11. Version 2.2.3-beta, 13 may 2014 +A.12. Version 2.2.2-beta, 11 feb 2014 +A.13. Version 2.2.1-beta, 13 nov 2013 +A.14. Version 2.1.9-release, 03 jul 2014 +A.15. Version 2.1.8-release, 28 apr 2014 +A.16. Version 2.1.7-release, 30 mar 2014 +A.17. Version 2.1.6-release, 24 feb 2014 +A.18. Version 2.1.5-release, 22 jan 2014 +A.19. Version 2.1.4-release, 18 dec 2013 +A.20. Version 2.1.3-release, 12 nov 2013 +A.21. Version 2.1.2-release, 10 oct 2013 +A.22. Version 2.1.1-beta, 20 feb 2013 +A.23. Version 2.0.11-dev, xx xxx xxxx +A.24. Version 2.0.10-release, 22 jan 2014 +A.25. Version 2.0.9-release, 26 aug 2013 +A.26. Version 2.0.8-release, 26 apr 2013 +A.27. Version 2.0.7-release, 26 mar 2013 +A.28. Version 2.0.6-release, 22 oct 2012 +A.29. Version 2.0.5-release, 28 jul 2012 +A.30. Version 2.0.4-release, 02 mar 2012 +A.31. Version 2.0.3-release, 23 dec 2011 +A.32. Version 2.0.2-beta, 15 nov 2011 +A.33. Version 2.0.1-beta, 22 apr 2011 +A.34. Version 1.10-beta, 19 jul 2010 +A.35. Version 0.9.9-release, 02 dec 2009 +A.36. Version 0.9.9-rc2, 08 apr 2009 +A.37. Version 0.9.9-rc1, 17 nov 2008 +A.38. Version 0.9.8.1, 30 oct 2008 +A.39. Version 0.9.8, 14 jul 2008 +A.40. Version 0.9.7, 02 apr 2007 +A.41. Version 0.9.7-rc2, 15 dec 2006 +A.42. Version 0.9.7-rc1, 26 oct 2006 +A.43. Version 0.9.6, 24 jul 2006 +A.44. Version 0.9.6-rc1, 26 jun 2006 + +A.1. Version 2.3.2-beta, 09 sep 2016 +==================================== + +Major features +-------------- + + * Searchd now uses mmap(). Daemon is available immediately and spawns + a separate thread that loads the indexes. + * Built-in suggest using CALL QSUGGEST statement for indexes with + infixing enabled and dict=keywords + * HTTP protocol interface + +New functions and options +------------------------- + + * added RAND(),HOUR(),MINUTE(),SECOND() functions + * addedFLUSH HOSTNAMES SphinxQL statement and hostname_lookup directive + * added RELOAD INDEX SphinxQL statement + + * added sphinxql_timeout directive + +Changes and improvements +------------------------ + + * changed SHOW INDEX STATUS now displays performed number of queries, + query times and found rows of last 1,5,15 minutes and total since + daemon start + * changed retry_count behaviour + * added wildcard support and new options for CALL KEYWORDS SphinxQL + statement + * faster RT inserts + * faster CSV/TSV indexing + * query cache is disabled by default + * indexer --keeep-attrs support specific path + * daemon now picks changed index path when it receives HUP + * added alias support for MVA attributes + * added SphinxQL support for comparison, IN, and BETWEEN conditions over + ANY/ALL(mva) + * added explicit JSON type conversion in WHERE clause + +Bug fixes +--------- + + * fixed #2503 update of attributes at index prevents binlog from clean + + * fixed #2516 suggest for index with exact_word or morphology options + + * fixed #2507 .NET Connector overflow exception (unsigned id support) + + * Fixed initial round-robin counter + + * Thread-safety checks added (backported) + + * Refactored dl-staff + + * added per-index statistics to 'show index status' + + * fixed #2502 final calculation of expression at RT index (optimized + calls count) + + * Refactored ha-staff + + * Added begin() and end() to CSphVector, CSphTightVector + + * fixed error handle for API protocol net loop + + * Fixed crash on exit (revealed in test 234 on Ubuntu 16.04) + + * added token_filter and string list filter to API (php, python); set + client ver to 32; fixed filter string list escape; updated + token_filter plugin interface + + * Backported behavior for pthread_mutex_timedlock, SCHED_IDLE + + * Fast runaround for issue #877 + + * fixed #2496 profiler counts multiple sequential queries with + thread_pool worker + + * fixed #1825 added support for embedded zeroes in fields for pgsql, + odbc data sources + + * PHP sphinx api: renamed SphinxClient c-tr to __construct + + * fixed #2461 crash of daemon with worker thread_pool on high load of + fast queries + + * fixed uninitialized m_bSync variable + + * fixed #2461 crash of daemon with worker thread_pool on high load of + fast queries + + * fixed #2456 daemon stuck on rotating index due to high amount of + search threads + + * Fixed internal date calculation which caused different result of + day(NUM) function in different timezones + + * fixed #2400 crash of daemon on CALL KEYWORDS to RT index with disk + chunks and regexp filter; added regression to test 194 + + * added #2393 feature wildcards for CALL KEYWORDS; bunch of options + (fold_wildcards, fold_lemmas, fold_blended, expansion_limit, stats); + added cases to test 254; fixed github #17 + + * fixed #2390 latency at workers thread_pool added net-loop wakeup on + job done added send at the end of job then transfer left data to + net-loop added spin-wait at polling wait added socket_pair emulation + for windows version of net-loop added eventfd checks to configure + + * added length() for expressions, disabled Expr_Time_c hashing, fixed + test_253 + + * fixed Expr_Time and Expr_Timediff always returning empty strings + + * fixed minor expression hash calc bug + + * added a big test for GetHash in expressions; added Expr_Now_c; fixed + template expression name check + + * fixed several filters vs qcache issues + + * check filter expression tree when caching queries + + * fixed #2384 replace large index list at message to distributed index + name; added regression to test 153 + + * fixed #2384 fold large index list at message from distributed index; + added regression to test 153 + + * fixed #2372 ALL(mva) filter passed from master to agent as legacy + filter; added regressions to test 244; set master version to 13 + + * fixed #2371 warning on query via API with filter on MVA attribute; + added cases to test 244 + + * fixed query cache vs filters with expressions + + * fixed #2351 ALTER RECONFIGURE skipped for RT index with only re2 or + rlp changes; added regression as test 252 set binlog version to 6 + + * fixed daemon to work with --nodetach option after previous commit + breaks it + + * fixed #2358 mmap memory to be fork-less fixed bitvec copying fixing + false socket shutdown at net-loop added ping handling to net-loop + instead API command added feature to distributed index to break + kill-list of local indexes sequence + + * fixed a memory leak on inserts with aot enabled + + * fixed #2062 attribute name shadows field with same name; added check + at ALTER and RT index config; added regressions to test 214 + + * fixed #2330 daemon shutdown stopped waiting searching threads + + * fixed dlopen bug on linux while reloading udf + + * fixed (searchd.cpp split issues): stats mutex leak and crash of + dashboard at distributed index setup due to config reload; added tests + 248, 249 + + * fixed #2299 crash of indexer due to empty xmlpipe2 source with + embedded schema; added regression to test 68 + + * fixed RLP vs non-CJK fields (missing trailing zero) + + * refactored RLP to work as a field filter (preprocessor) + + * fixed RLP enabled build + + * fixed ubertest to pass on different linux platforms + + * added SphinxQL support for comparison, IN, and BETWEEN conditions over + ANY/ALL(mva); and added missing "ident NOT BETWEEN x AND y" syntax + + * fixed #2277 network connection timeout overflow for agent with worker + = thread_pool added test 243 + + * fixed mantis-2156 (COUNT(DISTINCT attr) does not work with strings) + + * updated old links to code.google.com to new links to github.com + + * fixed embedded zeroes in rt inserts + + * fixed mantis-1825 (no support for embedded zeroes in fields) + + * Removed CodeBlocks. Modified .gitignore for clion + + * fixed examples version in documentation, rebuilt docs + + * added #2262 new blend_mode trim_all added cases to test 192 + + * fixed #2261 ngram chars presence at charset_table, now it warns for + such config added regression to tests fixed test 19 + + * fixed multiform handling (multiform + lemmatizer case) in CALL + KEYWORDS + + * fixed libre2.patch to be in sync with latest re2 changes + + * Eliminated gcc warnings in http_parser.c. Eliminated msvc warning in + sphinxquery.cpp. + + * Windows yy.cmd synced with bash yy.sh script + + * lex/bison files and rules fixed for bison >1.875 + + * do not create tokenizer for every document in batch insert, create it + just once and reuse instead + + * fixed bug #1766 (UPDATE does not correctly update negative values for + bigint and float attributes) + + * fixed hits duplicates at RT index on document indexing fixed aggregate + depended expression at RT index fixed tests 162, 192, 205 to pass rt + mode updated visual studio 2013 project file + + * optimized away crazy memmove() in CSV/TSV parser, much faster CSV/TSV + indexing (more than 10x on a synthetic test) + + * field lengths are no longer required to be last in schema + + * initial per-index field lengths support for RT, fixes test 217 --rt + + * fixed CSphMatchVariant::ToDocid conversion to match plain index + behavior (fixes test 047 --rt) + + * fixed duplicates handling vs RT INSERT (first row wins now, not the + last one) + + * added fetched_* counters collection to rt (fixes test_209 in --rt + mode) + + * fixed keyword expansion in rt with docinfo=inline (fixes test_126 in + --rt mode) + + * unified CSphIndex::SetupQueryTokenizer and sphSetupQueryTokenizer + implementations, fixes most (but not all) of test 165 --rt + + * fixed off-by-1 in non-stemmed stopword check; fixed that lemmas got + stemmed; fixed that wordforms could get applied twice through + exact_dict; and rebuilt test 207 accordingly + + * improved RT insert speed (%7 gain in my batch insert test case) + + * indextool needs to preread checkpoints and infixes too + + * fixed mlock option on caching index files + + * fixed #2223 query cache last entry eviction during search cause daemon + to hung + + * Expr_Rand_c speedup and fixes, thread-safe XorShift64, updated test + 125 + + * fixed #2053 added RAND() function + + * fixed #2230 memory corruption at daemon on inserting data into RT with + bad HTML markup added regression to tests + + * fixed span length and lcs calculation in proximity queries + + * fixed performance on reading a lot of small buffers + + * fixed #2223 crash at watchdog shutdown on some OSes like centos, rhel + + * optimize RT inserts + + * refactoring + + * improving insertion speed into RT index (5% gain in my test) + + * refactoring, removed unneeded code + + * added RELOAD INDEX to SphinxQL + + * fixed #2209 prohibited order by MVA, added error message + + * fixed undefined reference to void ISphOutputBuffer::SendT in release + version + + * new qcache defaults + + * lets handle 32bit weights in qcache + + * fixed a couple of memory leaks + + * fixed typo in vs2008 proj; added lost files to codeblocks projects + + * searchd.cpp splitted + + * fixed agent dashboard setup due to remove of workers + + * added test_232, positions coming out of the matching engine + + * fixed several bugs in qcache (bug #2191 and some more) + + * use RAII on CSphMutex instead of separate initialization method, fixed + clang warnings + + * added feature #2195 memory mapping of all index files with separated + caching thread daemon (re)start should be immediately and fix of 'old' + ondisk* issue fixed update of attributes for indexes with ondisk* + option got rig and prohibit 32bit to 64bit index conversion on load + got rid of all shared memory code + + * fixes in variant_match model generation (more compatible attr types, + and better diff report) + + * fixed HTML stripper handling of broken PI (processing instruction) + tags + + * added #2179 SphinxQL client timeout searchd section option + sphinxql_timeout, default value is 900 seconds + +A.2. Version 2.3.1-beta, 03 mar 2015 ==================================== Major features @@ -13663,11 +14175,11 @@ Bug fixes * fixed #2154, crash in ZONE operator -A.2. Version 2.2.11-release, 19 jul 2016 +A.3. Version 2.2.11-release, 19 jul 2016 ======================================== -New features and changes ------------------------- +Bug fixes +--------- * fixed #2499 crash of daemon at phrase node with star shift; added regressions to test 41 @@ -13873,7 +14385,7 @@ New features and changes * fixed indextool --check vs nested JSON objects -A.3. Version 2.2.10-release, 07 sep 2015 +A.4. Version 2.2.10-release, 07 sep 2015 ======================================== New features and changes @@ -14035,7 +14547,7 @@ Minor bug fixes * fixed indextool MVA checks (an index error could sometimes be mistakenly reported) -A.4. Version 2.2.9-release, 16 apr 2015 +A.5. Version 2.2.9-release, 16 apr 2015 ======================================= Bug fixes @@ -14078,7 +14590,7 @@ Bug fixes * fixed truncated results (and a potential crash) vs long enough ZONESPANLIST() result -A.5. Version 2.2.8-release, 09 mar 2015 +A.6. Version 2.2.8-release, 09 mar 2015 ======================================= Minor features @@ -14108,7 +14620,7 @@ Bug fixes * fixed memory leak on queries with ZONEs -A.6. Version 2.2.7-release, 20 jan 2015 +A.7. Version 2.2.7-release, 20 jan 2015 ======================================= Minor features @@ -14150,7 +14662,7 @@ Bug fixes * fixed snippets crash with blend chars at the beginning of a string -A.7. Version 2.2.6-release, 13 nov 2014 +A.8. Version 2.2.6-release, 13 nov 2014 ======================================= Bug fixes @@ -14172,7 +14684,7 @@ Bug fixes * indexation of duplicate documents -A.8. Version 2.2.5-release, 06 oct 2014 +A.9. Version 2.2.5-release, 06 oct 2014 ======================================= New minor features @@ -14201,8 +14713,8 @@ Bug fixes * fixed MySQL protocol response when daemon maxed out -A.9. Version 2.2.4-release, 11 sep 2014 -======================================= +A.10. Version 2.2.4-release, 11 sep 2014 +======================================== New major features ------------------ @@ -14275,7 +14787,7 @@ Bug fixes * fixed cpu time logging for cases where work is done in child threads or agents -A.10. Version 2.2.3-beta, 13 may 2014 +A.11. Version 2.2.3-beta, 13 may 2014 ===================================== New features @@ -14336,7 +14848,7 @@ Bug fixes * fixed template index removing on rotation -A.11. Version 2.2.2-beta, 11 feb 2014 +A.12. Version 2.2.2-beta, 11 feb 2014 ===================================== New features @@ -14402,7 +14914,7 @@ Optimizations, behavior changes, and removals * removed support for client versions 0.9.6 and below -A.12. Version 2.2.1-beta, 13 nov 2013 +A.13. Version 2.2.1-beta, 13 nov 2013 ===================================== Major new features @@ -14530,7 +15042,7 @@ Bug fixes expansion (expand_keywords or lemmatize) occurred * fixed a crash while creating indexes with sql_joined_field -A.13. Version 2.1.9-release, 03 jul 2014 +A.14. Version 2.1.9-release, 03 jul 2014 ======================================== Bug fixes @@ -14550,7 +15062,7 @@ Bug fixes * fixed #1968, parsing of WEIGHT() function (queries to distributed indexes affected) -A.14. Version 2.1.8-release, 28 apr 2014 +A.15. Version 2.1.8-release, 28 apr 2014 ======================================== Bug fixes @@ -14576,7 +15088,7 @@ Bug fixes * fixed #1682, field end modifier doesn't work with words containing blended chars -A.15. Version 2.1.7-release, 30 mar 2014 +A.16. Version 2.1.7-release, 30 mar 2014 ======================================== Bug fixes @@ -14611,7 +15123,7 @@ Bug fixes * fixed Quick Tour documentation chapter -A.16. Version 2.1.6-release, 24 feb 2014 +A.17. Version 2.1.6-release, 24 feb 2014 ======================================== Bug fixes @@ -14657,7 +15169,7 @@ Bug fixes * fixed index corruption in UPDATE queries with non-existent attributes -A.17. Version 2.1.5-release, 22 jan 2014 +A.18. Version 2.1.5-release, 22 jan 2014 ======================================== Bug fixes @@ -14678,7 +15190,7 @@ Bug fixes * fixed network protocol issue which results in timeouts of libmysqlclient for big Sphinx responses -A.18. Version 2.1.4-release, 18 dec 2013 +A.19. Version 2.1.4-release, 18 dec 2013 ======================================== Bug fixes @@ -14698,7 +15210,7 @@ Bug fixes * fixed, --with-re2 check -A.19. Version 2.1.3-release, 12 nov 2013 +A.20. Version 2.1.3-release, 12 nov 2013 ======================================== Bug fixes @@ -14719,7 +15231,7 @@ Bug fixes * fixed crash while querying index with lemmatizer and wordforms -A.20. Version 2.1.2-release, 10 oct 2013 +A.21. Version 2.1.2-release, 10 oct 2013 ======================================== New features @@ -14893,7 +15405,7 @@ Bug fixes * fixed TOP_COUNT usage in misc/suggest and updated to PHP 5.3 and UTF-8 -A.21. Version 2.1.1-beta, 20 feb 2013 +A.22. Version 2.1.1-beta, 20 feb 2013 ===================================== Major new features @@ -15045,13 +15557,13 @@ Major behavior changes and optimizations * optimized filtering and scan in several frequent cases (single-value, 2-arg, 3-arg WHERE clauses) -A.22. Version 2.0.11-dev, xx xxx xxxx +A.23. Version 2.0.11-dev, xx xxx xxxx ===================================== Bug fixes --------- -A.23. Version 2.0.10-release, 22 jan 2014 +A.24. Version 2.0.10-release, 22 jan 2014 ========================================= Bug fixes @@ -15088,7 +15600,7 @@ Bug fixes * fixed rt_flush_period - less stricter internal check and more often flushes overall -A.24. Version 2.0.9-release, 26 aug 2013 +A.25. Version 2.0.9-release, 26 aug 2013 ======================================== Bug fixes @@ -15148,7 +15660,7 @@ Bug fixes * added a warning for missed stopwords, exception, wordforms files on index load and in indextool --check -A.25. Version 2.0.8-release, 26 apr 2013 +A.26. Version 2.0.8-release, 26 apr 2013 ======================================== Bug fixes @@ -15198,7 +15710,7 @@ Bug fixes * fixed #1405, between with mixed int float values -A.26. Version 2.0.7-release, 26 mar 2013 +A.27. Version 2.0.7-release, 26 mar 2013 ======================================== Bug fixes @@ -15331,7 +15843,7 @@ Bug fixes * added more debug info about failed index loading -A.27. Version 2.0.6-release, 22 oct 2012 +A.28. Version 2.0.6-release, 22 oct 2012 ======================================== Bug fixes @@ -15453,7 +15965,7 @@ Bug fixes * fixed x64 configurations for libstemmer -A.28. Version 2.0.5-release, 28 jul 2012 +A.29. Version 2.0.5-release, 28 jul 2012 ======================================== Bug fixes @@ -15613,7 +16125,7 @@ Bug fixes * fixed missing command-line switches documentation -A.29. Version 2.0.4-release, 02 mar 2012 +A.30. Version 2.0.4-release, 02 mar 2012 ======================================== Bug fixes @@ -15701,7 +16213,7 @@ Bug fixes * fixed #1120, negative total_found, docs and hits counter on huge indexes -A.30. Version 2.0.3-release, 23 dec 2011 +A.31. Version 2.0.3-release, 23 dec 2011 ======================================== Bug fixes @@ -15748,7 +16260,7 @@ Bug fixes * fixed crash log for 'fork' and 'prefork' workers -A.31. Version 2.0.2-beta, 15 nov 2011 +A.32. Version 2.0.2-beta, 15 nov 2011 ===================================== Major new features @@ -16015,7 +16527,7 @@ Bug fixes * fixed that field/zone conditions were not propagated to expanded keywords with dict=keywords -A.32. Version 2.0.1-beta, 22 apr 2011 +A.33. Version 2.0.1-beta, 22 apr 2011 ===================================== New general features @@ -16313,7 +16825,7 @@ Bug fixes * fixed libsphinxclient vs VS2003 compiler bug -A.33. Version 1.10-beta, 19 jul 2010 +A.34. Version 1.10-beta, 19 jul 2010 ==================================== * added RT indexes support (Chapter 4, Real-time indexes) @@ -16463,7 +16975,7 @@ A.33. Version 1.10-beta, 19 jul 2010 * fixed #509, indexing ranged results from stored procedures -A.34. Version 0.9.9-release, 02 dec 2009 +A.35. Version 0.9.9-release, 02 dec 2009 ======================================== * added Open, Close, Status calls to libsphinxclient (C API) @@ -16578,7 +17090,7 @@ A.34. Version 0.9.9-release, 02 dec 2009 * fixed #326 (missing CLOCK_xxx on FreeBSD) -A.35. Version 0.9.9-rc2, 08 apr 2009 +A.36. Version 0.9.9-rc2, 08 apr 2009 ==================================== * added IsConnectError(), Open(), Close() calls to Java API (bug #240) @@ -16748,7 +17260,7 @@ A.35. Version 0.9.9-rc2, 08 apr 2009 * fixed parser vs @field -keyword, foo|@field bar, "" queries (bug #310) -A.36. Version 0.9.9-rc1, 17 nov 2008 +A.37. Version 0.9.9-rc1, 17 nov 2008 ==================================== * added min_stemming_len directive @@ -16851,7 +17363,7 @@ A.36. Version 0.9.9-rc1, 17 nov 2008 * fixed handling of over-2GB dictionary files (.spi) -A.37. Version 0.9.8.1, 30 oct 2008 +A.38. Version 0.9.8.1, 30 oct 2008 ================================== * added configure script to libsphinxclient @@ -16906,7 +17418,7 @@ A.37. Version 0.9.8.1, 30 oct 2008 * fixed default ID range (that filtered out all 64-bit values) in Java and Python APIs -A.38. Version 0.9.8, 14 jul 2008 +A.39. Version 0.9.8, 14 jul 2008 ================================ Indexing @@ -17190,7 +17702,7 @@ Changes and fixes since 0.9.8-rc2 * fixed sorting of negative floats in SPH_SORT_EXTENDED mode -A.39. Version 0.9.7, 02 apr 2007 +A.40. Version 0.9.7, 02 apr 2007 ================================ * added support for sql_str2ordinal_column @@ -17275,7 +17787,7 @@ A.39. Version 0.9.7, 02 apr 2007 * fixed crashes with no-attribute indexes after rotate -A.40. Version 0.9.7-rc2, 15 dec 2006 +A.41. Version 0.9.7-rc2, 15 dec 2006 ==================================== * added support for extended matching mode (query language) @@ -17311,7 +17823,7 @@ A.40. Version 0.9.7-rc2, 15 dec 2006 * fixes for 64-bit platforms -A.41. Version 0.9.7-rc1, 26 oct 2006 +A.42. Version 0.9.7-rc1, 26 oct 2006 ==================================== * added alpha index merging code @@ -17361,7 +17873,7 @@ A.41. Version 0.9.7-rc1, 26 oct 2006 * fixed some issues with index rotation -A.42. Version 0.9.6, 24 jul 2006 +A.43. Version 0.9.6, 24 jul 2006 ================================ * added support for empty indexes @@ -17374,7 +17886,7 @@ A.42. Version 0.9.6, 24 jul 2006 * fixed building on Solaris 9 -A.43. Version 0.9.6-rc1, 26 jun 2006 +A.44. Version 0.9.6-rc1, 26 jun 2006 ==================================== * added boolean queries support (experimental, beta version) diff --git a/doc/sphinx.xml b/doc/sphinx.xml index a166fd9ff..d8017f969 100644 --- a/doc/sphinx.xml +++ b/doc/sphinx.xml @@ -6330,11 +6330,11 @@ processing settings. that specifies whether to return document and hit occurrence statistics. starting with 2.3.2-beta, can also accept parameters for configuring folding depending on tokenization settings: - - - - - + - show statistics of keywords, default is 0 + - fold wildcards, default is 1 + - fold morphological lemmas, default is 0 + - fold blended words, default is 0 + - override expansion_limit defined in configuration, default is 0 (use value from configuration) call keywords( @@ -6368,14 +6368,14 @@ CALL QSUGGEST statement, introduced in version 2.3.2-beta, enumerates for a giv It returns the suggested keywords, Levenshtein distance between the suggested and original keyword and the docs statistic of the suggested keyword. Several options are supported for customization: - - - - - - mysql> CALL QSUGGEST('automaticlly ','forum', 5 as limit, 4 as max_edits,1 as result_stats,3 as delta_len,0 as result_line,25 as max_matches,4 as reject ); @@ -7217,6 +7217,8 @@ for ranking purposes). Only available for indexes built with index_field_lengths ram_bytes, total size (in bytes) of the RAM-resident index portion. +queries time statistics of last 1 minute, 5 minutes, 15 minutes and total since daemon start;data is encapsulated as a JSON object which includes number of queries, min,max,avg,95 and 99 percentile values; introduced in 2.3.2-beta +queries found rows statistics of last 1 minute, 5 minutes, 15 minutes and total since daemon start;data is encapsulated as a JSON object which includes number of queries, min,max,avg,95 and 99 percentile values; introduced in 2.3.2-beta @@ -14816,7 +14818,7 @@ plugin_dir = /usr/local/sphinx/lib Sphinx revision history -Version 2.3.2-beta, 03 aug 2016 +Version 2.3.2-beta, 09 sep 2016 Major features Searchd now uses mmap(). Daemon is available immediately and spawns a separate thread that loads the indexes. @@ -14832,6 +14834,7 @@ plugin_dir = /usr/local/sphinx/lib Changes and improvements +changed SHOW INDEX STATUS now displays performed number of queries, query times and found rows of last 1,5,15 minutes and total since daemon start changed retry_count behaviour added wildcard support and new options for CALL KEYWORDS SphinxQL statement faster RT inserts @@ -14841,17 +14844,14 @@ plugin_dir = /usr/local/sphinx/lib daemon now picks changed index path when it receives HUP added alias support for MVA attributes added SphinxQL support for comparison, IN, and BETWEEN conditions over ANY/ALL(mva) +added explicit JSON type conversion in WHERE clause Bug fixes -fixed #2167, did not work with -fixed #2161, RT indexing could fail with because of multiple errorneous filter loads -fixed #2154, crash in ZONE operator - -Bug fixes - -Simplify refactoring +fixed #2503 update of attributes at index prevents binlog from clean +fixed #2516 suggest for index with exact_word or morphology options +fixed #2507 .NET Connector overflow exception (unsigned id support) Fixed initial round-robin counter Thread-safety checks added (backported) Refactored dl-staff diff --git a/mysqlse/ha_sphinx.cc b/mysqlse/ha_sphinx.cc index b057b5978..52bdc8f2c 100644 --- a/mysqlse/ha_sphinx.cc +++ b/mysqlse/ha_sphinx.cc @@ -154,7 +154,7 @@ void sphUnalignedWrite ( void * pPtr, const T & tVal ) #define SPHINXSE_MAX_ALLOC (16*1024*1024) #define SPHINXSE_MAX_KEYWORDSTATS 4096 -#define SPHINXSE_VERSION "2.3.2-dev" +#define SPHINXSE_VERSION "2.3.2-beta" // FIXME? the following is cut-n-paste from sphinx.h and searchd.cpp // cut-n-paste is somewhat simpler that adding dependencies however.. diff --git a/src/sphinx.h b/src/sphinx.h index 5228fc638..8d033f6e5 100644 --- a/src/sphinx.h +++ b/src/sphinx.h @@ -201,7 +201,7 @@ inline const DWORD * STATIC2DOCINFO ( const DWORD * pAttrs ) { return STATIC2DOC #endif #ifndef SPHINX_TAG -#define SPHINX_TAG "-dev" +#define SPHINX_TAG "-beta" #endif #ifndef SPH_SVN_TAGREV