From 2ef942afa9ac85c81be28a94253da244d1ca9bdd Mon Sep 17 00:00:00 2001 From: "Aleksey N. Vinogradov" Date: Mon, 16 Mar 2026 18:31:24 +0700 Subject: [PATCH 01/14] add 'optimizing' column to index status --- src/searchd.cpp | 5 ++++- src/sphinxrt.cpp | 13 +++++++++++++ src/sphinxrt.h | 2 ++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/searchd.cpp b/src/searchd.cpp index 0a9273aaa9..db843e70eb 100644 --- a/src/searchd.cpp +++ b/src/searchd.cpp @@ -10018,6 +10018,7 @@ void HandleSelectIndexStatus ( RowBuffer_i & tOut, const SqlStmt_t * pStmt ) tOut.HeadColumn ( "disk_mapped_hitlists", MYSQL_COL_LONGLONG ); tOut.HeadColumn ( "disk_mapped_cached_hitlists", MYSQL_COL_LONGLONG ); tOut.HeadColumn ( "killed_documents", MYSQL_COL_LONGLONG ); + tOut.HeadColumn ( "optimizing", MYSQL_COL_LONG ); if ( !tOut.HeadEnd () ) return; @@ -10038,7 +10039,7 @@ void HandleSelectIndexStatus ( RowBuffer_i & tOut, const SqlStmt_t * pStmt ) bool bKeepIteration = true; while ( bKeepIteration ) { - pRtIndex->ProcessDiskChunk (iChunk,[&bKeepIteration, &tOut] (const CSphIndex* pChunk) { + pRtIndex->ProcessDiskChunkEx ( iChunk, [&bKeepIteration, &tOut] ( const CSphIndex* pChunk, bool bOptimizing ) { if ( !pChunk ) { bKeepIteration = false; @@ -10046,6 +10047,7 @@ void HandleSelectIndexStatus ( RowBuffer_i & tOut, const SqlStmt_t * pStmt ) } tOut.PutNumAsString ( pChunk->m_iChunk ); PutIndexStatus ( tOut, pChunk ); + tOut.PutNumAsString ( bOptimizing ? 1 : 0 ); if ( !tOut.Commit () ) { bKeepIteration = false; @@ -10057,6 +10059,7 @@ void HandleSelectIndexStatus ( RowBuffer_i & tOut, const SqlStmt_t * pStmt ) } else { tOut.PutNumAsString ( 0 ); // dummy 'chunk' of non-rt PutIndexStatus ( tOut, pIndex ); + tOut.PutNumAsString ( 0 ); tOut.Commit (); } tOut.Eof(); diff --git a/src/sphinxrt.cpp b/src/sphinxrt.cpp index 6ab78182f6..48d6e96d2b 100644 --- a/src/sphinxrt.cpp +++ b/src/sphinxrt.cpp @@ -1412,6 +1412,7 @@ class RtIndex_c final : public RtIndex_i, public ISphNoncopyable, public ISphWor bool RenameOptimizedChunk ( const ConstDiskChunkRefPtr_t& pChunk, const char * szParentAction ); bool SkipOrDrop ( int iChunk, const CSphIndex& dChunk, bool bCheckAlive, int* pAffected = nullptr ); void ProcessDiskChunk ( int iChunk, VisitChunk_fn&& fnVisitor ) const final; + void ProcessDiskChunkEx ( int iChunk, VisitChunkEx_fn&& fnVisitor ) const final; template void ProcessDiskChunkByID ( int iChunkID, VISITOR&& fnVisitor ) const; template @@ -1815,6 +1816,18 @@ void RtIndex_c::ProcessDiskChunk ( int iChunk, VisitChunk_fn&& fnVisitor ) const fnVisitor ( &( *pDiskChunks )[iChunk]->Cidx() ); } +void RtIndex_c::ProcessDiskChunkEx ( int iChunk, VisitChunkEx_fn&& fnVisitor ) const +{ + auto pDiskChunks = m_tRtChunks.DiskChunks(); + if ( iChunk < 0 || iChunk >= pDiskChunks->GetLength() ) + fnVisitor ( nullptr, false ); + else + { + const auto & tChunk = ( *pDiskChunks )[iChunk]; + fnVisitor ( &tChunk->Cidx(), tChunk->m_bOptimizing.load ( std::memory_order_relaxed ) ); + } +} + template void RtIndex_c::ProcessDiskChunkByID ( int iChunkID, VISITOR&& fnVisitor ) const { diff --git a/src/sphinxrt.h b/src/sphinxrt.h index 1132851e4d..f8034eb794 100644 --- a/src/sphinxrt.h +++ b/src/sphinxrt.h @@ -27,6 +27,7 @@ class RtAccum_t; using VisitChunk_fn = std::function; +using VisitChunkEx_fn = std::function; class InsertDocData_c { @@ -186,6 +187,7 @@ class RtIndex_i : public CSphIndexStub /// do something const with disk chunk (query settings, status, etc.) /// hides internal disk chunks storage virtual void ProcessDiskChunk ( int iChunk, VisitChunk_fn&& fnVisitor ) const {}; + virtual void ProcessDiskChunkEx ( int iChunk, VisitChunkEx_fn&& fnVisitor ) const {}; /// bind indexing accumulator /// returns false if another index already uses it in an open txn From f2900ec82376bf78adfd419de269ea1ace35fb9e Mon Sep 17 00:00:00 2001 From: "Aleksey N. Vinogradov" Date: Mon, 16 Mar 2026 18:19:24 +0700 Subject: [PATCH 02/14] docs & test --- manual/english/References.md | 2 + .../Compacting_a_table.md | 5 +- manual/english/Server_settings/Searchd.md | 50 ++++++++++++++++++- ...t-inconsistent-comunication-with-buddy.rec | 8 +++ 4 files changed, 61 insertions(+), 4 deletions(-) diff --git a/manual/english/References.md b/manual/english/References.md index 2d7c3082fc..aa26c97217 100755 --- a/manual/english/References.md +++ b/manual/english/References.md @@ -466,6 +466,7 @@ To be put in the `searchd {}` section of the configuration file: * [log](Server_settings/Searchd.md#log) - Path to Manticore server log file * [max_batch_queries](Server_settings/Searchd.md#max_batch_queries) - Limits the number of queries per batch * [max_connections](Server_settings/Searchd.md#max_connections) - Maximum number of active connections + * [merge_chunks_per_job](Server_settings/Searchd.md#merge_chunks_per_job) - How many RT disk chunks are merged per OPTIMIZE job * [max_filters](Server_settings/Searchd.md#max_filters) - Maximum allowed per-query filter count * [max_filter_values](Server_settings/Searchd.md#max_filter_values) - Maximum allowed per-filter values count * [max_open_files](Server_settings/Searchd.md#max_open_files) - Maximum number of files allowed to be opened by server @@ -478,6 +479,7 @@ To be put in the `searchd {}` section of the configuration file: * [network_timeout](Server_settings/Searchd.md#network_timeout) - Network timeout for client requests * [node_address](Server_settings/Searchd.md#node_address) - Specifies network address of the node * [persistent_connections_limit](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent) - Maximum number of simultaneous persistent connections to remote persistent agents + * [parallel_chunk_merges](Server_settings/Searchd.md#parallel_chunk_merges) - How many RT disk chunk merges can run in parallel during OPTIMIZE * [pid_file](Server_settings/Searchd.md#pid_file) - Path to Manticore server pid file * [preopen_tables](Server_settings/Searchd.md#preopen_tables) - Determines whether to forcibly preopen all tables on startup * [pseudo_sharding](Server_settings/Searchd.md#pseudo_sharding) - Enables pseudo-sharding for search queries to plain and real-time tables diff --git a/manual/english/Securing_and_compacting_a_table/Compacting_a_table.md b/manual/english/Securing_and_compacting_a_table/Compacting_a_table.md index 98e38f5d35..bb3e8fbdd0 100755 --- a/manual/english/Securing_and_compacting_a_table/Compacting_a_table.md +++ b/manual/english/Securing_and_compacting_a_table/Compacting_a_table.md @@ -1,6 +1,6 @@ # Compacting a Table -Over time, RT tables may become fragmented into numerous disk chunks and/or contaminated with deleted, yet unpurged data, affecting search performance. In these cases, optimization is necessary. Essentially, the optimization process combines pairs of disk chunks, removing documents that were previously deleted using DELETE statements. +Over time, RT tables may become fragmented into numerous disk chunks and/or contaminated with deleted, yet unpurged data, affecting search performance. In these cases, optimization is necessary. Essentially, the optimization process combines disk chunks (N-way merge), removing documents that were previously deleted using DELETE statements. Beginning with Manticore 4, this process occurs [automatically by default](../Server_settings/Searchd.md#auto_optimize). However, you can also use the following commands to manually initiate table compaction. @@ -65,7 +65,7 @@ OPTIMIZE TABLE rt OPTION sync=1; ### Throttling the IO impact -Optimization can be a lengthy and I/O-intensive process. To minimize the impact, all actual merge work is executed serially in a special background thread, and the `OPTIMIZE` statement simply adds a job to its queue. The optimization thread can be I/O-throttled, and you can control the maximum number of I/Os per second and the maximum I/O size with the [rt_merge_iops](../Server_settings/Searchd.md#rt_merge_iops) and [rt_merge_maxiosize](../Server_settings/Searchd.md#rt_merge_maxiosize) directives, respectively. +Optimization can be a lengthy and I/O-intensive process. The `OPTIMIZE` statement adds a job to a background worker pool. You can control how many jobs run in parallel with [parallel_chunk_merges](../Server_settings/Searchd.md#parallel_chunk_merges) and how many chunks each job merges with [merge_chunks_per_job](../Server_settings/Searchd.md#merge_chunks_per_job). The optimization workers can be I/O-throttled, and you can control the maximum number of I/Os per second and the maximum I/O size with the [rt_merge_iops](../Server_settings/Searchd.md#rt_merge_iops) and [rt_merge_maxiosize](../Server_settings/Searchd.md#rt_merge_maxiosize) directives, respectively. During optimization, the RT table being optimized remains online and available for both searching and updates nearly all the time. It is locked for a very brief period when a pair of disk chunks is successfully merged, allowing for the renaming of old and new files and updating the table header. @@ -111,4 +111,3 @@ Once the table is added back to the cluster, you must resume write operations on Search operations are available as usual during the process on any of the nodes. - diff --git a/manual/english/Server_settings/Searchd.md b/manual/english/Server_settings/Searchd.md index d84f4e9733..5f31a4c537 100755 --- a/manual/english/Server_settings/Searchd.md +++ b/manual/english/Server_settings/Searchd.md @@ -107,6 +107,55 @@ auto_optimize = 2 # OPTIMIZE starts at 16 chunks (on 4 cpu cores server) +### parallel_chunk_merges + + +This setting controls how many disk chunk merge jobs the server is allowed to run in parallel during [OPTIMIZE](../Securing_and_compacting_a_table/Compacting_a_table.md#OPTIMIZE-TABLE) for real-time tables. + +This affects only disk chunk merging (compaction), not query parallelism. + +Set it to `1` to disable parallel chunk merging (merge jobs will run one-by-one). Higher values may speed up compaction on systems with fast storage, but will increase concurrent disk I/O. + +Default is `max(1, min(2, threads/2))`. + +This value can be changed at runtime using `SET GLOBAL parallel_chunk_merges = N` and inspected via `SHOW VARIABLES`. + + +##### Example: + + +```ini +parallel_chunk_merges = 1 +``` + + +```ini +parallel_chunk_merges = 4 +``` + + + +### merge_chunks_per_job + + +This setting controls how many RT disk chunks are merged in a single OPTIMIZE job (N-way merge). If fewer than this number are available, the job will merge what it can (minimum 2). + +Lower values allow more jobs to be scheduled in parallel; higher values reduce the number of jobs but increase the size of each merge. + +Default is `2`. + +This value can be changed at runtime using `SET GLOBAL merge_chunks_per_job = N` and inspected via `SHOW VARIABLES`. + + +##### Example: + + +```ini +merge_chunks_per_job = 4 +``` + + + ### auto_schema @@ -1730,4 +1779,3 @@ watchdog = 0 # disable watchdog ``` - diff --git a/test/clt-tests/buddy-plugins/test-inconsistent-comunication-with-buddy.rec b/test/clt-tests/buddy-plugins/test-inconsistent-comunication-with-buddy.rec index e81e55be28..828a159791 100644 --- a/test/clt-tests/buddy-plugins/test-inconsistent-comunication-with-buddy.rec +++ b/test/clt-tests/buddy-plugins/test-inconsistent-comunication-with-buddy.rec @@ -57,6 +57,8 @@ curl -s -X POST "http://localhost:9308/sql?mode=raw" -d "query=SHOW VARIABLES"; "data":[ {"Variable_name":"autocommit","Value":"%{NUMBER}"}, {"Variable_name":"auto_optimize","Value":"%{NUMBER}"}, +{"Variable_name":"parallel_chunk_merges","Value":"%{NUMBER}"}, +{"Variable_name":"merge_chunks_per_job","Value":"%{NUMBER}"}, {"Variable_name":"optimize_cutoff","Value":"%{NUMBER}"}, {"Variable_name":"collation_connection","Value":"libc_ci"}, {"Variable_name":"query_log_format","Value":"sphinxql"}, @@ -92,6 +94,8 @@ curl -s "http://localhost:9308/sql?mode=raw&query=SHOW%20VARIABLES"; echo "data":[ {"Variable_name":"autocommit","Value":"%{NUMBER}"}, {"Variable_name":"auto_optimize","Value":"%{NUMBER}"}, +{"Variable_name":"parallel_chunk_merges","Value":"%{NUMBER}"}, +{"Variable_name":"merge_chunks_per_job","Value":"%{NUMBER}"}, {"Variable_name":"optimize_cutoff","Value":"%{NUMBER}"}, {"Variable_name":"collation_connection","Value":"libc_ci"}, {"Variable_name":"query_log_format","Value":"sphinxql"}, @@ -127,6 +131,8 @@ curl -s -X POST "http://localhost:9308/sql?raw_response=true" -d "query=SHOW VAR "data":[ {"Variable_name":"autocommit","Value":"%{NUMBER}"}, {"Variable_name":"auto_optimize","Value":"%{NUMBER}"}, +{"Variable_name":"parallel_chunk_merges","Value":"%{NUMBER}"}, +{"Variable_name":"merge_chunks_per_job","Value":"%{NUMBER}"}, {"Variable_name":"optimize_cutoff","Value":"%{NUMBER}"}, {"Variable_name":"collation_connection","Value":"libc_ci"}, {"Variable_name":"query_log_format","Value":"sphinxql"}, @@ -162,6 +168,8 @@ curl -s "http://localhost:9308/sql?raw_response=true&query=SHOW%20VARIABLES"; ec "data":[ {"Variable_name":"autocommit","Value":"%{NUMBER}"}, {"Variable_name":"auto_optimize","Value":"%{NUMBER}"}, +{"Variable_name":"parallel_chunk_merges","Value":"%{NUMBER}"}, +{"Variable_name":"merge_chunks_per_job","Value":"%{NUMBER}"}, {"Variable_name":"optimize_cutoff","Value":"%{NUMBER}"}, {"Variable_name":"collation_connection","Value":"libc_ci"}, {"Variable_name":"query_log_format","Value":"sphinxql"}, From ffb7d4a84d91eb06c66f0eea7a189ba481553ce4 Mon Sep 17 00:00:00 2001 From: "Aleksey N. Vinogradov" Date: Mon, 16 Mar 2026 18:34:48 +0700 Subject: [PATCH 03/14] naked n-way merge --- src/sphinx.cpp | 396 +++++++++++++++++++++++++++++++++++++++++++++++- src/sphinxint.h | 10 ++ 2 files changed, 402 insertions(+), 4 deletions(-) diff --git a/src/sphinx.cpp b/src/sphinx.cpp index cfec160fe3..dcf650d126 100644 --- a/src/sphinx.cpp +++ b/src/sphinx.cpp @@ -1205,7 +1205,10 @@ class CSphIndex_VLN : public CSphIndex, public IndexAlterHelper_c template static bool MergeWords ( const CSphIndex_VLN * pDstIndex, const CSphIndex_VLN * pSrcIndex, VecTraits_T dDstRows, VecTraits_T dSrcRows, CSphHitBuilder * pHitBuilder, CSphString & sError, CSphIndexProgress & tProgress); + template + static bool MergeWordsN ( VecTraits_T dIndexes, const VecTraits_T> & dRowMaps, CSphHitBuilder * pHitBuilder, CSphString & sError, CSphIndexProgress & tProgress ); static bool DoMerge ( const CSphIndex_VLN * pDstIndex, const CSphIndex_VLN * pSrcIndex, const ISphFilter * pFilter, CSphString & sError, CSphIndexProgress & tProgress, bool bSrcSettings, bool bSupressDstDocids ); + static bool DoMergeN ( VecTraits_T dIndexes, CSphString & sError, CSphIndexProgress & tProgress, MergeTimings_t * pTimings ); std::unique_ptr CreateMergeFilters ( const VecTraits_T & dSettings ) const; template static bool DeleteField ( const CSphIndex_VLN * pIndex, CSphHitBuilder * pHitBuilder, CSphString & sError, CSphSourceStats & tStat, int iKillField ); @@ -6444,7 +6447,8 @@ namespace QwordIteration if ( tQword.m_tDoc.m_tRowID==INVALID_ROWID ) return false; - tQword.SeekHitlist ( tQword.m_iHitlistPos ); + if ( tQword.m_bHasHitlist ) + tQword.SeekHitlist ( tQword.m_iHitlistPos ); return true; } } @@ -6459,9 +6463,17 @@ namespace QwordIteration return false; if ( dRows[tQword.m_tDoc.m_tRowID]==INVALID_ROWID ) + { + if ( tQword.m_bHasHitlist ) + { + tQword.SeekHitlist ( tQword.m_iHitlistPos ); + while ( tQword.m_bHasHitlist && tQword.GetNextHit()!=EMPTY_HIT ); + } continue; + } - tQword.SeekHitlist ( tQword.m_iHitlistPos ); + if ( tQword.m_bHasHitlist ) + tQword.SeekHitlist ( tQword.m_iHitlistPos ); return true; } } @@ -6707,6 +6719,186 @@ bool CSphIndex_VLN::MergeWords ( const CSphIndex_VLN * pDstIndex, const CSphInde return true; } +template +bool CSphIndex_VLN::MergeWordsN ( VecTraits_T dIndexes, const VecTraits_T> & dRowMaps, CSphHitBuilder * pHitBuilder, CSphString & sError, CSphIndexProgress & tProgress ) +{ + auto& tMonitor = tProgress.GetMergeCb(); + assert ( dIndexes.GetLength()==dRowMaps.GetLength() ); + + const int iSources = dIndexes.GetLength(); + if ( iSources<2 ) + return false; + + // Use last index for file paths to match DoMergeN which uses pDstIndex (last index) + const CSphIndex_VLN * pDstIndex = dIndexes.Last(); + CSphAutofile tDummy; + pHitBuilder->CreateIndexFiles ( pDstIndex->GetTmpFilename ( SPH_EXT_SPD ), pDstIndex->GetTmpFilename ( SPH_EXT_SPP ), pDstIndex->GetTmpFilename ( SPH_EXT_SPE ), false, 0, tDummy ); + + struct Source_t + { + const CSphIndex_VLN * m_pIndex = nullptr; + CSphDictReader m_tReader; + QWORD m_tQword; + DataReaderFactoryPtr_c m_tDocs; + DataReaderFactoryPtr_c m_tHits; + bool m_bHasWord = false; + + explicit Source_t ( int iSkiplistBlockSize, int64_t iIndexId ) + : m_tReader ( iSkiplistBlockSize ) + , m_tQword ( false, false, iIndexId ) + {} + }; + + CSphVector> dSources; + dSources.Reserve ( iSources ); + + for ( int i = 0; i < iSources; ++i ) + { + const auto * pIndex = dIndexes[i]; + dSources.Add ( std::make_unique ( pIndex->GetSettings().m_iSkiplistBlockSize, pIndex->GetIndexId() ) ); + auto * pSrc = dSources.Last().get(); + pSrc->m_pIndex = pIndex; + + if ( !pSrc->m_tReader.Setup ( pIndex->GetFilename ( SPH_EXT_SPI ), pIndex->m_tWordlist.GetWordsEnd(), pIndex->m_tSettings.m_eHitless, sError ) ) + return false; + + pSrc->m_tDocs = NewProxyReader ( pIndex->GetFilename ( SPH_EXT_SPD ), sError, + DataReaderFactory_c::DOCS, pIndex->m_tMutableSettings.m_tFileAccess.m_iReadBufferDocList, FileAccess_e::FILE ); + if ( !pSrc->m_tDocs ) + return false; + + pSrc->m_tHits = NewProxyReader ( pIndex->GetFilename ( SPH_EXT_SPP ), sError, + DataReaderFactory_c::HITS, pIndex->m_tMutableSettings.m_tFileAccess.m_iReadBufferHitList, FileAccess_e::FILE ); + if ( !pSrc->m_tHits ) + return false; + + if ( !sError.IsEmpty () || tMonitor.NeedStop () ) + return false; + + QwordIteration::ConfigureQword ( pSrc->m_tQword, pSrc->m_tHits, pSrc->m_tDocs, pIndex->m_tSchema.GetDynamicSize() ); + pSrc->m_bHasWord = pSrc->m_tReader.Read(); + } + + CSphMerger tMerger(pHitBuilder); + + auto fnCmpReaders = [] ( const CSphDictReader & tA, const CSphDictReader & tB ) + { + if_const ( QWORD::is_worddict::value ) + return strcmp ( (const char *)tA.GetWord(), (const char *)tB.GetWord() ); + return ( tA.m_uWordID < tB.m_uWordID ) ? -1 : ( tA.m_uWordID == tB.m_uWordID ? 0 : 1 ); + }; + + tProgress.PhaseBegin ( CSphIndexProgress::PHASE_MERGE ); + tProgress.Show(); + + int iWords = 0; + int iHitlistsDiscarded = 0; + CSphVector dSame; + dSame.Reserve ( iSources ); + + for ( ;; ++iWords ) + { + if ( iWords==1000 ) + { + tProgress.m_iWords += 1000; + tProgress.Show(); + iWords = 0; + } + + if ( tMonitor.NeedStop () || !sError.IsEmpty () ) + return false; + + int iMin = -1; + for ( int i = 0; i < iSources; ++i ) + { + if ( !dSources[i]->m_bHasWord ) + continue; + if ( iMin<0 || fnCmpReaders ( dSources[i]->m_tReader, dSources[iMin]->m_tReader ) < 0 ) + iMin = i; + } + + if ( iMin<0 ) + break; + + dSame.Resize ( 0 ); + for ( int i = 0; i < iSources; ++i ) + if ( dSources[i]->m_bHasWord && fnCmpReaders ( dSources[i]->m_tReader, dSources[iMin]->m_tReader )==0 ) + dSame.Add ( i ); + + if ( dSame.GetLength()==1 ) + { + const int iSrc = dSame[0]; + auto * pSrc = dSources[iSrc].get(); + QwordIteration::PrepareQword ( pSrc->m_tQword, pSrc->m_tReader ); + tMerger.TransferData ( pSrc->m_tQword, pSrc->m_tReader.m_uWordID, pSrc->m_tReader.GetWord(), pSrc->m_pIndex, dRowMaps[iSrc], tMonitor ); + } else + { + bool bBaseHasHitlist = dSources[dSame[0]]->m_tReader.m_bHasHitlist; + bool bHitless = !bBaseHasHitlist; + bool bMismatch = false; + for ( int i = 1; i < dSame.GetLength(); ++i ) + { + if ( dSources[dSame[i]]->m_tReader.m_bHasHitlist!=bBaseHasHitlist ) + bMismatch = true; + } + if ( bMismatch ) + { + ++iHitlistsDiscarded; + bHitless = true; + } + + for ( int i = 0; i < dSame.GetLength(); ++i ) + { + auto * pSrc = dSources[dSame[i]].get(); + QwordIteration::PrepareQword ( pSrc->m_tQword, pSrc->m_tReader ); + } + + AggregateHit_t tHit; + tHit.m_uWordID = dSources[iMin]->m_tReader.m_uWordID; + tHit.m_szKeyword = dSources[iMin]->m_tReader.GetWord(); + tHit.m_dFieldMask.UnsetAll(); + + for ( int i = 0; i < dSame.GetLength(); ++i ) + { + auto * pSrc = dSources[dSame[i]].get(); + const auto & dRowMap = dRowMaps[dSame[i]]; + while ( QwordIteration::NextDocument ( pSrc->m_tQword, pSrc->m_pIndex, dRowMap ) ) + { + if ( tMonitor.NeedStop () || !sError.IsEmpty () ) + return false; + + if ( bHitless ) + { + while ( pSrc->m_tQword.m_bHasHitlist && pSrc->m_tQword.GetNextHit()!=EMPTY_HIT ); + + tHit.m_tRowID = dRowMap[pSrc->m_tQword.m_tDoc.m_tRowID]; + tHit.m_dFieldMask = pSrc->m_tQword.m_dQwordFields; + tHit.SetAggrCount ( pSrc->m_tQword.m_uMatchHits ); + pHitBuilder->cidxHit ( &tHit ); + } else + { + tMerger.TransferHits ( pSrc->m_tQword, tHit, dRowMap ); + } + } + } + } + + for ( int i = 0; i < dSame.GetLength(); ++i ) + { + auto * pSrc = dSources[dSame[i]].get(); + pSrc->m_bHasWord = pSrc->m_tReader.Read(); + } + } + + tProgress.m_iWords += iWords; + tProgress.Show(); + + if ( iHitlistsDiscarded ) + sphWarning ( "discarded hitlists for %u words", iHitlistsDiscarded ); + + return true; +} + // called only from indexer bool CSphIndex_VLN::Merge ( CSphIndex * pSource, const VecTraits_T & dFilters, bool bSupressDstDocids, CSphIndexProgress& tProgress ) { @@ -6946,6 +7138,185 @@ bool CSphIndex_VLN::DoMerge ( const CSphIndex_VLN * pDstIndex, const CSphIndex_V return true; } +bool CSphIndex_VLN::DoMergeN ( VecTraits_T dIndexes, CSphString & sError, CSphIndexProgress & tProgress, MergeTimings_t * pTimings ) +{ + TRACE_CORO ( "sph", "CSphIndex_VLN::DoMergeN" ); + auto & tMonitor = tProgress.GetMergeCb(); + + int64_t tmTotalStart = sphMicroTimer(); + + const int iIndexes = dIndexes.GetLength(); + if ( iIndexes<2 ) + { + sError = "need at least 2 indexes for N-way merge"; + return false; + } + + const CSphIndex_VLN * pBaseIndex = dIndexes[0]; + assert ( pBaseIndex ); + const CSphIndex_VLN * pDstIndex = dIndexes.Last(); + assert ( pDstIndex ); + + const CSphSchema & tBaseSchema = pBaseIndex->m_tSchema; + const bool bBaseWordDict = pBaseIndex->m_pDict->GetSettings().m_bWordDict; + const ESphHitless eBaseHitless = pBaseIndex->m_tSettings.m_eHitless; + + for ( int i = 1; i < iIndexes; ++i ) + { + const CSphIndex_VLN * pIndex = dIndexes[i]; + assert ( pIndex ); + + if ( !tBaseSchema.CompareTo ( pIndex->m_tSchema, sError ) ) + return false; + + if ( eBaseHitless!=pIndex->m_tSettings.m_eHitless ) + { + sError = "hitless settings must be the same on merged tables"; + return false; + } + + if ( bBaseWordDict!=pIndex->m_pDict->GetSettings().m_bWordDict ) + { + sError.SetSprintf ( "dictionary types must be the same (base dict=%s, other dict=%s )", + bBaseWordDict ? "keywords" : "crc", + pIndex->m_pDict->GetSettings().m_bWordDict ? "keywords" : "crc" ); + return false; + } + } + + RawVector_T> dRowMaps; + dRowMaps.Reserve_static ( iIndexes ); + CSphVector dAliveCounts; + dAliveCounts.Resize ( iIndexes ); + + int64_t iTotalDocs = 0; + for ( int i = 0; i < iIndexes; ++i ) + { + const CSphIndex_VLN * pIndex = dIndexes[i]; + dRowMaps.Emplace_back ( pIndex->m_iDocinfo ); + dRowMaps[i].Fill ( INVALID_ROWID ); + + int64_t iPrevDocs = iTotalDocs; + tMonitor.SetEvent ( MergeCb_c::E_COLLECT_START, pIndex->m_iChunk ); + + for ( RowID_t uRow = 0; uRow < dRowMaps[i].GetULength(); ++uRow ) + { + if ( pIndex->m_tDeadRowMap.IsSet(uRow) ) + continue; + + dRowMaps[i][uRow] = (RowID_t)iTotalDocs++; + } + + tMonitor.SetEvent ( MergeCb_c::E_COLLECT_FINISHED, pIndex->m_iChunk ); + dAliveCounts[i] = DWORD ( iTotalDocs - iPrevDocs ); + } + + if ( iTotalDocs >= INVALID_ROWID ) + return false; // too many docs in merged segment (>4G even with filtered/killed), abort. + + BuildHeader_t tBuildHeader ( pDstIndex->m_tStats ); + + StrVec_t dDeleteOnInterrupt; + AT_SCOPE_EXIT ( [&dDeleteOnInterrupt] + { + dDeleteOnInterrupt.for_each ( [] ( const auto & sFile ) + { + if ( !sFile.IsEmpty() && sphFileExists ( sFile.cstr() ) ) + ::unlink ( sFile.cstr() ); + } ); + } ); + + { + int64_t tmAttrsStart = sphMicroTimer(); + AttrMerger_c tAttrMerger { tMonitor, sError, iTotalDocs, g_tMergeSettings, dDeleteOnInterrupt }; + if ( !tAttrMerger.Prepare ( pBaseIndex, pDstIndex ) ) + return false; + + for ( int i = 0; i < iIndexes; ++i ) + if ( !tAttrMerger.AnalyzeAttributes ( *dIndexes[i], dRowMaps[i], dAliveCounts[i] ) ) + return false; + + for ( int i = 0; i < iIndexes; ++i ) + if ( !tAttrMerger.CopyAttributes ( *dIndexes[i], dRowMaps[i], dAliveCounts[i] ) ) + return false; + + if ( !tAttrMerger.FinishMergeAttributes ( pDstIndex, tBuildHeader ) ) + return false; + if ( pTimings ) + pTimings->m_tmAttrs = sphMicroTimer() - tmAttrsStart; + } + + const CSphIndex_VLN * pSettings = pDstIndex; + CSphAutofile tDict ( pDstIndex->GetTmpFilename ( SPH_EXT_SPI ), SPH_O_NEW, sError, true ); + + if ( !sError.IsEmpty() || tDict.GetFD()<0 || tMonitor.NeedStop() ) + return false; + + DictRefPtr_c pDict { pSettings->m_pDict->Clone() }; + + CSphVector dDummy; + CSphHitBuilder tHitBuilder ( pSettings->m_tSettings, dDummy, true, g_tMergeSettings.m_iBufferDict, pDict, &sError, &dDeleteOnInterrupt ); + + int iInfixCodepointBytes = 0; + if ( pSettings->m_tSettings.m_iMinInfixLen > 0 && pDict->GetSettings().m_bWordDict ) + iInfixCodepointBytes = pSettings->m_pTokenizer->GetMaxCodepointLength(); + + pDict->SortedDictBegin ( tDict, g_tMergeSettings.m_iBufferDict, iInfixCodepointBytes ); + + BEGIN_CORO ( "sph", "merge dicts, doclists and hitlists (N-way)" ); + int64_t tmWordsStart = sphMicroTimer(); + const bool bWordDict = pDict->GetSettings().m_bWordDict; + if ( bWordDict ) + WITH_QWORD ( pBaseIndex, false, Qword, + if ( !CSphIndex_VLN::MergeWordsN ( dIndexes, dRowMaps, &tHitBuilder, sError, tProgress ) ) + return false; + ); + else + WITH_QWORD ( pBaseIndex, true, Qword, + if ( !CSphIndex_VLN::MergeWordsN ( dIndexes, dRowMaps, &tHitBuilder, sError, tProgress ) ) + return false; + ); + if ( pTimings ) + pTimings->m_tmWords = sphMicroTimer() - tmWordsStart; + END_CORO ( "sph" ); + + if ( tMonitor.NeedStop () || !sError.IsEmpty() ) + return false; + + AggregateHit_t tFlush; + tFlush.m_tRowID = INVALID_ROWID; + tFlush.m_uWordID = 0; + tFlush.m_szKeyword = (const BYTE*)""; + tFlush.m_iWordPos = EMPTY_HIT; + tFlush.m_dFieldMask.UnsetAll(); + tHitBuilder.cidxHit ( &tFlush ); + + int iMinInfixLen = pSettings->m_tSettings.m_iMinInfixLen; + int64_t tmFinalizeStart = sphMicroTimer(); + if ( !tHitBuilder.cidxDone ( g_tMergeSettings.m_iBufferDict, iMinInfixLen, pSettings->m_pTokenizer->GetMaxCodepointLength(), &tBuildHeader ) ) + return false; + + WriteHeader_t tWriteHeader; + tWriteHeader.m_pSettings = &pSettings->m_tSettings; + tWriteHeader.m_pSchema = &pSettings->m_tSchema; + tWriteHeader.m_pTokenizer = pSettings->m_pTokenizer; + tWriteHeader.m_pDict = pSettings->m_pDict; + tWriteHeader.m_pFieldFilter = pSettings->m_pFieldFilter.get(); + tWriteHeader.m_pFieldLens = pSettings->m_dFieldLens.Begin(); + + IndexBuildDone ( tBuildHeader, tWriteHeader, pDstIndex->GetTmpFilename ( SPH_EXT_SPH ), sError ); + if ( pTimings ) + { + pTimings->m_tmFinalize = sphMicroTimer() - tmFinalizeStart; + pTimings->m_tmTotal = sphMicroTimer() - tmTotalStart; + } + + tDict.SetPersistent(); + dDeleteOnInterrupt.Reset(); + + return true; +} + bool sphMerge ( const CSphIndex * pDst, const CSphIndex * pSrc, VecTraits_T dFilters, CSphIndexProgress & tProgress, CSphString& sError ) { @@ -6957,6 +7328,23 @@ bool sphMerge ( const CSphIndex * pDst, const CSphIndex * pSrc, VecTraits_T dIndexes, CSphIndexProgress & tProgress, CSphString& sError, MergeTimings_t * pTimings ) +{ + TRACE_CORO ( "sph", "sphMergeN" ); + if ( dIndexes.GetLength()<2 ) + { + sError = "need at least 2 indexes for N-way merge"; + return false; + } + + CSphVector dVlnIndexes; + dVlnIndexes.Reserve ( dIndexes.GetLength() ); + for ( const auto * pIndex : dIndexes ) + dVlnIndexes.Add ( (const CSphIndex_VLN *)pIndex ); + + return CSphIndex_VLN::DoMergeN ( dVlnIndexes, sError, tProgress, pTimings ); +} + template < typename QWORD > bool CSphIndex_VLN::DeleteField ( const CSphIndex_VLN * pIndex, CSphHitBuilder * pHitBuilder, CSphString & sError, CSphSourceStats & tStat, int iKillField ) { @@ -9640,12 +10028,12 @@ void CSphIndex_VLN::Preread() { MEMORY ( MEM_INDEX_DISK ); - sphLogDebug ( "CSphIndex_VLN::Preread invoked '%s'(%s)", GetName(), GetFilebase() ); - assert ( m_bPassedAlloc ); if ( m_bPassedRead ) return; + sphLogDebug ( "CSphIndex_VLN::Preread invoked '%s'(%s)", GetName(), GetFilebase() ); + /////////////////// // read everything /////////////////// diff --git a/src/sphinxint.h b/src/sphinxint.h index bd78e1d468..8b09f35083 100644 --- a/src/sphinxint.h +++ b/src/sphinxint.h @@ -843,6 +843,16 @@ struct BuildBufferSettings_t bool sphMerge ( const CSphIndex * pDst, const CSphIndex * pSrc, VecTraits_T dFilters, CSphIndexProgress & tProgress, CSphString& sError ); +struct MergeTimings_t +{ + int64_t m_tmTotal = 0; + int64_t m_tmAttrs = 0; + int64_t m_tmWords = 0; + int64_t m_tmFinalize = 0; +}; + +bool sphMergeN ( VecTraits_T dIndexes, CSphIndexProgress & tProgress, CSphString& sError, MergeTimings_t * pTimings = nullptr ); + /// json save/load void operator<< ( JsonEscapedBuilder& tOut, const CSphSchema& tSchema ); From 1239f89b73e9e529e743188dba995d4ee4211061 Mon Sep 17 00:00:00 2001 From: "Aleksey N. Vinogradov" Date: Mon, 16 Mar 2026 18:40:57 +0700 Subject: [PATCH 04/14] implement param "merge_chunks_per_job" --- src/searchd.cpp | 9 +++++++++ src/sphinxrt.cpp | 6 ++++++ src/sphinxrt.h | 1 + src/sphinxutils.cpp | 1 + 4 files changed, 17 insertions(+) diff --git a/src/searchd.cpp b/src/searchd.cpp index db843e70eb..e33a42cc9a 100644 --- a/src/searchd.cpp +++ b/src/searchd.cpp @@ -110,6 +110,7 @@ static int g_iThdQueueMax = 0; static auto& g_iTFO = sphGetTFO (); static bool g_bJsonConfigLoadedOk = false; static auto& g_iAutoOptimizeCutoffMultiplier = AutoOptimizeCutoffMultiplier(); +static auto& g_iMergeChunksPerJob = MergeChunksPerJob(); static constexpr bool AUTOOPTIMIZE_NEEDS_VIP = false; // whether non-VIP can issue 'SET GLOBAL auto_optimize = X' static constexpr bool THREAD_EX_NEEDS_VIP = false; // whether non-VIP can issue 'SET GLOBAL auto_optimize = X' @@ -8848,6 +8849,12 @@ static bool HandleSetGlobal ( CSphString & sError, const CSphString & sName, int return true; } + if ( sName == "merge_chunks_per_job" ) + { + g_iMergeChunksPerJob = Max ( 2, iSetValue ); + return true; + } + if ( sName == "optimize_cutoff" ) { if ( iSetValue < 1 ) @@ -9598,6 +9605,7 @@ void HandleMysqlShowVariables ( RowBuffer_i & dRows, const SqlStmt_t & tStmt ) auto pVars = session::Info().GetClientSession(); dTable.MatchTuplet ( "autocommit", pVars->m_bAutoCommit ? "1" : "0" ); dTable.MatchTupletf ( "auto_optimize", "%d", g_iAutoOptimizeCutoffMultiplier ); + dTable.MatchTupletf ( "merge_chunks_per_job", "%d", g_iMergeChunksPerJob ); dTable.MatchTupletf ( "optimize_cutoff", "%d", MutableIndexSettings_c::GetDefaults().m_iOptimizeCutoff ); dTable.MatchTuplet ( "collation_connection", sphCollationToName ( session::GetCollation() ) ); dTable.MatchTuplet ( "query_log_format", LogFormat()==LOG_FORMAT::_PLAIN ? "plain" : "sphinxql" ); @@ -13927,6 +13935,7 @@ void ConfigureSearchd ( const CSphConfig & hConf, bool bOptPIDFile, bool bTestMo g_iMaxConnection = hSearchd.GetInt ( "max_connections", g_iMaxConnection ); auto iThreads = hSearchd.GetInt ( "threads", GetNumLogicalCPUs() ); SetMaxChildrenThreads ( iThreads ); + g_iMergeChunksPerJob = Max ( 2, hSearchd.GetInt ( "merge_chunks_per_job", 2 ) ); g_iThdQueueMax = hSearchd.GetInt ( "jobs_queue_size", g_iThdQueueMax ); g_iPersistentPoolSize = hSearchd.GetInt ("persistent_connections_limit"); diff --git a/src/sphinxrt.cpp b/src/sphinxrt.cpp index 48d6e96d2b..c7e0cbcfb7 100644 --- a/src/sphinxrt.cpp +++ b/src/sphinxrt.cpp @@ -154,6 +154,12 @@ volatile int &AutoOptimizeCutoffMultiplier() noexcept return iAutoOptimizeCutoffMultiplier; } +volatile int &MergeChunksPerJob() noexcept +{ + static int iMergeChunksPerJob = 2; + return iMergeChunksPerJob; +} + volatile int AutoOptimizeCutoff() noexcept { static int iAutoOptimizeCutoff = GetNumLogicalCPUs() * 2; diff --git a/src/sphinxrt.h b/src/sphinxrt.h index f8034eb794..c5411c1073 100644 --- a/src/sphinxrt.h +++ b/src/sphinxrt.h @@ -486,6 +486,7 @@ volatile bool &RTChangesAllowed () noexcept; // Get global flag of autooptimize volatile int & AutoOptimizeCutoffMultiplier() noexcept; +volatile int & MergeChunksPerJob() noexcept; volatile int AutoOptimizeCutoff() noexcept; volatile int AutoOptimizeCutoffKNN() noexcept; diff --git a/src/sphinxutils.cpp b/src/sphinxutils.cpp index 331a60e68a..3265302551 100644 --- a/src/sphinxutils.cpp +++ b/src/sphinxutils.cpp @@ -1094,6 +1094,7 @@ static KeyDesc_t g_dKeysSearchd[] = { "secondary_index_block_cache", 0, nullptr }, { "expansion_phrase_warning", 0, NULL }, { "attr_autoconv_strict", 0, NULL }, + { "merge_chunks_per_job", 0, nullptr }, { NULL, 0, NULL } }; From b9108bb0d15194a6d8a6ce829614f33a12c52db6 Mon Sep 17 00:00:00 2001 From: "Aleksey N. Vinogradov" Date: Mon, 16 Mar 2026 18:35:43 +0700 Subject: [PATCH 05/14] implement param "parallel_chunk_merges" --- src/searchd.cpp | 10 ++++++++++ src/sphinxrt.cpp | 6 ++++++ src/sphinxrt.h | 1 + src/sphinxutils.cpp | 1 + 4 files changed, 18 insertions(+) diff --git a/src/searchd.cpp b/src/searchd.cpp index e33a42cc9a..2549899f39 100644 --- a/src/searchd.cpp +++ b/src/searchd.cpp @@ -110,6 +110,7 @@ static int g_iThdQueueMax = 0; static auto& g_iTFO = sphGetTFO (); static bool g_bJsonConfigLoadedOk = false; static auto& g_iAutoOptimizeCutoffMultiplier = AutoOptimizeCutoffMultiplier(); +static auto& g_iParallelChunkMerges = ParallelChunkMergesLimit(); static auto& g_iMergeChunksPerJob = MergeChunksPerJob(); static constexpr bool AUTOOPTIMIZE_NEEDS_VIP = false; // whether non-VIP can issue 'SET GLOBAL auto_optimize = X' static constexpr bool THREAD_EX_NEEDS_VIP = false; // whether non-VIP can issue 'SET GLOBAL auto_optimize = X' @@ -8849,6 +8850,12 @@ static bool HandleSetGlobal ( CSphString & sError, const CSphString & sName, int return true; } + if ( sName == "parallel_chunk_merges" ) + { + g_iParallelChunkMerges = Max ( 1, iSetValue ); + return true; + } + if ( sName == "merge_chunks_per_job" ) { g_iMergeChunksPerJob = Max ( 2, iSetValue ); @@ -9605,6 +9612,7 @@ void HandleMysqlShowVariables ( RowBuffer_i & dRows, const SqlStmt_t & tStmt ) auto pVars = session::Info().GetClientSession(); dTable.MatchTuplet ( "autocommit", pVars->m_bAutoCommit ? "1" : "0" ); dTable.MatchTupletf ( "auto_optimize", "%d", g_iAutoOptimizeCutoffMultiplier ); + dTable.MatchTupletf ( "parallel_chunk_merges", "%d", g_iParallelChunkMerges ); dTable.MatchTupletf ( "merge_chunks_per_job", "%d", g_iMergeChunksPerJob ); dTable.MatchTupletf ( "optimize_cutoff", "%d", MutableIndexSettings_c::GetDefaults().m_iOptimizeCutoff ); dTable.MatchTuplet ( "collation_connection", sphCollationToName ( session::GetCollation() ) ); @@ -13935,6 +13943,8 @@ void ConfigureSearchd ( const CSphConfig & hConf, bool bOptPIDFile, bool bTestMo g_iMaxConnection = hSearchd.GetInt ( "max_connections", g_iMaxConnection ); auto iThreads = hSearchd.GetInt ( "threads", GetNumLogicalCPUs() ); SetMaxChildrenThreads ( iThreads ); + int iDefaultParallelMerges = Max ( 1, Min ( 2, iThreads / 2 ) ); + g_iParallelChunkMerges = Max ( 1, hSearchd.GetInt ( "parallel_chunk_merges", iDefaultParallelMerges ) ); g_iMergeChunksPerJob = Max ( 2, hSearchd.GetInt ( "merge_chunks_per_job", 2 ) ); g_iThdQueueMax = hSearchd.GetInt ( "jobs_queue_size", g_iThdQueueMax ); diff --git a/src/sphinxrt.cpp b/src/sphinxrt.cpp index c7e0cbcfb7..54d33005bd 100644 --- a/src/sphinxrt.cpp +++ b/src/sphinxrt.cpp @@ -154,6 +154,12 @@ volatile int &AutoOptimizeCutoffMultiplier() noexcept return iAutoOptimizeCutoffMultiplier; } +volatile int &ParallelChunkMergesLimit() noexcept +{ + static int iParallelChunkMerges = 1; + return iParallelChunkMerges; +} + volatile int &MergeChunksPerJob() noexcept { static int iMergeChunksPerJob = 2; diff --git a/src/sphinxrt.h b/src/sphinxrt.h index c5411c1073..e0ea93fbae 100644 --- a/src/sphinxrt.h +++ b/src/sphinxrt.h @@ -486,6 +486,7 @@ volatile bool &RTChangesAllowed () noexcept; // Get global flag of autooptimize volatile int & AutoOptimizeCutoffMultiplier() noexcept; +volatile int & ParallelChunkMergesLimit() noexcept; volatile int & MergeChunksPerJob() noexcept; volatile int AutoOptimizeCutoff() noexcept; volatile int AutoOptimizeCutoffKNN() noexcept; diff --git a/src/sphinxutils.cpp b/src/sphinxutils.cpp index 3265302551..8e7bbc97cb 100644 --- a/src/sphinxutils.cpp +++ b/src/sphinxutils.cpp @@ -1094,6 +1094,7 @@ static KeyDesc_t g_dKeysSearchd[] = { "secondary_index_block_cache", 0, nullptr }, { "expansion_phrase_warning", 0, NULL }, { "attr_autoconv_strict", 0, NULL }, + { "parallel_chunk_merges", 0, nullptr }, { "merge_chunks_per_job", 0, nullptr }, { NULL, 0, NULL } }; From d41222a578f7aaf684c679ce7d1d81a956ae4dc1 Mon Sep 17 00:00:00 2001 From: "Aleksey N. Vinogradov" Date: Mon, 16 Mar 2026 20:07:35 +0700 Subject: [PATCH 06/14] Use MergeN and ChangeDiskChunk --- src/sphinxrt.cpp | 78 +++++++++++++++++++++++++++++++++++++----------- 1 file changed, 60 insertions(+), 18 deletions(-) diff --git a/src/sphinxrt.cpp b/src/sphinxrt.cpp index 54d33005bd..d510312bce 100644 --- a/src/sphinxrt.cpp +++ b/src/sphinxrt.cpp @@ -1419,7 +1419,10 @@ class RtIndex_c final : public RtIndex_i, public ISphNoncopyable, public ISphWor std::pair GetPseudoShardingMetric ( const VecTraits_T & dQueries, const VecTraits_T & dMaxCountDistinct, int iThreads, bool & bForceSingleThread ) const override; // helpers - ConstDiskChunkRefPtr_t MergeDiskChunks ( const char* szParentAction, const ConstDiskChunkRefPtr_t& pChunkA, const ConstDiskChunkRefPtr_t& pChunkB, CSphIndexProgress& tProgress, VecTraits_T dFilters ); + ConstDiskChunkRefPtr_t ChangeDiskChunk ( const char* szParentAction, const ConstDiskChunkRefPtr_t& pChunk, CSphIndexProgress& tProgress, VecTraits_T dFilters ); + ConstDiskChunkRefPtr_t MergeDiskChunksN ( const char * szParentAction, VecTraits_T dChunks, CSphIndexProgress & tProgress, MergeTimings_t * pTimings ); + ConstDiskChunkRefPtr_t MergeChunkPrealloc ( const CSphIndex & tChunkA, const char * szParentAction ); + bool PublishMergedChunks ( const char * szParentAction,std::function && fnPusher) REQUIRES ( m_tWorkers.SerialChunkAccess() ); bool RenameOptimizedChunk ( const ConstDiskChunkRefPtr_t& pChunk, const char * szParentAction ); bool SkipOrDrop ( int iChunk, const CSphIndex& dChunk, bool bCheckAlive, int* pAffected = nullptr ); @@ -9806,26 +9809,29 @@ void RtIndex_c::DropDiskChunk ( int iChunkID, int* pAffected ) } // perform merge, preload result, rename to final chunk and return preallocated result scheduled to dispose -ConstDiskChunkRefPtr_t RtIndex_c::MergeDiskChunks ( const char* szParentAction, const ConstDiskChunkRefPtr_t& pChunkA, const ConstDiskChunkRefPtr_t& pChunkB, CSphIndexProgress& tProgress, VecTraits_T dFilters ) +ConstDiskChunkRefPtr_t RtIndex_c::ChangeDiskChunk ( const char* szParentAction, const ConstDiskChunkRefPtr_t& pChunk, CSphIndexProgress& tProgress, VecTraits_T dFilters ) { - TRACE_CORO ( "rt", "RtIndex_c::MergeDiskChunks" ); + TRACE_CORO ( "rt", "RtIndex_c::ChangeDiskChunk" ); CSphString sError; - const CSphIndex& tChunkA = pChunkA->Cidx(); - const CSphIndex& tChunkB = pChunkB->Cidx(); - - ConstDiskChunkRefPtr_t pChunk; + const CSphIndex& tChunk = pChunk->Cidx(); // note: klist for merged chunk will be attached during merge at the moment of copying alive rows. - if ( !sphMerge ( &tChunkA, &tChunkB, dFilters, tProgress, sError ) ) + if ( !sphMerge ( &tChunk, &tChunk, dFilters, tProgress, sError ) ) { if ( sError.IsEmpty() && tProgress.GetMergeCb().NeedStop() ) sError = "interrupted because of shutdown"; - sphWarning ( "rt %s: table %s: failed to %s %s (%s)", szParentAction, GetName(), dFilters.IsEmpty() ? "merge" : "split", tChunkA.GetFilebase(), sError.cstr() ); - return pChunk; + sphWarning ( "rt %s: table %s: failed to %s %s (%s)", szParentAction, GetName(), dFilters.IsEmpty() ? "merge" : "split", tChunk.GetFilebase(), sError.cstr() ); + return {}; } // PauseCheck ( "postmerge" ); + return MergeChunkPrealloc ( tChunk, szParentAction ); +} + +ConstDiskChunkRefPtr_t RtIndex_c::MergeChunkPrealloc ( const CSphIndex & tChunk, const char * szParentAction ) +{ + ConstDiskChunkRefPtr_t pChunk; auto fnFnameBuilder = GetIndexFilenameBuilder(); std::unique_ptr pFilenameBuilder; @@ -9833,20 +9839,47 @@ ConstDiskChunkRefPtr_t RtIndex_c::MergeDiskChunks ( const char* szParentAction, pFilenameBuilder = fnFnameBuilder ( GetName() ); // prealloc new (optimized) chunk - CSphString sChunk = tChunkA.GetFilename ( "tmp" ); + CSphString sChunk = tChunk.GetFilename ( "tmp" ); + CSphString sError; StrVec_t dWarnings; - pChunk = DiskChunk_c::make ( PreallocDiskChunk ( sChunk, tChunkA.m_iChunk, pFilenameBuilder.get(), dWarnings, sError, tChunkA.GetName() ) ); + pChunk = DiskChunk_c::make ( PreallocDiskChunk ( sChunk, tChunk.m_iChunk, pFilenameBuilder.get(), dWarnings, sError, tChunk.GetName() ) ); dWarnings.for_each ( [] ( const auto& sWarning ) { sphWarning ( "PreallocDiskChunk warning: %s", sWarning.cstr() ); } ); if ( pChunk ) pChunk->m_bFinallyUnlink = true; // on destroy files will be deleted. Caller must explicitly reset this flag if chunk is usable else - sphWarning ( "rt %s: table %s: failed to prealloc", szParentAction, GetName() ); + sphWarning ( "rt %s: table %s: failed to prealloc: %s", szParentAction, GetName(), sError.cstr() ); return pChunk; } +ConstDiskChunkRefPtr_t RtIndex_c::MergeDiskChunksN ( const char* szParentAction, VecTraits_T dChunks, CSphIndexProgress& tProgress, MergeTimings_t * pTimings ) +{ + TRACE_CORO ( "rt", "RtIndex_c::MergeDiskChunksN" ); + CSphString sError; + + if ( !dChunks.GetLength() ) + return {}; + + CSphFixedVector dIndexes ( dChunks.GetLength() ); + ARRAY_FOREACH ( i, dChunks ) + dIndexes[i] = &dChunks[i]->Cidx(); + + ConstDiskChunkRefPtr_t pChunk; + if ( !sphMergeN ( dIndexes, tProgress, sError, pTimings ) ) + { + if ( sError.IsEmpty() && tProgress.GetMergeCb().NeedStop() ) + sError = "interrupted because of shutdown"; + sphWarning ( "rt %s: table %s: failed to merge %s (%s)", szParentAction, GetName(), dChunks[0]->Cidx().GetFilebase(), sError.cstr() ); + return pChunk; + } + + // Use the last chunk for prealloc since DoMergeN writes files using pDstIndex (last chunk) + const CSphIndex & tChunkDst = dChunks.Last()->Cidx(); + return MergeChunkPrealloc ( tChunkDst, szParentAction ); +} + bool RtIndex_c::RenameOptimizedChunk ( const ConstDiskChunkRefPtr_t& pChunk, const char* szParentAction ) { if ( !pChunk ) @@ -10093,7 +10126,7 @@ bool RtIndex_c::CompressOneChunk ( int iChunkID, int* pAffected ) // merge data to disk ( data is constant during that phase ) RTMergeCb_c tMonitor ( &m_bOptimizeStop, this ); CSphIndexProgress tProgress ( &tMonitor ); - auto pCompressed = MergeDiskChunks ( "compress", pVictim, pVictim, tProgress, { nullptr, 0 } ); + auto pCompressed = ChangeDiskChunk ( "compress", pVictim, tProgress, { nullptr, 0 } ); auto tFinallyStopCollectingUpdates = AtScopeExit ( [pVictim] { pVictim->CastIdx().ResetPostponedUpdates(); } ); @@ -10254,7 +10287,7 @@ bool RtIndex_c::SplitOneChunk ( int iChunkID, const char* szUvarFilter, int* pAf auto iOriginallyAlive = NumAliveDocs ( tVictim ); // get 1-st chunk - one which doesn't match filter the filter - auto pChunkE = MergeDiskChunks ( "1-st part of split", pVictim, pVictim, tProgress, dFilters ); + auto pChunkE = ChangeDiskChunk ( "1-st part of split", pVictim, tProgress, dFilters ); auto tFinallyStopCollectingUpdatesE = AtScopeExit ( [pVictim] { pVictim->CastIdx().ResetPostponedUpdates(); } ); @@ -10283,7 +10316,7 @@ bool RtIndex_c::SplitOneChunk ( int iChunkID, const char* szUvarFilter, int* pAf // prepare ncluded chunk - one with included docs, it will be placed instead of original one dFilter.m_bExclude = false; - auto pChunkI = MergeDiskChunks ( "2-nd part of split", pVictim, pVictim, tProgress, dFilters ); + auto pChunkI = ChangeDiskChunk ( "2-nd part of split", pVictim, tProgress, dFilters ); // check forced exit after long operation (that is - after merge) if ( !pChunkI || tMonitor.NeedStop() ) @@ -10368,7 +10401,9 @@ bool RtIndex_c::MergeTwoChunks ( int iAID, int iBID, int* pAffected, CSphString* pB->m_bOptimizing.store ( true, std::memory_order_relaxed ); auto tResetOptimizingB = AtScopeExit ( [pB] { pB->m_bOptimizing.store ( false, std::memory_order_relaxed ); } ); - sphLogDebug ( "common merge - merging %d (%d kb) with %d (%d kb)", + const char * szActionName = "common merge"; + + sphLogDebug ( "%s - merging %d (%d kb) with %d (%d kb)", szActionName, iAID, (int)( GetChunkSize ( pA->Cidx() ) / 1024 ), iBID, @@ -10378,8 +10413,15 @@ bool RtIndex_c::MergeTwoChunks ( int iAID, int iBID, int* pAffected, CSphString* RTMergeCb_c tMonitor ( &m_bOptimizeStop, this ); CSphIndexProgress tProgress ( &tMonitor ); + CSphFixedVector dChunks ( 2 ); + dChunks[0] = pA; + dChunks[1] = pB; + + MergeTimings_t tTimings; // get 1-st chunk - one which doesn't match filter the filter - auto pMerged = MergeDiskChunks ( "common merge", pA, pB, tProgress, { nullptr, 0 } ); +// auto pMerged = MergeDiskChunks ( "common merge", pA, pB, tProgress, { nullptr, 0 } ); + auto pMerged = MergeDiskChunksN ( szActionName, dChunks, tProgress, &tTimings ); + auto tFinallyStopCollectingUpdates = AtScopeExit ( [pA, pB] { pA->CastIdx().ResetPostponedUpdates(); From 079b5d6cd10040f5d426a66c20acfe8ac5627d48 Mon Sep 17 00:00:00 2001 From: "Aleksey N. Vinogradov" Date: Mon, 16 Mar 2026 20:20:49 +0700 Subject: [PATCH 07/14] remove classic optimize Only progressive is in game from now --- manual/english/Server_settings/Common.md | 2 +- src/sphinxrt.cpp | 22 ++-------------------- src/sphinxutils.cpp | 2 +- test/test_319/model.bin | 8 ++++++-- 4 files changed, 10 insertions(+), 24 deletions(-) diff --git a/manual/english/Server_settings/Common.md b/manual/english/Server_settings/Common.md index b1a5c1754c..1a0c9d3690 100755 --- a/manual/english/Server_settings/Common.md +++ b/manual/english/Server_settings/Common.md @@ -16,7 +16,7 @@ lemmatizer_base = /usr/share/manticore/ progressive_merge ------------------ -The progressive_merge is a configuration directive that, when enabled, merges real-time table disk chunks from smaller to larger ones. This approach speeds up the merging process and reduces read/write amplification. By default, this setting is enabled. If disabled, the chunks are merged in the order they were created. +The progressive_merge is a configuration directive that, when enabled, merges real-time table disk chunks from smaller to larger ones. This approach speeds up the merging process and reduces read/write amplification. This setting is always enabled, and left in configuration only for backward compatibility. json_autoconv_keynames ------------------------ diff --git a/src/sphinxrt.cpp b/src/sphinxrt.cpp index d510312bce..2a5e6b4fd3 100644 --- a/src/sphinxrt.cpp +++ b/src/sphinxrt.cpp @@ -138,8 +138,6 @@ static bool LOG_LEVEL_RTSPLIT_QUERY = val_from_env ( "MANTICORE_LOG_RTSPLIT_QUER // GLOBALS ////////////////////////////////////////////////////////////////////////// -// optimize mode for disk chunks merge fixme! retire? -static bool g_bProgressiveMerge = true; ////////////////////////////////////////////////////////////////////////// volatile bool &RTChangesAllowed () noexcept @@ -1401,7 +1399,6 @@ class RtIndex_c final : public RtIndex_i, public ISphNoncopyable, public ISphWor int GetNumOfLocks() const noexcept final; void Optimize ( OptimizeTask_t tTask ) final; void CheckStartAutoOptimize (); - int ClassicOptimize (); int ProgressiveOptimize ( int iCutoff ); int CommonOptimize ( OptimizeTask_t tTask ); void DropDiskChunk ( int iChunk, int* pAffected=nullptr ); @@ -10621,7 +10618,7 @@ void RtIndex_c::Optimize ( OptimizeTask_t tTask ) if ( m_tSaving.IsInterrupted() ) LogWarning ( "rt: table %s: optimization terminated chunk(s) %d ( left %d ) in %.3t", GetName(), iChunks, iDiskChunks, tmPass ); else if ( iChunks > 0 ) - LogInfo ( "rt: table %s: optimized %s chunk(s) %d ( left %d ) in %.3t", GetName(), g_bProgressiveMerge ? "progressive" : "regular", iChunks, iDiskChunks, tmPass ); + LogInfo ( "rt: table %s: optimized progressive chunk(s) %d ( left %d ) in %.3t", GetName(), iChunks, iDiskChunks, tmPass ); } bool RtIndex_c::MergeCanRun() const @@ -10629,17 +10626,6 @@ bool RtIndex_c::MergeCanRun() const return !m_tSaving.IsInterrupted() && !m_bOptimizeStop.load(std::memory_order_relaxed); } -int RtIndex_c::ClassicOptimize () -{ - TRACE_SCHED ( "rt", "RtIndex_c::ClassicOptimize" ); - RTDLOG << "Start ClassicOptimize()"; - int iAffected = 0; - bool bWork = true; - while ( bWork && m_tRtChunks.GetDiskChunksCount() >= 2 ) - bWork &= MergeCanRun() && MergeTwoChunks ( ChunkIDByChunkIdx ( 0 ), ChunkIDByChunkIdx ( 1 ), &iAffected ); - return iAffected; -} - int GetCutOff ( const MutableIndexSettings_c & tSettings, bool bKNN ) { if ( tSettings.IsSet ( MutableName_e::OPTIMIZE_CUTOFF ) ) @@ -10711,7 +10697,6 @@ int RtIndex_c::ProgressiveOptimize ( int iCutoff ) int RtIndex_c::CommonOptimize ( OptimizeTask_t tTask ) { TRACE_CORO ( "rt", "RtIndex_c::CommonOptimize" ); - bool bProgressive = g_bProgressiveMerge; int iChunks = 0; switch ( tTask.m_eVerb ) // process all 'single' manual commands @@ -10722,12 +10707,11 @@ int RtIndex_c::CommonOptimize ( OptimizeTask_t tTask ) case OptimizeTask_t::eDedup: DedupOneChunk ( tTask.m_iFrom, &iChunks ); return iChunks; case OptimizeTask_t::eSplit: SplitOneChunk ( tTask.m_iFrom, tTask.m_sUvarFilter.cstr(), &iChunks ); return iChunks; case OptimizeTask_t::eAutoOptimize: - bProgressive = true; default: break; } - return bProgressive ? ProgressiveOptimize( tTask.m_iCutoff ) : ClassicOptimize(); + return ProgressiveOptimize( tTask.m_iCutoff ); } void RtIndex_c::CheckStartAutoOptimize() @@ -11225,8 +11209,6 @@ void sphRTInit ( CSphString sBinlogPath, bool bCommonBinlog, const CSphConfigSec { Binlog::Init ( std::move ( sBinlogPath ) ); Binlog::SetCommon ( bCommonBinlog ); - if ( pCommon ) - g_bProgressiveMerge = pCommon->GetBool ( "progressive_merge", true ); } diff --git a/src/sphinxutils.cpp b/src/sphinxutils.cpp index 8e7bbc97cb..5c14a71c34 100644 --- a/src/sphinxutils.cpp +++ b/src/sphinxutils.cpp @@ -1112,7 +1112,7 @@ static KeyDesc_t g_dKeysCommon[] = { "rlp_max_batch_size", KEY_REMOVED, NULL }, { "rlp_max_batch_docs", KEY_REMOVED, NULL }, { "plugin_dir", 0, NULL }, - { "progressive_merge", 0, NULL }, + { "progressive_merge", KEY_REMOVED, NULL }, { NULL, 0, NULL } }; diff --git a/test/test_319/model.bin b/test/test_319/model.bin index 6c60e1f4db..d1ddce2ae5 100644 --- a/test/test_319/model.bin +++ b/test/test_319/model.bin @@ -14,8 +14,12 @@ flushed 811";i:13;s:10:"query test";i:14;s:16:" 701 702 703 -3 rows";i:17;s:47:"stop=ok, return code=0; start=ok, return code=0";i:18;s:3:" -OK";i:19;s:47:"stop=ok, return code=0; start=ok, return code=0";i:20;s:16:" +3 rows";i:17;s:281:"stop=ok, return code=0; start=ok, return code=2, error=WARNING: key 'progressive_merge' was permanently removed from configuration. Refer to documentation for details. +WARNING: key 'progressive_merge' was permanently removed from configuration. Refer to documentation for details. +";i:18;s:3:" +OK";i:19;s:281:"stop=ok, return code=0; start=ok, return code=2, error=WARNING: key 'progressive_merge' was permanently removed from configuration. Refer to documentation for details. +WARNING: key 'progressive_merge' was permanently removed from configuration. Refer to documentation for details. +";i:20;s:16:" disk_chunks | 2";i:21;s:10:"query test";i:22;s:16:" 11 12 From 4bf98489a5b0ecc7f849e2f4be16cd8f006f506b Mon Sep 17 00:00:00 2001 From: "Aleksey N. Vinogradov" Date: Mon, 16 Mar 2026 20:35:45 +0700 Subject: [PATCH 08/14] guard --- src/sphinxrt.cpp | 51 ++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 43 insertions(+), 8 deletions(-) diff --git a/src/sphinxrt.cpp b/src/sphinxrt.cpp index 2a5e6b4fd3..c68572ab05 100644 --- a/src/sphinxrt.cpp +++ b/src/sphinxrt.cpp @@ -10102,6 +10102,42 @@ bool RtIndex_c::SkipOrDrop ( int iChunkID, const CSphIndex& dChunk, bool bCheckA return false; } +class MergeGuardMulti_c +{ + CSphVector m_dUsedChunks; + + void SetOptimize() const noexcept + { + for ( const auto & pChunk : m_dUsedChunks ) + if ( pChunk ) + pChunk->m_bOptimizing.store ( true, std::memory_order_relaxed ); + } + +public: + MergeGuardMulti_c () = default; + explicit MergeGuardMulti_c ( const VecTraits_T & dChunks ) + { + m_dUsedChunks.Reserve ( dChunks.GetLength() ); + for ( const auto & pChunk : dChunks ) + m_dUsedChunks.Add ( pChunk ); + + SetOptimize(); + } + + void Add ( const ConstDiskChunkRefPtr_t & pChunk ) noexcept + { + m_dUsedChunks.Add ( pChunk ); + SetOptimize(); + } + + virtual ~MergeGuardMulti_c() + { + for ( const auto & pChunk : m_dUsedChunks ) + if ( pChunk ) + pChunk->m_bOptimizing.store ( false, std::memory_order_relaxed ); + } +}; + bool RtIndex_c::CompressOneChunk ( int iChunkID, int* pAffected ) { TRACE_CORO ( "rt", "RtIndex_c::CompressOneChunk" ); @@ -10117,8 +10153,8 @@ bool RtIndex_c::CompressOneChunk ( int iChunkID, int* pAffected ) sphLogDebug ( "compress %d (%d kb)", iChunkID, (int)( GetChunkSize ( tVictim ) / 1024 ) ); - pVictim->m_bOptimizing.store ( true, std::memory_order_relaxed ); - auto tResetOptimizing = AtScopeExit ( [pVictim] { pVictim->m_bOptimizing.store ( false, std::memory_order_relaxed ); } ); + MergeGuardMulti_c tOptimizingGuard; + tOptimizingGuard.Add (pVictim); // merge data to disk ( data is constant during that phase ) RTMergeCb_c tMonitor ( &m_bOptimizeStop, this ); @@ -10262,8 +10298,8 @@ bool RtIndex_c::SplitOneChunk ( int iChunkID, const char* szUvarFilter, int* pAf CSphIndex& tVictim = pVictim->CastIdx(); // non-const need to invoke 'merge' sphLogDebug ( "split %d (%d kb) with %s", iChunkID, (int)( GetChunkSize ( tVictim ) / 1024 ), szUvarFilter ); - pVictim->m_bOptimizing.store ( true, std::memory_order_relaxed ); - auto tResetOptimizing = AtScopeExit ( [pVictim] { pVictim->m_bOptimizing.store ( false, std::memory_order_relaxed ); } ); + MergeGuardMulti_c tOptimizingGuard; + tOptimizingGuard.Add (pVictim); const UservarIntSet_c pUservar = Uservars ( szUvarFilter ); assert ( pUservar ); // detailed check already performed in splitOneChunkFast @@ -10393,10 +10429,9 @@ bool RtIndex_c::MergeTwoChunks ( int iAID, int iBID, int* pAffected, CSphString* return false; } - pA->m_bOptimizing.store ( true, std::memory_order_relaxed ); - auto tResetOptimizingA = AtScopeExit ( [pA] { pA->m_bOptimizing.store ( false, std::memory_order_relaxed ); } ); - pB->m_bOptimizing.store ( true, std::memory_order_relaxed ); - auto tResetOptimizingB = AtScopeExit ( [pB] { pB->m_bOptimizing.store ( false, std::memory_order_relaxed ); } ); + MergeGuardMulti_c tOptimizingGuard; + tOptimizingGuard.Add (pA); + tOptimizingGuard.Add (pB); const char * szActionName = "common merge"; From 482e0eae9780d8cb2f092e15d09369f620b808aa Mon Sep 17 00:00:00 2001 From: "Aleksey N. Vinogradov" Date: Tue, 17 Mar 2026 12:16:29 +0700 Subject: [PATCH 09/14] implement MergeNChunks route MergeTwoChunks to MergeNChunks --- src/sphinxrt.cpp | 95 ++++++++++++++++++++++++++++++------------------ 1 file changed, 60 insertions(+), 35 deletions(-) diff --git a/src/sphinxrt.cpp b/src/sphinxrt.cpp index c68572ab05..433525dd8f 100644 --- a/src/sphinxrt.cpp +++ b/src/sphinxrt.cpp @@ -1371,6 +1371,8 @@ struct ExternalFilesCacheEntry_t CSphString m_sJieba; }; +struct RtMergeTimings_t; + using ExtFiles_h = OpenHashTable_T; class RtIndex_c final : public RtIndex_i, public ISphNoncopyable, public ISphWordlist, public ISphWordlistSuggest, public IndexAlterHelper_c @@ -1404,7 +1406,8 @@ class RtIndex_c final : public RtIndex_i, public ISphNoncopyable, public ISphWor void DropDiskChunk ( int iChunk, int* pAffected=nullptr ); bool CompressOneChunk ( int iChunk, int* pAffected = nullptr ); bool DedupOneChunk ( int iChunk, int* pAffected = nullptr ); - bool MergeTwoChunks ( int iA, int iB, int* pAffected, CSphString* sLog = nullptr ); + bool MergeTwoChunks ( int iA, int iB, int* pAffected, StringBuilder_c* sLog = nullptr ); + bool MergeNChunks ( const char * szParentAction, VecTraits_T dChunks, int* pAffected, StringBuilder_c* sLog, RtMergeTimings_t & tTimings ); bool MergeCanRun () const; bool SplitOneChunk ( int iChunkID, const char* szUvarFilter, int* pAffected = nullptr ); bool SplitOneChunkFast ( int iChunkID, const char * szUvarFilter, bool& bResult, int* pAffected = nullptr ); @@ -1417,7 +1420,7 @@ class RtIndex_c final : public RtIndex_i, public ISphNoncopyable, public ISphWor // helpers ConstDiskChunkRefPtr_t ChangeDiskChunk ( const char* szParentAction, const ConstDiskChunkRefPtr_t& pChunk, CSphIndexProgress& tProgress, VecTraits_T dFilters ); - ConstDiskChunkRefPtr_t MergeDiskChunksN ( const char * szParentAction, VecTraits_T dChunks, CSphIndexProgress & tProgress, MergeTimings_t * pTimings ); + ConstDiskChunkRefPtr_t MergeDiskChunksN ( const char * szParentAction, VecTraits_T dChunks, CSphIndexProgress & tProgress, RtMergeTimings_t & tTimings ); ConstDiskChunkRefPtr_t MergeChunkPrealloc ( const CSphIndex & tChunkA, const char * szParentAction ); bool PublishMergedChunks ( const char * szParentAction,std::function && fnPusher) REQUIRES ( m_tWorkers.SerialChunkAccess() ); @@ -9851,12 +9854,18 @@ ConstDiskChunkRefPtr_t RtIndex_c::MergeChunkPrealloc ( const CSphIndex & tChunk, return pChunk; } -ConstDiskChunkRefPtr_t RtIndex_c::MergeDiskChunksN ( const char* szParentAction, VecTraits_T dChunks, CSphIndexProgress& tProgress, MergeTimings_t * pTimings ) +struct RtMergeTimings_t : MergeTimings_t +{ + int64_t m_tmBuild = 0; + int64_t m_tmPublish = 0; +}; + +ConstDiskChunkRefPtr_t RtIndex_c::MergeDiskChunksN ( const char* szParentAction, VecTraits_T dChunks, CSphIndexProgress& tProgress, RtMergeTimings_t& tTimings ) { TRACE_CORO ( "rt", "RtIndex_c::MergeDiskChunksN" ); CSphString sError; - if ( !dChunks.GetLength() ) + if ( dChunks.IsEmpty() ) return {}; CSphFixedVector dIndexes ( dChunks.GetLength() ); @@ -9864,7 +9873,7 @@ ConstDiskChunkRefPtr_t RtIndex_c::MergeDiskChunksN ( const char* szParentAction, dIndexes[i] = &dChunks[i]->Cidx(); ConstDiskChunkRefPtr_t pChunk; - if ( !sphMergeN ( dIndexes, tProgress, sError, pTimings ) ) + if ( !sphMergeN ( dIndexes, tProgress, sError, &tTimings ) ) { if ( sError.IsEmpty() && tProgress.GetMergeCb().NeedStop() ) sError = "interrupted because of shutdown"; @@ -10411,7 +10420,7 @@ bool RtIndex_c::SplitOneChunk ( int iChunkID, const char* szUvarFilter, int* pAf return true; } -bool RtIndex_c::MergeTwoChunks ( int iAID, int iBID, int* pAffected, CSphString* sLog ) +bool RtIndex_c::MergeTwoChunks ( int iAID, int iBID, int* pAffected, StringBuilder_c* sLog ) { TRACE_CORO ( "rt", "RtIndex_c::MergeTwoChunks" ); @@ -10441,30 +10450,36 @@ bool RtIndex_c::MergeTwoChunks ( int iAID, int iBID, int* pAffected, CSphString* iBID, (int)( GetChunkSize ( pB->Cidx() ) / 1024 ) ); - // merge data to disk ( data is constant during that phase ) - RTMergeCb_c tMonitor ( &m_bOptimizeStop, this ); - CSphIndexProgress tProgress ( &tMonitor ); - CSphFixedVector dChunks ( 2 ); dChunks[0] = pA; dChunks[1] = pB; - MergeTimings_t tTimings; - // get 1-st chunk - one which doesn't match filter the filter -// auto pMerged = MergeDiskChunks ( "common merge", pA, pB, tProgress, { nullptr, 0 } ); - auto pMerged = MergeDiskChunksN ( szActionName, dChunks, tProgress, &tTimings ); + RtMergeTimings_t tFoo; + return MergeNChunks ( szActionName, dChunks, pAffected, sLog, tFoo ); +} + +bool RtIndex_c::MergeNChunks ( const char * szParentAction, VecTraits_T dChunks, int* pAffected, StringBuilder_c* pLog, RtMergeTimings_t& tTimings ) +{ + // merge data to disk ( data is constant during that phase ) + RTMergeCb_c tMonitor ( &m_bOptimizeStop, this ); + CSphIndexProgress tProgress ( &tMonitor ); + const auto tmBuild = sphMicroTimer(); + auto pMerged = MergeDiskChunksN ( szParentAction, dChunks, tProgress, tTimings ); + tTimings.m_tmBuild = sphMicroTimer() - tmBuild; - auto tFinallyStopCollectingUpdates = AtScopeExit ( [pA, pB] { - pA->CastIdx().ResetPostponedUpdates(); - pB->CastIdx().ResetPostponedUpdates(); + // finalize + auto fnFinalize = AtScopeExit ( [&tTimings, tmFinalize = sphMicroTimer()] {tTimings.m_tmPublish = sphMicroTimer()-tmFinalize;}); + auto tFinallyStopCollectingUpdates = AtScopeExit ( [&dChunks] { + for ( const auto & pChunk : dChunks ) + pChunk->CastIdx().ResetPostponedUpdates(); } ); // check forced exit after long operation (that is - after merge) if ( !pMerged || tMonitor.NeedStop() ) return false; - if ( !RenameOptimizedChunk ( pMerged, "common merge" ) ) + if ( !RenameOptimizedChunk ( pMerged, szParentAction ) ) return false; CSphIndex& tMerged = pMerged->CastIdx(); // const breakage is ok since we don't yet published the index @@ -10476,8 +10491,8 @@ bool RtIndex_c::MergeTwoChunks ( int iAID, int iBID, int* pAffected, CSphString* END_CORO ("wait" ); // reset kill hook explicitly to override default order of destruction - SetKillHookFor ( nullptr, iAID ); - SetKillHookFor ( nullptr, iBID ); + for ( const auto & pChunk : dChunks ) + SetKillHookFor ( nullptr, pChunk->Cidx().m_iChunk ); // apply collected kill-list before including chunks to the set // as we are in serial worker, that is safe here; no new kills may arrive. @@ -10486,29 +10501,39 @@ bool RtIndex_c::MergeTwoChunks ( int iAID, int iBID, int* pAffected, CSphString* iKilled = tMerged.KillMulti ( tMonitor.GetKilled() ); // and also apply collected updates - CSphVector tUpdated; - tUpdated.Add ( pA ); - tUpdated.Add ( pB ); - auto dUpdates = GatherUpdates::FromChunksOrSegments ( tUpdated ); + auto dUpdates = GatherUpdates::FromChunksOrSegments ( dChunks ); if ( !dUpdates.IsEmpty() ) { tMerged.UpdateAttributesOffline ( dUpdates ); dUpdates.Reset(); } - if ( !PublishMergedChunks ( "optimize", [iAID, iBID, pMerged] ( int iChunk, DiskChunkVec_c& tRes ) { - if ( iChunk == iBID ) - tRes.Add ( pMerged ); - return ( iChunk == iAID || iChunk == iBID ); - } ) ) + auto fnFilter = [&dChunks, pMerged] ( int iChunk, DiskChunkVec_c& tRes ) { + if ( iChunk==dChunks.Last()->Cidx().m_iChunk ) + tRes.Add ( pMerged ); + return dChunks.any_of ( [iChunk] ( const auto & tChunk ) { return tChunk->Cidx().m_iChunk==iChunk; } ); + }; + + if ( !PublishMergedChunks ( szParentAction, fnFilter ) ) return false; - sphLogDebug ( "optimized a=%s, b=%s, new=%s, killed=%d", pA->Cidx().GetFilebase(), pB->Cidx().GetFilebase(), tMerged.GetFilebase(), iKilled ); - if ( sLog ) - sLog->SetSprintf ("%s and %s to %s", pA->Cidx ().GetFilebase(), pB->Cidx ().GetFilebase (), tMerged.GetFilebase ()); + if ( pLog ) + { + auto& sLog = *pLog; + { + ScopedComma_c comma {sLog, ", "}; + dChunks.for_each ( [&sLog] (const auto& tChunk) { sLog << tChunk->Cidx().GetFilebase();} ); + } + sLog << " to " << tMerged.GetFilebase(); + sphLogDebug ( "optimized %s chunks to %s, killed=%d", sLog.cstr(), tMerged.GetFilebase(), iKilled ); + } else + { + sphLogDebug ( "optimized %d chunks to %s, killed=%d", dChunks.GetLength(), tMerged.GetFilebase(), iKilled ); + } + - pA->m_bFinallyUnlink = true; - pB->m_bFinallyUnlink = true; + for ( const auto & pChunk : dChunks ) + pChunk->m_bFinallyUnlink = true; pMerged->m_bFinallyUnlink = false; SaveMeta(); Preread(); @@ -10711,7 +10736,7 @@ int RtIndex_c::ProgressiveOptimize ( int iCutoff ) RTDLOG << "Optimize: merge chunks " << chA.m_iId << " and " << chB.m_iId; - CSphString sLog; + StringBuilder_c sLog; bWork &= MergeTwoChunks ( chA.m_iId, chB.m_iId, &iAffected, &sLog ); auto tmPass = sphMicroTimer() - tmStart; From 561bda04503b5a9f92c3311ecb4efb3b1453f49d Mon Sep 17 00:00:00 2001 From: "Aleksey N. Vinogradov" Date: Tue, 17 Mar 2026 14:03:24 +0700 Subject: [PATCH 10/14] optimize with N chunks batch --- src/sphinxrt.cpp | 75 ++++++++++++++++++++++++++++++++---------------- 1 file changed, 51 insertions(+), 24 deletions(-) diff --git a/src/sphinxrt.cpp b/src/sphinxrt.cpp index 433525dd8f..398352718f 100644 --- a/src/sphinxrt.cpp +++ b/src/sphinxrt.cpp @@ -9676,7 +9676,7 @@ struct ChunkAndSize_t int64_t m_iSize; }; -static ChunkAndSize_t GetNextSmallestChunkByID ( const DiskChunkVec_c& dDiskChunks, int iChunkID ) +static ChunkAndSize_t GetNextSmallestChunkByID ( const DiskChunkVec_c& dDiskChunks, VecTraits_T dExcludeIDs ) { int iRes = -1; int64_t iLastSize = INT64_MAX; @@ -9685,8 +9685,10 @@ static ChunkAndSize_t GetNextSmallestChunkByID ( const DiskChunkVec_c& dDiskChun if ( pDiskChunk->m_bOptimizing.load(std::memory_order_relaxed) ) continue; const CSphIndex& dDiskChunk = pDiskChunk->Cidx(); + if ( dExcludeIDs.any_of ( [id = dDiskChunk.m_iChunk] ( int iVal ) { return iVal==id; } ) ) + continue; int64_t iSize = GetChunkSize ( dDiskChunk ); - if ( iSize < iLastSize && iChunkID != dDiskChunk.m_iChunk ) + if ( iSize < iLastSize ) { iLastSize = iSize; iRes = dDiskChunk.m_iChunk; @@ -10690,8 +10692,11 @@ int GetCutOff ( const MutableIndexSettings_c & tSettings, bool bKNN ) { if ( tSettings.IsSet ( MutableName_e::OPTIMIZE_CUTOFF ) ) return tSettings.m_iOptimizeCutoff; - else - return bKNN ? MutableIndexSettings_c::GetDefaults().m_iOptimizeCutoffKNN : MutableIndexSettings_c::GetDefaults().m_iOptimizeCutoff; + + if ( bKNN ) + return MutableIndexSettings_c::GetDefaults().m_iOptimizeCutoffKNN; + + return MutableIndexSettings_c::GetDefaults().m_iOptimizeCutoff; } int RtIndex_c::ProgressiveOptimize ( int iCutoff ) @@ -10702,6 +10707,9 @@ int RtIndex_c::ProgressiveOptimize ( int iCutoff ) if ( !iCutoff ) iCutoff = GetCutOff ( m_tMutableSettings, m_tSchema.HasKNNAttrs() ); + const int iMergeChunksPerJob = Max ( 2, MergeChunksPerJob() ); + const char * szActionName = "progressive merge"; + bool bWork = true; while ( bWork &= MergeCanRun() ) { @@ -10709,38 +10717,57 @@ int RtIndex_c::ProgressiveOptimize ( int iCutoff ) if ( ( pChunks->GetLength() - GetNumOfOptimizingNow ( *pChunks ) ) <= iCutoff ) break; - auto tmStart = sphMicroTimer(); - // merge 'smallest' to 'smaller' and get 'merged' that names like 'A'+.tmp - // however 'merged' got placed at 'B' position and 'merged' renamed to 'B' name + CSphVector dChosenChunks; + IntVec_t dSkipIds; + dChosenChunks.Reserve ( iMergeChunksPerJob ); + dSkipIds.Reserve ( iMergeChunksPerJob ); - auto chA = GetNextSmallestChunkByID ( *pChunks, -1 ); - if ( !chA.m_iSize ) // empty chunk - just remove + while ( dChosenChunks.GetLength() < iMergeChunksPerJob ) { - RTDLOG << "Optimize: drop chunk " << chA.m_iId; - DropDiskChunk ( chA.m_iId, &iAffected ); - continue; + auto tNext = GetNextSmallestChunkByID ( *pChunks, dSkipIds ); + if ( tNext.m_iId < 0 ) + break; + + if ( !tNext.m_iSize ) + { + RTDLOG << "Optimize: drop chunk " << tNext.m_iId; + DropDiskChunk ( tNext.m_iId, &iAffected ); + dSkipIds.Add ( tNext.m_iId ); + continue; + } + + auto pChunk = m_tRtChunks.DiskChunkByID ( tNext.m_iId ); + if ( !pChunk ) + { + bWork = false; + break; + } + + dChosenChunks.Add ( pChunk ); + dSkipIds.Add ( tNext.m_iId ); } - auto chB = GetNextSmallestChunkByID ( *pChunks, chA.m_iId ); - if ( chA.m_iId < 0 || chB.m_iId < 0 ) - { - // sphWarning ( "Couldn't find smallest chunk" ); + if ( !bWork || dChosenChunks.GetLength()<2 ) break; - } + + RTDLOG << "Optimize: merge chunks " << dChosenChunks.GetLength(); + + auto tmStart = sphMicroTimer(); + + MergeGuardMulti_c tGuard { dChosenChunks }; // we need to make sure that A is the oldest one - // indexes go from oldest to newest so A must go before B (A is always older than B) + // indexes go from oldest to newest so A must-go before B (A is always older than B) // this is not required by bitmap killlists, but by some other stuff (like ALTER RECONFIGURE) - if ( chA.m_iId > chB.m_iId ) - Swap ( chB, chA ); - - RTDLOG << "Optimize: merge chunks " << chA.m_iId << " and " << chB.m_iId; + dChosenChunks.Sort ( Lesser ( [] ( const auto& a, const auto& b ) { return a->Cidx().m_iChunk < b->Cidx().m_iChunk; } ) ); StringBuilder_c sLog; - bWork &= MergeTwoChunks ( chA.m_iId, chB.m_iId, &iAffected, &sLog ); + RtMergeTimings_t tTimings; + bWork &= MergeNChunks ( szActionName, dChosenChunks, &iAffected, &sLog, tTimings ); auto tmPass = sphMicroTimer() - tmStart; - LogInfo ( "rt: table %s: merged chunks %s in %t (progressive mode). Remaining chunk count: %d", GetName (), sLog.cstr(), tmPass, m_tRtChunks.GetDiskChunksCount () ); + LogInfo ( "rt: table %s: merged chunks %s in %t (build %t: attrs %t, words %t, finalize %t; publish %t, progressive mode). Remaining chunk count: %d", + GetName(), sLog.cstr(), tmPass, tTimings.m_tmBuild, tTimings.m_tmAttrs, tTimings.m_tmWords, tTimings.m_tmFinalize, tTimings.m_tmPublish, m_tRtChunks.GetDiskChunksCount() ); } RTDLOG << "Optimize: start compressing pass for the rest of " << m_tRtChunks.GetDiskChunksCount() << " chunks."; From a1593b951c7045af4a415c2335b6a33c2fc22276 Mon Sep 17 00:00:00 2001 From: "Aleksey N. Vinogradov" Date: Tue, 17 Mar 2026 18:37:31 +0700 Subject: [PATCH 11/14] obey cutoff with batch = 32 and having 40 chunks - it optimized to 40-32+1=9 despite cutoff. Now it decrease batch size on the edge pass to obey cutoff --- src/sphinxrt.cpp | 72 ++++++++++++++++++++++++------------------------ 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/src/sphinxrt.cpp b/src/sphinxrt.cpp index 398352718f..bb1fccd0e7 100644 --- a/src/sphinxrt.cpp +++ b/src/sphinxrt.cpp @@ -9676,25 +9676,21 @@ struct ChunkAndSize_t int64_t m_iSize; }; -static ChunkAndSize_t GetNextSmallestChunkByID ( const DiskChunkVec_c& dDiskChunks, VecTraits_T dExcludeIDs ) +static CSphVector GetSmallestChunksByID ( const DiskChunkVec_c& dDiskChunks ) { - int iRes = -1; - int64_t iLastSize = INT64_MAX; + CSphVector dResult; + dResult.Reserve ( dDiskChunks.GetLength() ); for ( const auto& pDiskChunk : dDiskChunks ) { if ( pDiskChunk->m_bOptimizing.load(std::memory_order_relaxed) ) continue; const CSphIndex& dDiskChunk = pDiskChunk->Cidx(); - if ( dExcludeIDs.any_of ( [id = dDiskChunk.m_iChunk] ( int iVal ) { return iVal==id; } ) ) - continue; - int64_t iSize = GetChunkSize ( dDiskChunk ); - if ( iSize < iLastSize ) - { - iLastSize = iSize; - iRes = dDiskChunk.m_iChunk; - } + const int iChunk = dDiskChunk.m_iChunk; + const int64_t iSize = GetChunkSize ( dDiskChunk ); + dResult.Add ( { iChunk, iSize } ); } - return { iRes, iLastSize }; + dResult.Sort ( Lesser ( [] ( const auto& a, const auto& b ) { return a.m_iSize < b.m_iSize; } ) ); + return dResult; } static int GetNumOfOptimizingNow ( const DiskChunkVec_c& dDiskChunks ) @@ -10708,43 +10704,52 @@ int RtIndex_c::ProgressiveOptimize ( int iCutoff ) iCutoff = GetCutOff ( m_tMutableSettings, m_tSchema.HasKNNAttrs() ); const int iMergeChunksPerJob = Max ( 2, MergeChunksPerJob() ); - const char * szActionName = "progressive merge"; + const char * szActionName = "progressive optimize"; bool bWork = true; while ( bWork &= MergeCanRun() ) { auto pChunks = m_tRtChunks.DiskChunks(); - if ( ( pChunks->GetLength() - GetNumOfOptimizingNow ( *pChunks ) ) <= iCutoff ) + const int iFinallyRemainigChunks = pChunks->GetLength() - GetNumOfOptimizingNow ( *pChunks ); + if ( iFinallyRemainigChunks <= iCutoff ) break; + const int iJobSize = Min ( iMergeChunksPerJob, iFinallyRemainigChunks - iCutoff + 1 ); + CSphVector dChosenChunks; - IntVec_t dSkipIds; - dChosenChunks.Reserve ( iMergeChunksPerJob ); - dSkipIds.Reserve ( iMergeChunksPerJob ); + dChosenChunks.Reserve ( iJobSize ); - while ( dChosenChunks.GetLength() < iMergeChunksPerJob ) + auto dSmallest = GetSmallestChunksByID ( *pChunks ); + if ( dSmallest.IsEmpty() ) + break; + + ARRAY_FOREACH ( i, dSmallest ) + if ( !dSmallest[i].m_iSize ) { - auto tNext = GetNextSmallestChunkByID ( *pChunks, dSkipIds ); - if ( tNext.m_iId < 0 ) - break; + RTDLOG << "Optimize: drop chunk " << dSmallest[i].m_iId; + DropDiskChunk ( dSmallest[i].m_iId, &iAffected ); + dSmallest.RemoveFast ( i-- ); + } - if ( !tNext.m_iSize ) - { - RTDLOG << "Optimize: drop chunk " << tNext.m_iId; - DropDiskChunk ( tNext.m_iId, &iAffected ); - dSkipIds.Add ( tNext.m_iId ); - continue; - } + // need to resort because of RemoveFast() above + dSmallest.Sort ( Lesser ( [] ( const auto& a, const auto& b ) { return a.m_iSize < b.m_iSize; } ) ); + + if (dSmallest.GetLength()>iJobSize) + dSmallest.Resize ( iJobSize ); + + // we need to make sure that A is the oldest one + // indexes go from oldest to newest so A must-go before B (A is always older than B) + // this is not required by bitmap killlists, but by some other stuff (like ALTER RECONFIGURE) + dSmallest.Sort ( Lesser ( [] ( const auto& a, const auto& b ) { return a.m_iId < b.m_iId; } ) ); + for ( const auto& tNext : dSmallest ) { auto pChunk = m_tRtChunks.DiskChunkByID ( tNext.m_iId ); if ( !pChunk ) { bWork = false; break; } - dChosenChunks.Add ( pChunk ); - dSkipIds.Add ( tNext.m_iId ); } if ( !bWork || dChosenChunks.GetLength()<2 ) @@ -10756,17 +10761,12 @@ int RtIndex_c::ProgressiveOptimize ( int iCutoff ) MergeGuardMulti_c tGuard { dChosenChunks }; - // we need to make sure that A is the oldest one - // indexes go from oldest to newest so A must-go before B (A is always older than B) - // this is not required by bitmap killlists, but by some other stuff (like ALTER RECONFIGURE) - dChosenChunks.Sort ( Lesser ( [] ( const auto& a, const auto& b ) { return a->Cidx().m_iChunk < b->Cidx().m_iChunk; } ) ); - StringBuilder_c sLog; RtMergeTimings_t tTimings; bWork &= MergeNChunks ( szActionName, dChosenChunks, &iAffected, &sLog, tTimings ); auto tmPass = sphMicroTimer() - tmStart; - LogInfo ( "rt: table %s: merged chunks %s in %t (build %t: attrs %t, words %t, finalize %t; publish %t, progressive mode). Remaining chunk count: %d", + LogInfo ( "rt: table %s: merged chunks %s in %t (build %t: attrs %t, words %t, finalize %t; publish %t). Remaining chunk count: %d", GetName(), sLog.cstr(), tmPass, tTimings.m_tmBuild, tTimings.m_tmAttrs, tTimings.m_tmWords, tTimings.m_tmFinalize, tTimings.m_tmPublish, m_tRtChunks.GetDiskChunksCount() ); } From 295f6f77bc548e6cae8dde176ba5143ad652ed0d Mon Sep 17 00:00:00 2001 From: "Aleksey N. Vinogradov" Date: Tue, 17 Mar 2026 19:53:49 +0700 Subject: [PATCH 12/14] concurrent-safe optimize mark two threads can't simultaneously start optimize same set of chunks; one will always see if they were occupied even if it is happened 'right now' . --- src/sphinxrt.cpp | 94 +++++++++++++++++++++++++++++++++--------------- 1 file changed, 66 insertions(+), 28 deletions(-) diff --git a/src/sphinxrt.cpp b/src/sphinxrt.cpp index bb1fccd0e7..03e7077075 100644 --- a/src/sphinxrt.cpp +++ b/src/sphinxrt.cpp @@ -1404,6 +1404,7 @@ class RtIndex_c final : public RtIndex_i, public ISphNoncopyable, public ISphWor int ProgressiveOptimize ( int iCutoff ); int CommonOptimize ( OptimizeTask_t tTask ); void DropDiskChunk ( int iChunk, int* pAffected=nullptr ); + void DropDiskChunks ( IntVec_t& dChunks, int* pAffected=nullptr ) REQUIRES ( m_tWorkers.SerialChunkAccess() ); bool CompressOneChunk ( int iChunk, int* pAffected = nullptr ); bool DedupOneChunk ( int iChunk, int* pAffected = nullptr ); bool MergeTwoChunks ( int iA, int iB, int* pAffected, StringBuilder_c* sLog = nullptr ); @@ -9806,6 +9807,32 @@ void RtIndex_c::DropDiskChunk ( int iChunkID, int* pAffected ) ++*pAffected; } +void RtIndex_c::DropDiskChunks ( IntVec_t& dChunks, int* pAffected ) REQUIRES ( m_tWorkers.SerialChunkAccess() ) +{ + if ( dChunks.IsEmpty() ) + return; + + dChunks.Uniq(); + + RTDLOG << "Optimize: drop chunks (" << dChunks.GetLength() << ")"; + TRACE_SCHED ( "rt", "RtIndex_c::DropDiskChunks" ); + sphLogDebug( "rt optimize: table %s: drop disk chunks (%d)", GetName(), dChunks.GetLength() ); + + { + auto tChangeset = RtWriter(); + tChangeset.InitDiskChunks ( RtWriter_c::empty ); + auto pChunks = m_tRtChunks.RtData().m_pChunks; + for ( auto& pChunk : *pChunks ) + if ( dChunks.BinarySearch ( pChunk->Cidx().m_iChunk ) ) + pChunk->m_bFinallyUnlink = true; + else + tChangeset.m_pNewDiskChunks->Add ( pChunk ); + } + SaveMeta(); + if ( pAffected ) + *pAffected+=dChunks.GetLength(); +} + // perform merge, preload result, rename to final chunk and return preallocated result scheduled to dispose ConstDiskChunkRefPtr_t RtIndex_c::ChangeDiskChunk ( const char* szParentAction, const ConstDiskChunkRefPtr_t& pChunk, CSphIndexProgress& tProgress, VecTraits_T dFilters ) { @@ -10719,41 +10746,52 @@ int RtIndex_c::ProgressiveOptimize ( int iCutoff ) CSphVector dChosenChunks; dChosenChunks.Reserve ( iJobSize ); - auto dSmallest = GetSmallestChunksByID ( *pChunks ); - if ( dSmallest.IsEmpty() ) - break; - - ARRAY_FOREACH ( i, dSmallest ) - if ( !dSmallest[i].m_iSize ) + CSphVector dSmallest; + dSmallest.Reserve ( pChunks->GetLength() ); { - RTDLOG << "Optimize: drop chunk " << dSmallest[i].m_iId; - DropDiskChunk ( dSmallest[i].m_iId, &iAffected ); - dSmallest.RemoveFast ( i-- ); - } + ScopedScheduler_c tSerialFiber ( m_tWorkers.SerialChunkAccess() ); + dSmallest = GetSmallestChunksByID ( *pChunks ); + if ( dSmallest.IsEmpty() ) + break; - // need to resort because of RemoveFast() above - dSmallest.Sort ( Lesser ( [] ( const auto& a, const auto& b ) { return a.m_iSize < b.m_iSize; } ) ); + IntVec_t dEmptyChunks; + ARRAY_FOREACH ( i, dSmallest ) + if ( !dSmallest[i].m_iSize ) + { + dEmptyChunks.Add (dSmallest[i].m_iId); + dSmallest.RemoveFast ( i-- ); + } - if (dSmallest.GetLength()>iJobSize) - dSmallest.Resize ( iJobSize ); + // need to resort because of RemoveFast() above + dSmallest.Sort ( Lesser ( [] ( const auto& a, const auto& b ) { return a.m_iSize < b.m_iSize; } ) ); - // we need to make sure that A is the oldest one - // indexes go from oldest to newest so A must-go before B (A is always older than B) - // this is not required by bitmap killlists, but by some other stuff (like ALTER RECONFIGURE) - dSmallest.Sort ( Lesser ( [] ( const auto& a, const auto& b ) { return a.m_iId < b.m_iId; } ) ); + if (dSmallest.GetLength()>iJobSize) + dSmallest.Resize ( iJobSize ); - for ( const auto& tNext : dSmallest ) { - auto pChunk = m_tRtChunks.DiskChunkByID ( tNext.m_iId ); - if ( !pChunk ) - { - bWork = false; - break; + // we need to make sure that A is the oldest one + // indexes go from oldest to newest so A must-go before B (A is always older than B) + // this is not required by bitmap killlists, but by some other stuff (like ALTER RECONFIGURE) + dSmallest.Sort ( Lesser ( [] ( const auto& a, const auto& b ) { return a.m_iId < b.m_iId; } ) ); + + for ( const auto& tNext : dSmallest ) { + auto pChunk = m_tRtChunks.DiskChunkByID ( tNext.m_iId ); + if ( !pChunk ) + { + bWork = false; + break; + } + dChosenChunks.Add ( pChunk ); } - dChosenChunks.Add ( pChunk ); - } - if ( !bWork || dChosenChunks.GetLength()<2 ) - break; + if ( !bWork || dChosenChunks.GetLength()<2 ) + break; + + // mark them 'optimizing' from serial worker, so no concurrency with another optimizing jobs possible. + for ( const auto & pChunk : dChosenChunks ) + pChunk->m_bOptimizing.store ( true, std::memory_order_relaxed ); + + DropDiskChunks ( dEmptyChunks, &iAffected ); + } // serial fiber scope RTDLOG << "Optimize: merge chunks " << dChosenChunks.GetLength(); From 31dc8eabff4863f26454f85772b476cb09acee96 Mon Sep 17 00:00:00 2001 From: "Aleksey N. Vinogradov" Date: Tue, 17 Mar 2026 20:07:28 +0700 Subject: [PATCH 13/14] implement parallel merge --- src/sphinxrt.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/sphinxrt.cpp b/src/sphinxrt.cpp index 03e7077075..c37774fe8d 100644 --- a/src/sphinxrt.cpp +++ b/src/sphinxrt.cpp @@ -10680,7 +10680,8 @@ void RtIndex_c::Optimize ( OptimizeTask_t tTask ) RTDLOG << "Optimize checked with " << tTask; - if ( OptimizesRunning() > 0 ) + const int iParallelMerges = Max ( 1, ParallelChunkMergesLimit() ); + if ( OptimizesRunning() >= iParallelMerges ) { RTDLOG << "Escape optimize as " << OptimizesRunning() << " tasks is already running"; sphLogDebug ( "Escape optimize as %d tasks is already running", OptimizesRunning() ); From bebae5fa69b948e95dee74d012f0599758d1372f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 17 Mar 2026 16:03:20 +0000 Subject: [PATCH 14/14] docs: Auto-translate documentation changes by klirichek --- .translation-cache/References.md.json | 20 ++- .../Server_settings/Common.md.json | 18 ++- .../Server_settings/Searchd.md.json | 150 +++++++++++++++++- manual/chinese/References.md | 2 + .../Compacting_a_table.md | 1 - manual/chinese/Server_settings/Common.md | 2 +- manual/chinese/Server_settings/Searchd.md | 50 +++++- manual/russian/References.md | 2 + .../Compacting_a_table.md | 1 - manual/russian/Server_settings/Common.md | 2 +- manual/russian/Server_settings/Searchd.md | 50 +++++- 11 files changed, 279 insertions(+), 19 deletions(-) diff --git a/.translation-cache/References.md.json b/.translation-cache/References.md.json index 4c6c1af03b..538e0a0c45 100644 --- a/.translation-cache/References.md.json +++ b/.translation-cache/References.md.json @@ -180,11 +180,11 @@ "updated_at": 1767095120 }, "__meta": { - "source_text": "# References\n\n### SQL commands\n##### Schema management\n* [CREATE TABLE](Creating_a_table/Local_tables/Real-time_table.md#CREATE-TABLE-command:) - Creates new table\n* [CREATE TABLE LIKE](Creating_a_table/Local_tables/Real-time_table.md#CREATE-TABLE-LIKE:) - Creates table using another one as a template\n* [CREATE TABLE LIKE ... WITH DATA](Creating_a_table/Local_tables/Real-time_table.md#CREATE-TABLE-LIKE:) - Copies a table\n* [CREATE SOURCE](Integration/Kafka.md#Source) - Create Kafka consumer source\n* [CREATE MATERIALIZED VIEW](Integration/Kafka.md#Materialized-view) - Data transformation from Kafka messages\n* [CREATE MV](Integration/Kafka.md#Materialized-view) - The same as previous\n* [DESCRIBE](Listing_tables.md#DESCRIBE) - Prints out table's field list and their types\n* [ALTER TABLE](Updating_table_schema_and_settings.md) - Changes table schema / settings\n* [ALTER TABLE REBUILD SECONDARY](Updating_table_schema_and_settings.md#Rebuilding-a-secondary-index) - Updates/recovers secondary indexes\n* [ALTER TABLE type='distributed'](Updating_table_schema_and_settings.md#Changing-a-distributed-table) - Updates/recovers secondary indexes\n* [ALTER TABLE RENAME](Updating_table_schema_and_settings.md#Renaming-a-real-time-table)\n* [ALTER MATERIALIZED VIEW {name} suspended=1](Integration/Kafka.md#Altering-materialized-views) - Suspend or resume consuming from the Kafka source\n* [DROP TABLE IF EXISTS](Deleting_a_table.md#Deleting-a-table) - Deletes a table (if it exists)\n* [SHOW TABLES](Listing_tables.md#DESCRIBE) - Shows tables list\n* [SHOW SOURCES](Integration/Kafka.md#Listing) - Shows list of Kafka sources\n* [SHOW MATERIALIZED VIEWS](Integration/Kafka.md#Listing) - Shows list of materialized views\n* [SHOW MVS](Integration/Kafka.md#Listing) - Alias of previous command\n* [SHOW CREATE TABLE](Listing_tables.md#DESCRIBE) - Shows SQL command how to create the table\n* [SHOW TABLE INDEXES](Node_info_and_management/Table_settings_and_status/SHOW_TABLE_INDEXES.md) - Displays information about the available secondary indexes for the table\n* [SHOW TABLE STATUS](Node_info_and_management/Table_settings_and_status/SHOW_TABLE_STATUS.md) - Shows information about current table status\n* [SHOW TABLE SETTINGS](Node_info_and_management/Table_settings_and_status/SHOW_TABLE_SETTINGS.md) - Shows table settings\n* [SHOW LOCKS](Securing_and_compacting_a_table/Freezing_and_locking_a_table.md#SHOW-LOCKS) - Shows information about frozen tables\n\n##### Data management\n* [INSERT](Data_creation_and_modification/Adding_documents_to_a_table/Adding_documents_to_a_real-time_table.md) - Adds new documents\n* [REPLACE](Data_creation_and_modification/Updating_documents/REPLACE.md) - Replaces existing documents with new ones\n* [REPLACE .. SET](Data_creation_and_modification/Updating_documents/REPLACE.md?client=REPLACE+SET) - Replaces one or multiple fields in a table\n* [UPDATE](Data_creation_and_modification/Updating_documents/UPDATE.md) - Does in-place update in documents\n* [DELETE](Data_creation_and_modification/Deleting_documents.md) - Deletes documents\n* [TRUNCATE TABLE](Emptying_a_table.md) - Deletes all documents from table\n\n##### Backup\n* [BACKUP](Securing_and_compacting_a_table/Backup_and_restore.md#BACKUP-SQL-command-reference) - Backs up your tables\n\n##### SELECT\n* [SELECT](Searching/Full_text_matching/Basic_usage.md#SQL) - Searches\n * [WHERE](Searching/Filters.md#Filters) - Filters\n * [GROUP BY](Searching/Grouping.md) - Groups search results\n * [GROUP BY ORDER](Searching/Grouping.md) - Orders groups\n * [GROUP BY HAVING](Searching/Grouping.md) - Filters groups\n * [OPTION](Searching/Options.md#OPTION) - Query Options\n * [FACET](Searching/Faceted_search.md) - Faceted search\n * [SUB-SELECTS](Searching/Sub-selects.md) - About using SELECT sub-queries\n * [JOIN](Searching/Joining.md) - Joining tables in SELECT\n* [EXPLAIN QUERY](Searching/Full_text_matching/Profiling.md#Profiling-without-running-a-query) - Shows query execution plan without running the query itself\n* [SHOW META](Node_info_and_management/SHOW_META.md) - Shows extended information about executed query\n* [SHOW PROFILE](Node_info_and_management/Profiling/Query_profile.md) - Shows profiling information about executed query\n* [SHOW PLAN](Searching/Full_text_matching/Profiling.md#Profiling-the-query-tree-in-SQL) - Shows query execution plan after the query was executed\n* [SHOW WARNINGS](Node_info_and_management/SHOW_WARNINGS.md) - Shows warnings from the latest query\n\n##### Flushing misc things\n* [FLUSH ATTRIBUTES](Securing_and_compacting_a_table/Flushing_attributes.md) - Forces flushing updated attributes to disk\n* [FLUSH HOSTNAMES](Securing_and_compacting_a_table/Flushing_hostnames.md) - Renews IPs associates to agent host names\n* [FLUSH LOGS](Logging/Rotating_query_and_server_logs.md) - Initiates reopen of searchd log and query log files (similar to USR1)\n\n##### Real-time table optimization\n* [FLUSH RAMCHUNK](Securing_and_compacting_a_table/Flushing_RAM_chunk_to_a_new_disk_chunk.md#FLUSH-RAMCHUNK) - Force creating a new disk chunk\n* [FLUSH TABLE](Securing_and_compacting_a_table/Flushing_RAM_chunk_to_disk.md#FLUSH-TABLE) - Flushes real-time table RAM chunk to disk\n* [OPTIMIZE TABLE](Securing_and_compacting_a_table/Compacting_a_table.md#OPTIMIZE-TABLE) - Enqueues real-time table for optimization\n\n##### Importing to a real-time table\n* [ATTACH TABLE](Data_creation_and_modification/Adding_data_from_external_storages/Adding_data_to_tables/Attaching_one_table_to_another.md) - Moves data from a plain table to a real-time table\n* [IMPORT TABLE](Data_creation_and_modification/Adding_data_from_external_storages/Adding_data_to_tables/Importing_table.md) - Imports previously created RT or PQ table into a server running in the RT mode\n\n##### Replication\n* [JOIN CLUSTER](Creating_a_cluster/Setting_up_replication/Joining_a_replication_cluster.md) - Joins a replication cluster\n* [ALTER CLUSTER](Creating_a_cluster/Setting_up_replication/Managing_replication_nodes.md) - Adds/deletes a table to a replication cluster\n* [SET CLUSTER](Creating_a_cluster/Setting_up_replication/Setting_up_replication.md#Cluster-parameters) - Changes replication cluster settings\n* [DELETE CLUSTER](Creating_a_cluster/Setting_up_replication/Deleting_a_replication_cluster.md) - Deletes a replication cluster\n\n##### Plain table rotate\n* [RELOAD TABLE](Data_creation_and_modification/Adding_data_from_external_storages/Rotating_a_table.md#RELOAD-TABLE) - Rotates a plain table\n* [RELOAD TABLES](Data_creation_and_modification/Adding_data_from_external_storages/Rotating_a_table.md#RELOAD-TABLE) - Rotates all plain tables\n\n##### Transactions\n* [BEGIN](Data_creation_and_modification/Transactions.md#BEGIN,-COMMIT,-and-ROLLBACK) - Begins a transaction\n* [COMMIT](Data_creation_and_modification/Transactions.md#BEGIN,-COMMIT,-and-ROLLBACK) - Finishes a transaction\n* [ROLLBACK](Data_creation_and_modification/Transactions.md#BEGIN,-COMMIT,-and-ROLLBACK) - Rolls back a transaction\n\n##### CALL\n* [CALL SUGGEST, CALL QSUGGEST](Searching/Spell_correction.md#CALL-QSUGGEST,-CALL-SUGGEST) - Suggests spell-corrected words\n* [CALL SNIPPETS](Searching/Highlighting.md) - Builds a highlighted results snippet from provided data and query\n* [CALL PQ](Searching/Percolate_query.md) - Runs a percolate query\n* [CALL KEYWORDS](Searching/Autocomplete.md#CALL-KEYWORDS) - Used to check how keywords are tokenized. Also allows to retrieve tokenized forms of provided keywords\n* [CALL AUTOCOMPLETE](Searching/Autocomplete.md#CALL-AUTOCOMPLETE) - Autocompletes your search query\n\n##### Plugins\n* [CREATE FUNCTION](Extensions/UDFs_and_Plugins/UDF/Creating_a_function.md) - Installs a user-defined function (UDF)\n* [DROP FUNCTION](Extensions/UDFs_and_Plugins/UDF/Deleting_a_function.md) - Drops a user-defined function (UDF)\n* [CREATE PLUGIN](Extensions/UDFs_and_Plugins/Plugins/Creating_a_plugin.md) - Installs a plugin\n* [CREATE BUDDY PLUGIN](Extensions/UDFs_and_Plugins/Plugins/Creating_a_plugin.md#CREATE-BUDDY-PLUGIN) - Installs a Buddy plugin\n* [DROP PLUGIN](Extensions/UDFs_and_Plugins/Plugins/Deleting_a_plugin.md#DELETE-PLUGIN) - Drops a plugin\n* [DROP BUDDY PLUGIN](Extensions/UDFs_and_Plugins/Plugins/Deleting_a_plugin.md#DELETE-BUDDY-PLUGIN) - Drops a Buddy plugin\n* [RELOAD PLUGINS](Extensions/UDFs_and_Plugins/Plugins/Reloading_plugins.md) - Reloads all plugins from a given library\n* [ENABLE BUDDY PLUGIN](Extensions/UDFs_and_Plugins/Plugins/Enabling_and_disabling_buddy_plugins.md#ENABLE-BUDDY-PLUGIN) - Reactivates a previously disabled Buddy plugin\n* [DISABLE BUDDY PLUGIN](Extensions/UDFs_and_Plugins/Plugins/Enabling_and_disabling_buddy_plugins.md#DISABLE-BUDDY-PLUGIN) - Deactivates an active Buddy plugin\n\n##### Server status\n* [SHOW STATUS](Node_info_and_management/Node_status.md#SHOW-STATUS) - Displays a number of useful performance counters\n* [SHOW THREADS](Node_info_and_management/SHOW_THREADS.md) - Lists all currently active client threads\n* [SHOW VARIABLES](Node_info_and_management/SHOW_VARIABLES.md) - Lists server-wide variables and their values\n* [SHOW VERSION](Node_info_and_management/SHOW_VERSION.md#SHOW-VERSION) - Provides detailed version information of various components of the instance.\n\n### HTTP endpoints\n* [/sql](Connecting_to_the_server/HTTP.md#SQL-over-HTTP) - Execute an SQL statement over HTTP JSON\n* [/cli](Connecting_to_the_server/HTTP.md#/cli) - Provides an HTTP command line interface\n* [/insert](Data_creation_and_modification/Adding_documents_to_a_table/Adding_documents_to_a_real-time_table.md) - Inserts a document into a real-time table\n* [/pq/tbl_name/doc](Data_creation_and_modification/Adding_documents_to_a_table/Adding_rules_to_a_percolate_table.md#Adding-rules-to-a-percolate-table) - Adds a PQ rule to a percolate table\n* [/update](Data_creation_and_modification/Updating_documents/UPDATE.md#Updates-via-HTTP-JSON) - Updates a document in a real-time table\n* [/replace](Data_creation_and_modification/Updating_documents/REPLACE.md) - Replaces an existing document in a real-time table or inserts it if it doesn't exist\n* [/pq/tbl_name/doc/N?refresh=1](Data_creation_and_modification/Adding_documents_to_a_table/Adding_rules_to_a_percolate_table.md#Adding-rules-to-a-percolate-table) - Replaces a PQ rule in a percolate table\n* [/delete](Data_creation_and_modification/Deleting_documents.md) - Removes a document from a table\n* [/bulk](Data_creation_and_modification/Updating_documents/UPDATE.md#Bulk-updates) - Executes multiple insert, update, or delete operations in a single call. Learn more about bulk inserts [here](Data_creation_and_modification/Adding_documents_to_a_table/Adding_documents_to_a_real-time_table.md).\n* [/search](Searching/Full_text_matching/Basic_usage.md#HTTP-JSON) - Performs a search\n* [/search -> knn](Searching/KNN.md) - Performs a KNN vector search\n* [/pq/tbl_name/search](Searching/Percolate_query.md) - Performs a reverse search in a percolate table\n* [/tbl_name/_mapping](Creating_a_table/Local_tables/Real-time_table.md#_mapping-API:) - Creates a table schema in the Elasticsearch style\n\n### Common things\n* [field name syntax](Creating_a_table/Data_types.md#Field-name-syntax)\n* [data types](Creating_a_table/Data_types.md)\n* [engine](Creating_a_table/Data_types.md)\n* [plain mode](Read_this_first.md#Real-time-mode-vs-plain-mode)\n* [real-time mode](Read_this_first.md#Real-time-mode-vs-plain-mode)\n\n##### Common table settings\n* [access_plain_attrs](Server_settings/Searchd.md#access_plain_attrs)\n* [access_blob_attrs](Server_settings/Searchd.md#access_blob_attrs)\n* [access_doclists](Server_settings/Searchd.md#access_doclists)\n* [access_hitlists](Server_settings/Searchd.md#access_hitlists)\n* [access_dict](Server_settings/Searchd.md#access_dict)\n* [attr_update_reserve](Data_creation_and_modification/Updating_documents/UPDATE.md#attr_update_reserve)\n* [bigram_delimiter](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#bigram_delimiter)\n* [bigram_freq_words](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#bigram_freq_words)\n* [bigram_index](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#bigram_index)\n* [blend_chars](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#blend_chars)\n* [blend_mode](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#blend_mode)\n* [charset_table](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#charset_table)\n* [dict](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#dict)\n* [docstore_block_size](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [docstore_compression](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [docstore_compression_level](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [embedded_limit](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#embedded_limit)\n* [exceptions](Creating_a_table/NLP_and_tokenization/Exceptions.md#exceptions)\n* [exceptions_list](Creating_a_table/NLP_and_tokenization/Exceptions.md#exceptions_list)\n* [expand_keywords](Searching/Options.md#expand_keywords)\n* [global_idf](Searching/Options.md#global_idf)\n* [hitless_words](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#hitless_words)\n* [hitless_words_list](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#hitless_words_list)\n* [html_index_attrs](Creating_a_table/NLP_and_tokenization/Advanced_HTML_tokenization.md#html_index_attrs)\n* [html_remove_elements](Creating_a_table/NLP_and_tokenization/Advanced_HTML_tokenization.md#html_remove_elements)\n* [html_strip](Creating_a_table/NLP_and_tokenization/Advanced_HTML_tokenization.md#html_strip)\n* [ignore_chars](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#ignore_chars)\n* [index_exact_words](Creating_a_table/NLP_and_tokenization/Morphology.md#index_exact_words)\n* [index_field_lengths](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#index_field_lengths)\n* [index_sp](Creating_a_table/NLP_and_tokenization/Advanced_HTML_tokenization.md#index_sp)\n* [index_token_filter](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#index_token_filter)\n* [index_zones](Creating_a_table/NLP_and_tokenization/Advanced_HTML_tokenization.md#index_zones)\n* [infix_fields](Creating_a_table/NLP_and_tokenization/Wildcard_searching_settings.md#infix_fields)\n* [inplace_enable](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [inplace_hit_gap](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [inplace_reloc_factor](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [inplace_write_factor](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [jieba_hmm](Creating_a_table/NLP_and_tokenization/Morphology.md#jieba_hmm)\n* [jieba_mode](Creating_a_table/NLP_and_tokenization/Morphology.md#jieba_mode)\n* [jieba_user_dict_path](Creating_a_table/NLP_and_tokenization/Morphology.md#jieba_user_dict_path)\n* [killlist_target](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [max_substring_len](Creating_a_table/NLP_and_tokenization/Wildcard_searching_settings.md#max_substring_len)\n* [min_infix_len](Creating_a_table/NLP_and_tokenization/Wildcard_searching_settings.md#min_infix_len)\n* [min_prefix_len](Creating_a_table/NLP_and_tokenization/Wildcard_searching_settings.md#min_prefix_len)\n* [min_stemming_len](Creating_a_table/NLP_and_tokenization/Morphology.md#min_stemming_len)\n* [min_word_len](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#min_word_len)\n* [morphology](Searching/Options.md#morphology)\n* [morphology_skip_fields](Creating_a_table/NLP_and_tokenization/Morphology.md#morphology_skip_fields)\n* [ngram_chars](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#ngram_chars)\n* [ngram_len](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#ngram_len)\n* [overshort_step](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#overshort_step)\n* [path](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [phrase_boundary](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#phrase_boundary)\n* [phrase_boundary_step](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#phrase_boundary_step)\n* [prefix_fields](Creating_a_table/NLP_and_tokenization/Wildcard_searching_settings.md#prefix_fields)\n* [preopen](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [read_buffer_docs](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [read_buffer_hits](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [regexp_filter](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#regexp_filter)\n* [stopwords](Creating_a_table/NLP_and_tokenization/Ignoring_stop-words.md#stopwords)\n* [stopwords_list](Creating_a_table/NLP_and_tokenization/Ignoring_stop-words.md#stopwords_list)\n* [stopword_step](Creating_a_table/NLP_and_tokenization/Ignoring_stop-words.md#stopword_step)\n* [stopwords_unstemmed](Creating_a_table/NLP_and_tokenization/Ignoring_stop-words.md#stopwords_unstemmed)\n* [type](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [wordforms](Creating_a_table/NLP_and_tokenization/Wordforms.md#wordforms)\n* [wordforms_list](Creating_a_table/NLP_and_tokenization/Wordforms.md#wordforms_list)\n\n##### Plain table settings\n* [json_secondary_indexes](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#json_secondary_indexes)\n* [source](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [stored_fields](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [stored_only_fields](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [columnar_attrs](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n\n##### Distributed table settings\n* [local](Creating_a_table/Creating_a_distributed_table/Creating_a_local_distributed_table.md)\n* [agent](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent)\n* [agent_connect_timeout](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent)\n* [agent_blackhole](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent)\n* [agent_persistent](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent)\n* [agent_query_timeout](Searching/Options.md#agent_query_timeout)\n* [agent_retry_count](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent)\n* [ha_strategy](Creating_a_cluster/Remote_nodes/Load_balancing.md#ha_strategy)\n* [mirror_retry_count](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent)\n\n##### RT table settings\n* [rt_attr_bigint](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [rt_attr_bool](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [rt_attr_float](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [rt_attr_float_vector](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [rt_attr_json](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [rt_attr_multi_64](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [rt_attr_multi](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [rt_attr_string](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [rt_attr_timestamp](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [rt_attr_uint](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [rt_field](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [rt_mem_limit](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [diskchunk_flush_write_timeout](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [diskchunk_flush_search_timeout](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n\n\n## Full-text search operators\n* [OR](Searching/Full_text_matching/Operators.md#OR-operator)\n* [MAYBE](Searching/Full_text_matching/Operators.md#MAYBE-operator)\n* [NOT](Searching/Full_text_matching/Operators.md#Negation-operator) - NOT operator\n* [@field](Searching/Full_text_matching/Operators.md#Field-search-operator) - field search operator\n* [@field%5BN%5D](Searching/Full_text_matching/Operators.md#Field-search-operator) - field position limit modifier\n* [@(field1,field2,...)](Searching/Full_text_matching/Operators.md#Field-search-operator) - multi-field search operator\n* [@!field](Searching/Full_text_matching/Operators.md#Field-search-operator) - ignore field search operator\n* [@!(field1,field2,...)](Searching/Full_text_matching/Operators.md#Field-search-operator) - ignore multi-field search operator\n* [@*](Searching/Full_text_matching/Operators.md#Field-search-operator) - all-field search operator\n* [\"word1 word2 ... \"](Searching/Full_text_matching/Operators.md#Phrase-search-operator) - phrase search operator\n* [\"word1 word2 ... \"~N](Searching/Full_text_matching/Operators.md#Proximity-search-operator) - proximity search operator\n* [\"word1 word2 ... \"/N](Searching/Full_text_matching/Operators.md#Quorum-matching-operator) - quorum matching operator\n* [word1 << word2 << word3](Searching/Full_text_matching/Operators.md#Strict-order-operator) - strict order operator\n* [=word1](Searching/Full_text_matching/Operators.md#Exact-form-modifier) - exact form modifier\n* [^word1](Searching/Full_text_matching/Operators.md#Field-start-and-field-end-modifier) - field-start modifier\n* [word2$](Searching/Full_text_matching/Operators.md#Field-start-and-field-end-modifier) - field-end modifier\n* [word^N](Searching/Full_text_matching/Operators.md#IDF-boost-modifier) - keyword IDF boost modifier\n* [word1 NEAR/N word2](Searching/Full_text_matching/Operators.md#NEAR-operator) - NEAR, generalized proximity operator\n* [word1 NOTNEAR/N word2](Searching/Full_text_matching/Operators.md#NOTNEAR-operator) - NOTNEAR, negative assertion operator\n* [word1 PARAGRAPH word2 PARAGRAPH \"word3 word4\"](Searching/Full_text_matching/Operators.md#SENTENCE-and-PARAGRAPH-operators) - PARAGRAPH operator\n* [word1 SENTENCE word2 SENTENCE \"word3 word4\"](Searching/Full_text_matching/Operators.md#SENTENCE-and-PARAGRAPH-operators) - SENTENCE operator\n* [ZONE:(h3,h4)](Searching/Full_text_matching/Operators.md#ZONE-limit-operator) - ZONE limit operator\n* [ZONESPAN:(h2)](Searching/Full_text_matching/Operators.md#ZONESPAN-limit-operator) - ZONESPAN limit operator\n* [@@relaxed](Searching/Full_text_matching/Operators.md#Field-search-operator) - suppresses errors about missing fields\n* [t?st](Searching/Full_text_matching/Operators.md#Wildcard-operators) - wildcard operators\n* [REGEX(/pattern/)](Searching/Full_text_matching/Operators.md#REGEX-operator) - REGEX operator\n\n## Functions\n##### Mathematical\n* [ABS()](Functions/Mathematical_functions.md#ABS%28%29) - Returns absolute value\n* [ATAN2()](Functions/Mathematical_functions.md#ATAN2%28%29) - Returns arctangent function of two arguments\n* [BITDOT()](Functions/Mathematical_functions.md#BITDOT%28%29) - Returns sum of products of each bit of a mask multiplied with its weight\n* [CEIL()](Functions/Mathematical_functions.md#CEIL%28%29) - Returns smallest integer value greater or equal to the argument\n* [COS()](Functions/Mathematical_functions.md#COS%28%29) - Returns cosine of the argument\n* [CRC32()](Functions/Mathematical_functions.md#CRC32%28%29) - Returns CRC32 value of the argument\n* [EXP()](Functions/Mathematical_functions.md#EXP%28%29) - Returns exponent of the argument\n* [FIBONACCI()](Functions/Mathematical_functions.md#FIBONACCI%28%29) - Returns the N-th Fibonacci number, where N is the integer argument\n* [FLOOR()](Functions/Mathematical_functions.md#FLOOR%28%29) - Returns the largest integer value lesser or equal to the argument\n* [GREATEST()](Functions/Mathematical_functions.md#GREATEST%28%29) - Takes JSON/MVA array as the argument and returns the greatest value in that array\n* [IDIV()](Functions/Mathematical_functions.md#IDIV%28%29) - Returns result of an integer division of the first argument by the second argument\n* [LEAST()](Functions/Mathematical_functions.md#LEAST%28%29) - Takes JSON/MVA array as the argument, and returns the least value in that array\n* [LN()](Functions/Mathematical_functions.md#LN%28%29) - Returns natural logarithm of the argument\n* [LOG10()](Functions/Mathematical_functions.md#LOG10%28%29) - Returns common logarithm of the argument\n* [LOG2()](Functions/Mathematical_functions.md#LOG2%28%29) - Returns binary logarithm of the argument\n* [MAX()](Functions/Mathematical_functions.md#MAX%28%29) - Returns the larger of two arguments\n* [MIN()](Functions/Mathematical_functions.md#MIN%28%29) - Returns the smaller of two arguments\n* [POW()](Functions/Mathematical_functions.md#POW%28%29) - Returns the first argument raised to the power of the second argument\n* [RAND()](Functions/Mathematical_functions.md#RAND%28%29) - Returns random float between 0 and 1\n* [SIN()](Functions/Mathematical_functions.md#SIN%28%29) - Returns sine of the argument\n* [SQRT()](Functions/Mathematical_functions.md#SQRT%28%29) - Returns square root of the argument\n\n\n##### Searching and ranking\n* [BM25F()](Functions/Searching_and_ranking_functions.md#BM25F%28%29) - Returns precise BM25F formula value\n* [EXIST()](Functions/Searching_and_ranking_functions.md#EXIST%28%29) - Replaces non-existing columns with default values\n* [GROUP_CONCAT()](Searching/Grouping.md#GROUP_CONCAT%28field%29) - Produces a comma-separated list of the attribute values of all documents in the group\n* [HIGHLIGHT()](Searching/Highlighting.md) - Highlights search results\n* [MIN_TOP_SORTVAL()](Functions/Searching_and_ranking_functions.md#MIN_TOP_SORTVAL%28%29) - Returns sort key value of the worst found element in the current top-N matches\n* [MIN_TOP_WEIGHT()](Functions/Searching_and_ranking_functions.md#MIN_TOP_WEIGHT%28%29) - Returns weight of the worst found element in the current top-N matches\n* [PACKEDFACTORS()](Functions/Searching_and_ranking_functions.md#PACKEDFACTORS%28%29) - Outputs weighting factors\n* [REMOVE_REPEATS()](Functions/Searching_and_ranking_functions.md#REMOVE_REPEATS%28%29) - Removes repeated adjusted rows with the same 'column' value\n* [WEIGHT()](Functions/Searching_and_ranking_functions.md#WEIGHT%28%29) - Returns fulltext match score\n* [ZONESPANLIST()](Functions/Searching_and_ranking_functions.md#ZONESPANLIST%28%29) - Returns pairs of matched zone spans\n* [QUERY()](Functions/Searching_and_ranking_functions.md#QUERY%28%29) - Returns current full-text query\n\n##### Type casting\n* [BIGINT()](Functions/Type_casting_functions.md#BIGINT%28%29) - Forcibly promotes the integer argument to 64-bit type\n* [DOUBLE()](Functions/Type_casting_functions.md#DOUBLE%28%29) - Forcibly promotes given argument to floating point type\n* [INTEGER()](Functions/Type_casting_functions.md#INTEGER%28%29) - Forcibly promotes given argument to 64-bit signed type\n* [TO_STRING()](Functions/Type_casting_functions.md#TO_STRING%28%29) - Forcibly promotes the argument to string type\n* [UINT()](Functions/Type_casting_functions.md#UINT%28%29) - Converts the given argument to 32-bit unsigned integer type\n* [UINT64()](Functions/Type_casting_functions.md#UINT64%28%29) - Converts the given argument to 64-bit unsigned integer type\n* [SINT()](Functions/Type_casting_functions.md#SINT%28%29) - Interprets 32-bit unsigned integer as signed 64-bit integer\n\n##### Arrays and conditions\n* [ALL()](Functions/Arrays_and_conditions_functions.md#ALL%28%29) - Returns 1 if condition is true for all elements in the array\n* [ANY()](Functions/Arrays_and_conditions_functions.md#ANY%28%29) - Returns 1 if condition is true for any element in the array\n* [CONTAINS()](Functions/Arrays_and_conditions_functions.md#CONTAINS%28%29) - Checks whether the (x,y) point is within the given polygon\n* [IF()](Functions/Arrays_and_conditions_functions.md#IF%28%29) - Checks whether the 1st argument is equal to 0.0, returns the 2nd argument if it is not zero or the 3rd one when it is\n* [IN()](Functions/Arrays_and_conditions_functions.md#IN%28%29) - Returns 1 if the first argument is equal to any of the other arguments, or 0 otherwise\n* [INDEXOF()](Functions/Arrays_and_conditions_functions.md#INDEXOF%28%29) - Iterates through all elements in the array and returns index of the first matching element\n* [INTERVAL()](Functions/Arrays_and_conditions_functions.md#INTERVAL%28%29) - Returns index of the argument that is less than the first argument\n* [LENGTH()](Functions/Arrays_and_conditions_functions.md#LENGTH%28%29) - Returns number of elements in MVA\n* [REMAP()](Functions/Arrays_and_conditions_functions.md#REMAP%28%29) - Allows to make some exceptions of expression values depending on the condition values\n\n##### Date and time\n* [NOW()](Functions/Date_and_time_functions.md#NOW%28%29) - Returns current timestamp as an INTEGER\n* [CURTIME()](Functions/Date_and_time_functions.md#CURTIME%28%29) - Returns current time in local timezone\n* [CURDATE()](Functions/Date_and_time_functions.md#CURDATE%28%29) - Returns current date in local timezone\n* [UTC_TIME()](Functions/Date_and_time_functions.md#UTC_TIME%28%29) - Returns current time in UTC timezone\n* [UTC_TIMESTAMP()](Functions/Date_and_time_functions.md#UTC_TIMESTAMP%28%29) - Returns current date/time in UTC timezone\n* [SECOND()](Functions/Date_and_time_functions.md#SECOND%28%29) - Returns integer second from the timestamp argument\n* [MINUTE()](Functions/Date_and_time_functions.md#MINUTE%28%29) - Returns integer minute from the timestamp argument\n* [HOUR()](Functions/Date_and_time_functions.md#HOUR%28%29) - Returns integer hour from the timestamp argument\n* [DAY()](Functions/Date_and_time_functions.md#DAY%28%29) - Returns integer day from the timestamp argument\n* [MONTH()](Functions/Date_and_time_functions.md#MONTH%28%29) - Returns integer month from the timestamp argument\n* [QUARTER()](Functions/Date_and_time_functions.md#QUARTER%28%29) - Returns the integer quarter of the year from a timestamp argument\n* [YEAR()](Functions/Date_and_time_functions.md#YEAR%28%29) - Returns integer year from the timestamp argument\n* [DAYNAME()](Functions/Date_and_time_functions.md#DAYNAME%28%29) - Returns the weekday name for a given timestamp argument\n* [MONTHNAME()](Functions/Date_and_time_functions.md#MONTHNAME%28%29) - Returns the name of the month for a given timestamp argument\n* [DAYOFWEEK()](Functions/Date_and_time_functions.md#DAYOFWEEK%28%29) - Returns the integer weekday index for a given timestamp argument\n* [DAYOFYEAR()](Functions/Date_and_time_functions.md#DAYOFYEAR%28%29) - Returns the integer day of the year for a given timestamp argument\n* [YEARWEEK()](Functions/Date_and_time_functions.md#YEARWEEK%28%29) - Returns the integer year and the day code of the first day of current week for a given timestamp argument\n* [YEARMONTH()](Functions/Date_and_time_functions.md#YEARMONTH%28%29) - Returns integer year and month code from the timestamp argument\n* [YEARMONTHDAY()](Functions/Date_and_time_functions.md#YEARMONTHDAY%28%29) - Returns integer year, month and day code from the timestamp argument\n* [TIMEDIFF()](Functions/Date_and_time_functions.md#TIMEDIFF%28%29) - Returns difference between the timstamps\n* [DATEDIFF()](Functions/Date_and_time_functions.md#DATEDIFF%28%29) - Returns the number of days between two given timestamps\n* [DATE()](Functions/Date_and_time_functions.md#DATE%28%29) - Formats the date part from a timestamp argument\n* [TIME()](Functions/Date_and_time_functions.md#TIME%28%29) - Formats the time part from a timestamp argument\n* [DATE_FORMAT()](Functions/Date_and_time_functions.md#DATE_FORMAT%28%29) - Returns a formatted string based on the provided date and format arguments\n\n\n##### Geo-spatial\n* [GEODIST()](Functions/Geo_spatial_functions.md#GEODIST%28%29) - Computes geosphere distance between two given points\n* [GEOPOLY2D()](Functions/Geo_spatial_functions.md#GEOPOLY2D%28%29) - Creates a polygon that takes in account the Earth's curvature\n* [POLY2D()](Functions/Geo_spatial_functions.md#POLY2D%28%29) - Creates a simple polygon in plain space\n\n##### String\n* [CONCAT()](Functions/String_functions.md#CONCAT%28%29) - Concatenates two or more strings\n* [REGEX()](Functions/String_functions.md#REGEX%28%29) - Returns 1 if regular expression matched to string of attribute and 0 otherwise\n* [SNIPPET()](Functions/String_functions.md#SNIPPET%28%29) - Highlights search results\n* [SUBSTRING_INDEX()](Functions/String_functions.md#SUBSTRING_INDEX%28%29) - Returns a substring of the string before the specified number of delimiter occurs\n\n##### Other\n* [CONNECTION_ID()](Functions/Other_functions.md#CONNECTION_ID%28%29) - Returns the current connection ID\n* [KNN_DIST()](Functions/Other_functions.md#KNN_DIST%28%29) - Returns KNN vector search distance\n* [LAST_INSERT_ID()](Functions/Other_functions.md#LAST_INSERT_ID%28%29) - Returns ids of documents inserted or replaced by last statement in the current session\n* [UUID_SHORT()](Functions/Other_functions.md#UUID_SHORT%28%29) - Returns a \"short\" universal identifier following the same algorithm as for auto-id generation.\n\n## Common settings in configuration file\nTo be put to section `common {}` in configuration file:\n* [lemmatizer_base](Server_settings/Common.md#lemmatizer_base) - Lemmatizer dictionaries base path\n* [progressive_merge](Server_settings/Common.md#progressive_merge) - Defines order of merging disk chunks in a real-time table\n* [json_autoconv_keynames](Server_settings/Common.md#json_autoconv_keynames) - Whether and how to auto-convert key names within JSON attributes\n* [json_autoconv_numbers](Server_settings/Common.md#json_autoconv_numbers) - Automatically detects and converts possible JSON strings that represent numbers into numeric attributes\n* [on_json_attr_error](Server_settings/Common.md#on_json_attr_error) - What to do if JSON format errors are found\n* [plugin_dir](Server_settings/Common.md#plugin_dir) - Location for the dynamic libraries and UDFs\n\n## [Indexer](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments)\n`indexer` is a tool to create [plain tables](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments)\n\n##### Indexer settings in configuration file\nTo be put to section `indexer {}` in configuration file:\n* [lemmatizer_cache](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - Lemmatizer cache size\n* [max_file_field_buffer](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - Maximum file field adaptive buffer size\n* [max_iops](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - Maximum indexation I/O operations per second\n* [max_iosize](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - Maximum allowed I/O operation size\n* [max_xmlpipe2_field](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - Maximum allowed field size for XMLpipe2 source type\n* [mem_limit](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - Indexing RAM usage limit\n* [on_file_field_error](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - How to handle IO errors in file fields\n* [write_buffer](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - Write buffer size\n* [ignore_non_plain](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - To ignore warnings about non-plain tables\n\n##### Indexer start parameters\n```bash\nindexer [OPTIONS] [indexname1 [indexname2 [...]]]\n```\n* [--all](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - Rebuilds all tables from the config\n* [--buildstops](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - Analyzes the table source as if indexing the data, generating a list of indexed terms\n* [--buildfreqs](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - Adds the frequency count to the table for --buildstops\n* [--config, -c](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - Specifies the path to the configuration file\n* [--dump-rows](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - Dumps rows retrieved by SQL source(s) into the specified file\n* [--help](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - Displays all available parameters\n* [--keep-attrs](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - Allows reuse of existing attributes when reindexing\n* [--keep-attrs-names](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - Specifies which attributes to reuse from the existing table\n* [--merge-dst-range](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - Applies the given filter range during merging\n* [--merge-killlists](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - Alters kill list processing when merging tables\n* [--merge](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - Combines two plain tables into one\n* [--nohup](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - Prevents indexer from sending SIGHUP when this option is enabled\n* [--noprogress](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - Hides progress details\n* [--print-queries](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - Outputs SQL queries sent by the indexer to the database\n* [--print-rt](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - Displays data fetched from SQL source(s) as INSERTs into a real-time table\n* [--quiet](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - Suppresses all output\n* [--rotate](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - Initiates table rotation after all tables are built\n* [--sighup-each](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - Triggers rotation of each table after it's built\n* [-v](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - Displays indexer version\n\n## Table Converter for Manticore v2 / Sphinx v2\n`index_converter` is a tool designed to convert tables created with Sphinx/Manticore Search 2.x into the Manticore Search 3.x table format.\n```bash\nindex_converter {--config /path/to/config|--path}\n```\n##### Table converter start parameters\n* [--config, -c](Installation/Migration_from_Sphinx.md#index_converter) - Path to table configuration file\n* [--index](Installation/Migration_from_Sphinx.md#index_converter) - Specifies which table to convert\n* [--path](Installation/Migration_from_Sphinx.md#index_converter) - Sets path containing table(s) instead of the configuration file\n* [--strip-path](Installation/Migration_from_Sphinx.md#index_converter) - Removes path from filenames referenced by table\n* [--large-docid](Installation/Migration_from_Sphinx.md#index_converter) - Allows conversion of documents with ids larger than 2^63\n* [--output-dir](Installation/Migration_from_Sphinx.md#index_converter) - Writes new files in a specified folder\n* [--all](Installation/Migration_from_Sphinx.md#index_converter) - Converts all tables from the configuration file / path\n* [--killlist-target](Installation/Migration_from_Sphinx.md#index_converter) - Sets target tables for applying kill-lists\n\n## [Searchd](Starting_the_server/Manually.md)\n`searchd` is the Manticore server.\n\n##### Searchd settings in a configuration file\nTo be put in the `searchd {}` section of the configuration file:\n * [access_blob_attrs](Server_settings/Searchd.md#access_blob_attrs) - Defines how table's blob attributes file is accessed\n * [access_doclists](Server_settings/Searchd.md#access_doclists) - Defines how table's doclists file is accessed\n * [access_hitlists](Server_settings/Searchd.md#access_hitlists) - Defines how table's hitlists file is accessed\n * [access_plain_attrs](Server_settings/Searchd.md#access_plain_attrs) - Defines how search server accesses table's plain attributes\n * [access_dict](Server_settings/Searchd.md#access_dict) - Defines how table's dictionary file is accessed\n * [agent_connect_timeout](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent_connect_timeout) - Remote agent connection timeout\n * [agent_query_timeout](Searching/Options.md#agent_query_timeout) - Remote agent query timeout\n * [agent_retry_count](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent_connect_timeout) - Specifies the number of times Manticore tries to connect and query remote agents\n * [agent_retry_delay](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent) - Specifies the delay before retrying to query a remote agent in case of failure\n * [attr_flush_period](Data_creation_and_modification/Updating_documents/UPDATE.md#attr_flush_period) - Sets the time period between flushing updated attributes to disk\n * [binlog_flush](Server_settings/Searchd.md#binlog_flush) - Binary log transaction flush/sync mode\n * [binlog_max_log_size](Server_settings/Searchd.md#binlog_max_log_size) - Maximum binary log file size\n * [binlog_common](Logging/Binary_logging.md#Binary-logging-strategies) - Common binary log file for all tables\n * [binlog_filename_digits](Logging/Binary_logging.md#Log-files) - Number of digits in a binlog file name\n * [binlog_flush](Logging/Binary_logging.md#Binary-flushing-strategies) - Binlog flushing strategy\n * [binlog_path](Server_settings/Searchd.md#binlog_path) - Binary log files path\n * [client_timeout](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent) - Maximum time to wait between requests when using persistent connections\n * [collation_libc_locale](Server_settings/Searchd.md#collation_libc_locale) - Server libc locale\n * [collation_server](Server_settings/Searchd.md#collation_server) - Default server collation\n * [data_dir](Server_settings/Searchd.md#data_dir) - Path to data directory where Manticore stores everything ([RT mode](Creating_a_table/Local_tables.md#Online-schema-management-%28RT-mode%29))\n * [diskchunk_flush_write_timeout](Server_settings/Searchd.md#diskchunk_flush_write_timeout) - Timeout for auto-flushing a RAM chunk if there are no writes to it\n * [diskchunk_flush_search_timeout](Server_settings/Searchd.md#diskchunk_flush_search_timeout) - Timeout for preventing auto-flushing a RAM chunk if there are no searches in the table\n * [docstore_cache_size](Server_settings/Searchd.md#docstore_cache_size) - Maximum size of document blocks from document storage held in memory\n * [expansion_limit](Creating_a_table/NLP_and_tokenization/Wildcard_searching_settings.md#expansion_limit) - Maximum number of expanded keywords for a single wildcard\n * [grouping_in_utc](Server_settings/Searchd.md#grouping_in_utc) - Enables using UTC timezone for grouping time fields\n * [ha_period_karma](Server_settings/Searchd.md#ha_period_karma) - Agent mirror statistics window size\n * [ha_ping_interval](Creating_a_cluster/Remote_nodes/Load_balancing.md#ha_ping_interval) - Interval between agent mirror pings\n * [hostname_lookup](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent) - Hostnames renew strategy\n * [jobs_queue_size](Server_settings/Searchd.md#jobs_queue_size) - Defines the maximum number of \"jobs\" allowed in the queue simultaneously\n * [join_batch_size](Searching/Joining.md#Join-batching) - Defines batch size for table joins to balance performance and memory usage\n * [join_cache_size](Searching/Joining.md#Join-caching) - Defines cache size for reusing JOIN query results\n * [kibana_version_string](Server_settings/Searchd.md#kibana_version_string) \u2013 The server version string that's sent in response to Kibana requests\n * [listen](Server_settings/Searchd.md#listen) - Specifies IP address and port or Unix-domain socket path for searchd to listen on\n * [listen_backlog](Server_settings/Searchd.md#listen_backlog) - TCP listen backlog\n * [listen_tfo](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent) - Enables TCP_FASTOPEN flag for all listeners\n * [log](Server_settings/Searchd.md#log) - Path to Manticore server log file\n * [max_batch_queries](Server_settings/Searchd.md#max_batch_queries) - Limits the number of queries per batch\n * [max_connections](Server_settings/Searchd.md#max_connections) - Maximum number of active connections\n * [max_filters](Server_settings/Searchd.md#max_filters) - Maximum allowed per-query filter count\n * [max_filter_values](Server_settings/Searchd.md#max_filter_values) - Maximum allowed per-filter values count\n * [max_open_files](Server_settings/Searchd.md#max_open_files) - Maximum number of files allowed to be opened by server\n * [max_packet_size](Server_settings/Searchd.md#max_packet_size) - Maximum allowed network packet size\n * [mysql_version_string](Server_settings/Searchd.md#mysql_version_string) - Server version string returned via MySQL protocol\n * [net_throttle_accept](Server_settings/Searchd.md#net_throttle_accept) - Defines how many clients are accepted on each iteration of the network loop\n * [net_throttle_action](Server_settings/Searchd.md#net_throttle_action) - Defines how many requests are processed on each iteration of the network loop\n * [net_wait_tm](Server_settings/Searchd.md#net_wait_tm) - Controls busy loop interval of a network thread\n * [net_workers](Server_settings/Searchd.md#net_workers) - Number of network threads\n * [network_timeout](Server_settings/Searchd.md#network_timeout) - Network timeout for client requests\n * [node_address](Server_settings/Searchd.md#node_address) - Specifies network address of the node\n * [persistent_connections_limit](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent) - Maximum number of simultaneous persistent connections to remote persistent agents\n * [pid_file](Server_settings/Searchd.md#pid_file) - Path to Manticore server pid file\n * [preopen_tables](Server_settings/Searchd.md#preopen_tables) - Determines whether to forcibly preopen all tables on startup\n * [pseudo_sharding](Server_settings/Searchd.md#pseudo_sharding) - Enables pseudo-sharding for search queries to plain and real-time tables\n * [qcache_max_bytes](Server_settings/Searchd.md#qcache_max_bytes) - Maximum RAM allocated for cached result sets\n * [qcache_thresh_msec](Server_settings/Searchd.md#qcache_thresh_msec) - Minimum wall time threshold for a query result to be cached\n * [qcache_ttl_sec](Server_settings/Searchd.md#qcache_ttl_sec) - Expiration period for a cached result set\n * [query_log](Server_settings/Searchd.md#query_log) - Path to query log file\n * [query_log_format](Server_settings/Searchd.md#query_log_format) - Query log format\n * [query_log_min_msec](Server_settings/Searchd.md#query_log_min_msec) - Prevents logging too fast queries\n * [query_log_mode](Server_settings/Searchd.md#query_log_mode) - Query log file permissions mode\n * [read_buffer_docs](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#read_buffer_docs) - Per-keyword read buffer size for document lists\n * [read_buffer_hits](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#read_buffer_docs) - Per-keyword read buffer size for hit lists\n * [read_unhinted](Server_settings/Searchd.md#read_unhinted) - Unhinted read size\n * [rt_flush_period](Server_settings/Searchd.md#rt_flush_period) - How often Manticore flushes real-time tables' RAM chunks to disk\n * [rt_merge_iops](Server_settings/Searchd.md#rt_merge_iops) - Maximum number of I/O operations (per second) that real-time chunks merging thread is allowed to do\n * [rt_merge_maxiosize](Server_settings/Searchd.md#rt_merge_maxiosize) - Maximum size of an I/O operation that real-time chunks merging thread is allowed to do\n * [seamless_rotate](Server_settings/Searchd.md#seamless_rotate) - Prevents searchd stalls while rotating tables with huge amounts of data to precache\n * [secondary_indexes](Server_settings/Searchd.md#secondary_indexes) - Enables using secondary indexes for search queries\n * [server_id](Server_settings/Searchd.md#server_id) - Server identifier used as a seed to generate a unique document ID\n * [shutdown_timeout](Server_settings/Searchd.md#shutdown_timeout) - Searchd `--stopwait` timeout\n * [shutdown_token](Server_settings/Searchd.md#shutdown_token) - SHA1 hash of the password required to invoke `shutdown` command from VIP SQL connection\n * [skiplist_cache_size](Server_settings/Searchd.md#skiplist_cache_size) - Maximum size of the in-memory cache for decompressed skiplists\n * [snippets_file_prefix](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent) - Prefix to prepend to the local file names when generating snippets in `load_files` mode\n * [sphinxql_state](Server_settings/Searchd.md#sphinxql_state) - Path to file where the current SQL state will be serialized\n * [sphinxql_timeout](Server_settings/Searchd.md#sphinxql_timeout) - Maximum time to wait between requests from a MySQL client\n * [ssl_ca](Server_settings/Searchd.md#ssl_ca) - Path to SSL Certificate Authority certificate file\n * [ssl_cert](Server_settings/Searchd.md#ssl_cert) - Path to server's SSL certificate\n * [ssl_key](Server_settings/Searchd.md#ssl_key) - Path to SSL certificate key of the server\n * [subtree_docs_cache](Server_settings/Searchd.md#subtree_docs_cache) - Maximum common subtree document cache size\n * [subtree_hits_cache](Server_settings/Searchd.md#subtree_hits_cache) - Maximum common subtree hit cache size, per-query\n * [timezone](Server_settings/Searchd.md#timezone) - Timezone used by date/time-related functions\n * [thread_stack](Server_settings/Searchd.md#thread_stack) - Maximum stack size for a job\n * [unlink_old](Server_settings/Searchd.md#unlink_old) - Whether to unlink .old table copies on successful rotation\n * [watchdog](Server_settings/Searchd.md#watchdog) - Whether to enable or disable Manticore server watchdog\n\n##### Searchd start parameters\n```bash\nsearchd [OPTIONS]\n```\n* [--config, -c](Starting_the_server/Manually.md#searchd-command-line-options) - Specifies the path to the configuration file\n* [--console](Starting_the_server/Manually.md#searchd-command-line-options) - Forces the server to run in console mode\n* [--coredump](Starting_the_server/Manually.md#searchd-command-line-options) - Enables core dump saving upon crash\n* [--cpustats](Starting_the_server/Manually.md#searchd-command-line-options) - Enables CPU time reporting\n* [--delete](Starting_the_server/Manually.md#searchd-command-line-options) - Removes the Manticore service from Microsoft Management Console and other locations where services are registered\n* [--force-preread](Starting_the_server/Manually.md#searchd-command-line-options) - Prevents the server from serving incoming connections until table files are pre-read\n* [--help, -h](Starting_the_server/Manually.md#searchd-command-line-options) - Displays all available parameters\n* [--quiet, -q](Starting_the_server/Manually.md#searchd-command-line-options) - Only print errors on startup\n* [--table (--index)](Starting_the_server/Manually.md#searchd-command-line-options) - Restricts the server to serve only the specified table\n* [--install](Starting_the_server/Manually.md#searchd-command-line-options) - Installs searchd as a service in Microsoft Management Console\n* [--iostats](Starting_the_server/Manually.md#searchd-command-line-options) - Enables input/output reporting\n* [--listen, -l](Starting_the_server/Manually.md#searchd-command-line-options) - Overrides [listen](Server_settings/Searchd.md#listen) from the configuration file\n* [--logdebug, --logdebugv, --logdebugvv](Starting_the_server/Manually.md#searchd-command-line-options) - Enables additional debug output in the server log\n* [--logreplication](Starting_the_server/Manually.md#searchd-command-line-options) - Enables extra replication debug output in the server log\n* [--new-cluster](Starting_the_server/Manually.md#searchd-command-line-options) - Initializes a replication cluster and sets the server as a reference node with [cluster restart](Creating_a_cluster/Setting_up_replication/Restarting_a_cluster.md) protection\n* [--new-cluster-force](Starting_the_server/Manually.md#searchd-command-line-options) - Initializes a replication cluster and sets the server as a reference node, bypassing [cluster restart](Creating_a_cluster/Setting_up_replication/Restarting_a_cluster.md) protection\n* [--nodetach](Starting_the_server/Manually.md#searchd-command-line-options) - Keeps searchd running in the foreground\n* [--ntservice](Starting_the_server/Manually.md#searchd-command-line-options) - Used by Microsoft Management Console to launch searchd as a service on Windows platforms\n* [--pidfile](Starting_the_server/Manually.md#searchd-command-line-options) - Overrides [pid_file](Server_settings/Searchd.md#pid_file) in the configuration file\n* [--port, p](Starting_the_server/Manually.md#searchd-command-line-options) - Specifies the port searchd should listen on, ignoring the port specified in the configuration file\n* [--replay-flags](Starting_the_server/Manually.md#searchd-command-line-options) - Sets additional binary log replay options\n* [--servicename](Starting_the_server/Manually.md#searchd-command-line-options) - Assigns the given name to searchd when installing or deleting the service, as displayed in Microsoft Management Console\n* [--status](Starting_the_server/Manually.md#searchd-command-line-options) - Queries the running search service to return its status\n* [--stop](Starting_the_server/Manually.md#searchd-command-line-options) - Stops the Manticore server\n* [--stopwait](Starting_the_server/Manually.md#searchd-command-line-options) - Stops the Manticore server gracefully\n* [--strip-path](Starting_the_server/Manually.md#searchd-command-line-options) - Removes path names from all file names referenced in the table\n* [-v](Starting_the_server/Manually.md#searchd-command-line-options) - Displays version information\n\n##### Searchd environment variables\n* [MANTICORE_TRACK_DAEMON_SHUTDOWN](Starting_the_server/Manually.md#Environment-variables) - Enables detailed logging during searchd shutdown\n\n## [Indextool](Miscellaneous_tools.md#indextool)\nAssorted table maintenance features helpful for troubleshooting.\n```bash\nindextool [options]\n```\n##### Indextool Start Parameters\nUtilized for dumping various debug information related to the physical table.\n```bash\nindextool [options]\n```\n* [--config, -c](Miscellaneous_tools.md#indextool) - Specifies the path to the configuration file\n* [--quiet, -q](Miscellaneous_tools.md#indextool) - Keeps indextool quiet; no banner output, etc.\n* [--help, -h](Miscellaneous_tools.md#indextool) - Lists all available parameters\n* [-v](Miscellaneous_tools.md#indextool) - Displays version information\n* [Indextool](Miscellaneous_tools.md#indextool) - Verifies the configuration file\n* [--buildidf](Miscellaneous_tools.md#indextool) - Builds an IDF file from one or more dictionary dumps\n* [--build-infixes](Miscellaneous_tools.md#indextool) - Builds infixes for an existing dict=keywords table\n* [--dumpheader](Miscellaneous_tools.md#indextool) - Quickly dumps the provided table header file\n* [--dumpconfig](Miscellaneous_tools.md#indextool) - Dumps table definition from the given table header file in a nearly compliant manticore.conf format\n* [--dumpheader](Miscellaneous_tools.md#indextool) - Dumps table header by table name while looking up the header path in the configuration file\n* [--dumpdict](Miscellaneous_tools.md#indextool) - Dumps the table dictionary\n* [--dumpdocids](Miscellaneous_tools.md#indextool) - Dumps document IDs by table name\n* [--dumphitlist](Miscellaneous_tools.md#indextool) - Dumps all occurrences of the given keyword/id in the specified table\n* [--docextract](Miscellaneous_tools.md#indextool) - Runs table check pass on entire dictionary/docs/hits and collects all words and hits belonging to the requested document\n* [--fold](Miscellaneous_tools.md#indextool) - Tests tokenization based on table settings\n* [--htmlstrip](Miscellaneous_tools.md#indextool) - Filters STDIN using HTML stripper settings for the specified table\n* [--mergeidf](Miscellaneous_tools.md#indextool) - Merges multiple .idf files into a single file\n* [--morph](Miscellaneous_tools.md#indextool) - Applies morphology to the provided STDIN and outputs the result to stdout\n* [--check](Miscellaneous_tools.md#indextool) - Checks table data files for consistency\n* [--check-id-dups](Miscellaneous_tools.md#indextool) - Checks for duplicate IDs\n* [--check-disk-chunk](Miscellaneous_tools.md#indextool) - Checks a single disk chunk of an RT table\n* [--strip-path](Miscellaneous_tools.md#indextool) - Removes path names from all file names referenced in the table\n* [--rotate](Miscellaneous_tools.md#indextool) - Determines whether to check a table waiting for rotation when using `--check`\n* [--apply-killlists](Miscellaneous_tools.md#indextool) - Applies kill-lists for all tables listed in the configuration file\n\n## [Wordbreaker](Miscellaneous_tools.md#wordbreaker)\nSplits compound words into their components.\n```bash\nwordbreaker [-dict path/to/dictionary_file] {split|test|bench}\n```\n\n##### Wordbreaker start parameters\n* [STDIN](Miscellaneous_tools.md#wordbreaker) - Accepts a string to break into parts\n* [-dict](Miscellaneous_tools.md#wordbreaker) - Specifies the dictionary file to use\n* [split|test|bench](Miscellaneous_tools.md#wordbreaker) - Specifies the command\n\n## [Spelldump](Miscellaneous_tools.md#spelldump)\nExtracts the contents of a dictionary file using ispell or MySpell format\n\n```bash\nspelldump [options] [result] [locale-name]\n```\n* [dictionary](Miscellaneous_tools.md#spelldump) - Main dictionary file\n* [affix](Miscellaneous_tools.md#spelldump) - Affix file for the dictionary\n* [result](Miscellaneous_tools.md#spelldump) - Specifies the output destination for the dictionary data\n* [locale-name](Miscellaneous_tools.md#spelldump) - Specifies the locale details to use\n\n## List of reserved keywords\n\nA comprehensive alphabetical list of keywords currently reserved in Manticore SQL syntax (thus, they cannot be used as identifiers).\n\n```\nAND, AS, BY, COLUMNARSCAN, DISTINCT, DIV, DOCIDINDEX, EXPLAIN, FACET, FALSE, FORCE, FROM, IGNORE, IN, INDEXES, INNER, IS, JOIN, KNN, LEFT, LIMIT, MOD, NOT, NO_COLUMNARSCAN, NO_DOCIDINDEX, NO_SECONDARYINDEX, NULL, OFFSET, ON, OR, ORDER, RELOAD, SECONDARYINDEX, SELECT, SYSFILTERS, TRUE\n```\n\n## Documentation for old Manticore versions\n\n* [2.4.1](https://repo.manticoresearch.com/repository/old_docs/manticoresearch-2.4.1.pdf)\n* [2.5.1](https://repo.manticoresearch.com/repository/old_docs/manticoresearch-2.5.1.pdf)\n* [2.6.0](https://repo.manticoresearch.com/repository/old_docs/manticoresearch-2.6.0.pdf)\n* [2.6.1](https://repo.manticoresearch.com/repository/old_docs/manticoresearch-2.6.1.pdf)\n* [2.6.2](https://repo.manticoresearch.com/repository/old_docs/manticoresearch-2.6.2.pdf)\n* [2.6.3](https://repo.manticoresearch.com/repository/old_docs/manticoresearch-2.6.3.pdf)\n* [2.6.4](https://repo.manticoresearch.com/repository/old_docs/manticoresearch-2.6.4.pdf)\n* [2.7.0](https://repo.manticoresearch.com/repository/old_docs/manticoresearch-2.7.0.pdf)\n* [2.7.1](https://repo.manticoresearch.com/repository/old_docs/manticoresearch-2.7.1.pdf)\n* [2.7.2](https://repo.manticoresearch.com/repository/old_docs/manticoresearch-2.7.2.pdf)\n* [2.7.3](https://repo.manticoresearch.com/repository/old_docs/manticoresearch-2.7.3.pdf)\n* [2.7.4](https://repo.manticoresearch.com/repository/old_docs/manticoresearch-2.7.4.pdf)\n* [2.7.5](https://repo.manticoresearch.com/repository/old_docs/manticoresearch-2.7.5.pdf)\n* [2.8.0](https://repo.manticoresearch.com/repository/old_docs/manticoresearch-2.8.0.pdf)\n* [2.8.1](https://repo.manticoresearch.com/repository/old_docs/manticoresearch-2.8.1.pdf)\n* [2.8.2](https://repo.manticoresearch.com/repository/old_docs/manticoresearch-2.8.2.pdf)\n* [3.0.0](https://repo.manticoresearch.com/repository/old_docs/manticoresearch-3.0.0.pdf)\n* [3.0.2](https://repo.manticoresearch.com/repository/old_docs/manticoresearch-3.0.2.pdf)\n* [3.1.0](https://repo.manticoresearch.com/repository/old_docs/manticoresearch-3.1.0.pdf)\n* [3.1.2](https://repo.manticoresearch.com/repository/old_docs/manticoresearch-3.1.2.pdf)\n* [3.2.0](https://repo.manticoresearch.com/repository/old_docs/manticoresearch-3.2.0.pdf)\n* [3.2.2](https://repo.manticoresearch.com/repository/old_docs/manticoresearch-3.2.2.pdf)\n* [3.3.0](https://repo.manticoresearch.com/repository/old_docs/manticoresearch-3.3.0.pdf)\n* [3.4.0](https://repo.manticoresearch.com/repository/old_docs/manticoresearch-3.4.0.pdf)\n* [3.4.2](https://repo.manticoresearch.com/repository/old_docs/manticoresearch-3.4.2.pdf)\n* [3.5.0](https://manual.manticoresearch.com/manticore-3-5-0/)\n* [3.5.2](https://manual.manticoresearch.com/manticore-3-5-2/)\n* [3.5.4](https://manual.manticoresearch.com/manticore-3-5-4/)\n* [4.0.2](https://manual.manticoresearch.com/manticore-4-0-2/)\n* [4.2.0](https://manual.manticoresearch.com/manticore-4-2-0/)\n* [5.0.2](https://manual.manticoresearch.com/manticore-5-0-2/). [Installation page](https://manticoresearch.com/install-5.0.0/)\n* [6.0.0](https://manual.manticoresearch.com/manticore-6-0-0/). [Installation page](https://manticoresearch.com/install-6.0.0/)\n* [6.0.2](https://manual.manticoresearch.com/manticore-6-0-2/). [Installation page](https://manticoresearch.com/install-6.0.2/)\n* [6.0.4](https://manual.manticoresearch.com/manticore-6-0-4/). [Installation page](https://manticoresearch.com/install-6.0.4/)\n* [6.2.0](https://manual.manticoresearch.com/manticore-6-2-0/). [Installation page](https://manticoresearch.com/install-6.2.0/)\n* [6.2.12](https://manual.manticoresearch.com/manticore-6-2-12/). [Installation page](https://manticoresearch.com/install-6.2.12/)\n* [6.3.0](https://manual.manticoresearch.com/manticore-6-3-0/). [Installation page](https://manticoresearch.com/install-6.3.0/)\n* [6.3.2](https://manual.manticoresearch.com/manticore-6-3-2/). [Installation page](https://manticoresearch.com/install-6.3.2/)\n* [6.3.4](https://manual.manticoresearch.com/manticore-6-3-4/). [Installation page](https://manticoresearch.com/install-6.3.4/)\n* [6.3.6](https://manual.manticoresearch.com/manticore-6-3-6/). [Installation page](https://manticoresearch.com/install-6.3.6/)\n* [6.3.8](https://manual.manticoresearch.com/manticore-6-3-8/). [Installation page](https://manticoresearch.com/install-6.3.8/)\n* [7.0.0](https://manual.manticoresearch.com/manticore-7-0-0/). [Installation page](https://manticoresearch.com/install-7.0.0/)\n* [7.4.6](https://manual.manticoresearch.com/manticore-7-4-6/). [Installation page](https://manticoresearch.com/install-7.4.6/)\n* [9.2.14](https://manual.manticoresearch.com/manticore-9-2-14/). [Installation page](https://manticoresearch.com/install-9.2.14/)\n* [9.3.2](https://manual.manticoresearch.com/manticore-9-3-2/). [Installation page](https://manticoresearch.com/install-9.3.2/)\n* [10.1.0](https://manual.manticoresearch.com/manticore-10-1-0/). [Installation page](https://manticoresearch.com/install-10.1.0/)\n* [13.2.3](https://manual.manticoresearch.com/manticore-13-2-3/). [Installation page](https://manticoresearch.com/install-13.2.3/)\n* [13.6.7](https://manual.manticoresearch.com/manticore-13-6-7/). [Installation page](https://manticoresearch.com/install-13.6.7/)\n* [13.11.0](https://manual.manticoresearch.com/manticore-13-11-0/). [Installation page](https://manticoresearch.com/install-13.11.0/)\n* [13.11.1](https://manual.manticoresearch.com/manticore-13-11-1/). [Installation page](https://manticoresearch.com/install-13.11.1/)\n* [13.13.0](https://manual.manticoresearch.com/manticore-13-13-0/). [Installation page](https://manticoresearch.com/install-13.13.0/)\n* [14.1.0](https://manual.manticoresearch.com/manticore-14-1-0/). [Installation page](https://manticoresearch.com/install-14.1.0/)\n* [15.1.0](https://manual.manticoresearch.com/manticore-15-1-0/). [Installation page](https://manticoresearch.com/install-15.1.0/)\n* [17.5.1](https://manual.manticoresearch.com/manticore-17-5-1/). [Installation page](https://manticoresearch.com/install-17.5.1/)\n\n", - "updated_at": 1773337062, - "source_md5": "e5f36eaed135430fca22e50f106aa5b1", - "source_snapshot": "/tmp/translator-source-2kCLOp", - "target_snapshot": "/tmp/translator-target-0rphbr" + "source_text": "# References\n\n### SQL commands\n##### Schema management\n* [CREATE TABLE](Creating_a_table/Local_tables/Real-time_table.md#CREATE-TABLE-command:) - Creates new table\n* [CREATE TABLE LIKE](Creating_a_table/Local_tables/Real-time_table.md#CREATE-TABLE-LIKE:) - Creates table using another one as a template\n* [CREATE TABLE LIKE ... WITH DATA](Creating_a_table/Local_tables/Real-time_table.md#CREATE-TABLE-LIKE:) - Copies a table\n* [CREATE SOURCE](Integration/Kafka.md#Source) - Create Kafka consumer source\n* [CREATE MATERIALIZED VIEW](Integration/Kafka.md#Materialized-view) - Data transformation from Kafka messages\n* [CREATE MV](Integration/Kafka.md#Materialized-view) - The same as previous\n* [DESCRIBE](Listing_tables.md#DESCRIBE) - Prints out table's field list and their types\n* [ALTER TABLE](Updating_table_schema_and_settings.md) - Changes table schema / settings\n* [ALTER TABLE REBUILD SECONDARY](Updating_table_schema_and_settings.md#Rebuilding-a-secondary-index) - Updates/recovers secondary indexes\n* [ALTER TABLE type='distributed'](Updating_table_schema_and_settings.md#Changing-a-distributed-table) - Updates/recovers secondary indexes\n* [ALTER TABLE RENAME](Updating_table_schema_and_settings.md#Renaming-a-real-time-table)\n* [ALTER MATERIALIZED VIEW {name} suspended=1](Integration/Kafka.md#Altering-materialized-views) - Suspend or resume consuming from the Kafka source\n* [DROP TABLE IF EXISTS](Deleting_a_table.md#Deleting-a-table) - Deletes a table (if it exists)\n* [SHOW TABLES](Listing_tables.md#DESCRIBE) - Shows tables list\n* [SHOW SOURCES](Integration/Kafka.md#Listing) - Shows list of Kafka sources\n* [SHOW MATERIALIZED VIEWS](Integration/Kafka.md#Listing) - Shows list of materialized views\n* [SHOW MVS](Integration/Kafka.md#Listing) - Alias of previous command\n* [SHOW CREATE TABLE](Listing_tables.md#DESCRIBE) - Shows SQL command how to create the table\n* [SHOW TABLE INDEXES](Node_info_and_management/Table_settings_and_status/SHOW_TABLE_INDEXES.md) - Displays information about the available secondary indexes for the table\n* [SHOW TABLE STATUS](Node_info_and_management/Table_settings_and_status/SHOW_TABLE_STATUS.md) - Shows information about current table status\n* [SHOW TABLE SETTINGS](Node_info_and_management/Table_settings_and_status/SHOW_TABLE_SETTINGS.md) - Shows table settings\n* [SHOW LOCKS](Securing_and_compacting_a_table/Freezing_and_locking_a_table.md#SHOW-LOCKS) - Shows information about frozen tables\n\n##### Data management\n* [INSERT](Data_creation_and_modification/Adding_documents_to_a_table/Adding_documents_to_a_real-time_table.md) - Adds new documents\n* [REPLACE](Data_creation_and_modification/Updating_documents/REPLACE.md) - Replaces existing documents with new ones\n* [REPLACE .. SET](Data_creation_and_modification/Updating_documents/REPLACE.md?client=REPLACE+SET) - Replaces one or multiple fields in a table\n* [UPDATE](Data_creation_and_modification/Updating_documents/UPDATE.md) - Does in-place update in documents\n* [DELETE](Data_creation_and_modification/Deleting_documents.md) - Deletes documents\n* [TRUNCATE TABLE](Emptying_a_table.md) - Deletes all documents from table\n\n##### Backup\n* [BACKUP](Securing_and_compacting_a_table/Backup_and_restore.md#BACKUP-SQL-command-reference) - Backs up your tables\n\n##### SELECT\n* [SELECT](Searching/Full_text_matching/Basic_usage.md#SQL) - Searches\n * [WHERE](Searching/Filters.md#Filters) - Filters\n * [GROUP BY](Searching/Grouping.md) - Groups search results\n * [GROUP BY ORDER](Searching/Grouping.md) - Orders groups\n * [GROUP BY HAVING](Searching/Grouping.md) - Filters groups\n * [OPTION](Searching/Options.md#OPTION) - Query Options\n * [FACET](Searching/Faceted_search.md) - Faceted search\n * [SUB-SELECTS](Searching/Sub-selects.md) - About using SELECT sub-queries\n * [JOIN](Searching/Joining.md) - Joining tables in SELECT\n* [EXPLAIN QUERY](Searching/Full_text_matching/Profiling.md#Profiling-without-running-a-query) - Shows query execution plan without running the query itself\n* [SHOW META](Node_info_and_management/SHOW_META.md) - Shows extended information about executed query\n* [SHOW PROFILE](Node_info_and_management/Profiling/Query_profile.md) - Shows profiling information about executed query\n* [SHOW PLAN](Searching/Full_text_matching/Profiling.md#Profiling-the-query-tree-in-SQL) - Shows query execution plan after the query was executed\n* [SHOW WARNINGS](Node_info_and_management/SHOW_WARNINGS.md) - Shows warnings from the latest query\n\n##### Flushing misc things\n* [FLUSH ATTRIBUTES](Securing_and_compacting_a_table/Flushing_attributes.md) - Forces flushing updated attributes to disk\n* [FLUSH HOSTNAMES](Securing_and_compacting_a_table/Flushing_hostnames.md) - Renews IPs associates to agent host names\n* [FLUSH LOGS](Logging/Rotating_query_and_server_logs.md) - Initiates reopen of searchd log and query log files (similar to USR1)\n\n##### Real-time table optimization\n* [FLUSH RAMCHUNK](Securing_and_compacting_a_table/Flushing_RAM_chunk_to_a_new_disk_chunk.md#FLUSH-RAMCHUNK) - Force creating a new disk chunk\n* [FLUSH TABLE](Securing_and_compacting_a_table/Flushing_RAM_chunk_to_disk.md#FLUSH-TABLE) - Flushes real-time table RAM chunk to disk\n* [OPTIMIZE TABLE](Securing_and_compacting_a_table/Compacting_a_table.md#OPTIMIZE-TABLE) - Enqueues real-time table for optimization\n\n##### Importing to a real-time table\n* [ATTACH TABLE](Data_creation_and_modification/Adding_data_from_external_storages/Adding_data_to_tables/Attaching_one_table_to_another.md) - Moves data from a plain table to a real-time table\n* [IMPORT TABLE](Data_creation_and_modification/Adding_data_from_external_storages/Adding_data_to_tables/Importing_table.md) - Imports previously created RT or PQ table into a server running in the RT mode\n\n##### Replication\n* [JOIN CLUSTER](Creating_a_cluster/Setting_up_replication/Joining_a_replication_cluster.md) - Joins a replication cluster\n* [ALTER CLUSTER](Creating_a_cluster/Setting_up_replication/Managing_replication_nodes.md) - Adds/deletes a table to a replication cluster\n* [SET CLUSTER](Creating_a_cluster/Setting_up_replication/Setting_up_replication.md#Cluster-parameters) - Changes replication cluster settings\n* [DELETE CLUSTER](Creating_a_cluster/Setting_up_replication/Deleting_a_replication_cluster.md) - Deletes a replication cluster\n\n##### Plain table rotate\n* [RELOAD TABLE](Data_creation_and_modification/Adding_data_from_external_storages/Rotating_a_table.md#RELOAD-TABLE) - Rotates a plain table\n* [RELOAD TABLES](Data_creation_and_modification/Adding_data_from_external_storages/Rotating_a_table.md#RELOAD-TABLE) - Rotates all plain tables\n\n##### Transactions\n* [BEGIN](Data_creation_and_modification/Transactions.md#BEGIN,-COMMIT,-and-ROLLBACK) - Begins a transaction\n* [COMMIT](Data_creation_and_modification/Transactions.md#BEGIN,-COMMIT,-and-ROLLBACK) - Finishes a transaction\n* [ROLLBACK](Data_creation_and_modification/Transactions.md#BEGIN,-COMMIT,-and-ROLLBACK) - Rolls back a transaction\n\n##### CALL\n* [CALL SUGGEST, CALL QSUGGEST](Searching/Spell_correction.md#CALL-QSUGGEST,-CALL-SUGGEST) - Suggests spell-corrected words\n* [CALL SNIPPETS](Searching/Highlighting.md) - Builds a highlighted results snippet from provided data and query\n* [CALL PQ](Searching/Percolate_query.md) - Runs a percolate query\n* [CALL KEYWORDS](Searching/Autocomplete.md#CALL-KEYWORDS) - Used to check how keywords are tokenized. Also allows to retrieve tokenized forms of provided keywords\n* [CALL AUTOCOMPLETE](Searching/Autocomplete.md#CALL-AUTOCOMPLETE) - Autocompletes your search query\n\n##### Plugins\n* [CREATE FUNCTION](Extensions/UDFs_and_Plugins/UDF/Creating_a_function.md) - Installs a user-defined function (UDF)\n* [DROP FUNCTION](Extensions/UDFs_and_Plugins/UDF/Deleting_a_function.md) - Drops a user-defined function (UDF)\n* [CREATE PLUGIN](Extensions/UDFs_and_Plugins/Plugins/Creating_a_plugin.md) - Installs a plugin\n* [CREATE BUDDY PLUGIN](Extensions/UDFs_and_Plugins/Plugins/Creating_a_plugin.md#CREATE-BUDDY-PLUGIN) - Installs a Buddy plugin\n* [DROP PLUGIN](Extensions/UDFs_and_Plugins/Plugins/Deleting_a_plugin.md#DELETE-PLUGIN) - Drops a plugin\n* [DROP BUDDY PLUGIN](Extensions/UDFs_and_Plugins/Plugins/Deleting_a_plugin.md#DELETE-BUDDY-PLUGIN) - Drops a Buddy plugin\n* [RELOAD PLUGINS](Extensions/UDFs_and_Plugins/Plugins/Reloading_plugins.md) - Reloads all plugins from a given library\n* [ENABLE BUDDY PLUGIN](Extensions/UDFs_and_Plugins/Plugins/Enabling_and_disabling_buddy_plugins.md#ENABLE-BUDDY-PLUGIN) - Reactivates a previously disabled Buddy plugin\n* [DISABLE BUDDY PLUGIN](Extensions/UDFs_and_Plugins/Plugins/Enabling_and_disabling_buddy_plugins.md#DISABLE-BUDDY-PLUGIN) - Deactivates an active Buddy plugin\n\n##### Server status\n* [SHOW STATUS](Node_info_and_management/Node_status.md#SHOW-STATUS) - Displays a number of useful performance counters\n* [SHOW THREADS](Node_info_and_management/SHOW_THREADS.md) - Lists all currently active client threads\n* [SHOW VARIABLES](Node_info_and_management/SHOW_VARIABLES.md) - Lists server-wide variables and their values\n* [SHOW VERSION](Node_info_and_management/SHOW_VERSION.md#SHOW-VERSION) - Provides detailed version information of various components of the instance.\n\n### HTTP endpoints\n* [/sql](Connecting_to_the_server/HTTP.md#SQL-over-HTTP) - Execute an SQL statement over HTTP JSON\n* [/cli](Connecting_to_the_server/HTTP.md#/cli) - Provides an HTTP command line interface\n* [/insert](Data_creation_and_modification/Adding_documents_to_a_table/Adding_documents_to_a_real-time_table.md) - Inserts a document into a real-time table\n* [/pq/tbl_name/doc](Data_creation_and_modification/Adding_documents_to_a_table/Adding_rules_to_a_percolate_table.md#Adding-rules-to-a-percolate-table) - Adds a PQ rule to a percolate table\n* [/update](Data_creation_and_modification/Updating_documents/UPDATE.md#Updates-via-HTTP-JSON) - Updates a document in a real-time table\n* [/replace](Data_creation_and_modification/Updating_documents/REPLACE.md) - Replaces an existing document in a real-time table or inserts it if it doesn't exist\n* [/pq/tbl_name/doc/N?refresh=1](Data_creation_and_modification/Adding_documents_to_a_table/Adding_rules_to_a_percolate_table.md#Adding-rules-to-a-percolate-table) - Replaces a PQ rule in a percolate table\n* [/delete](Data_creation_and_modification/Deleting_documents.md) - Removes a document from a table\n* [/bulk](Data_creation_and_modification/Updating_documents/UPDATE.md#Bulk-updates) - Executes multiple insert, update, or delete operations in a single call. Learn more about bulk inserts [here](Data_creation_and_modification/Adding_documents_to_a_table/Adding_documents_to_a_real-time_table.md).\n* [/search](Searching/Full_text_matching/Basic_usage.md#HTTP-JSON) - Performs a search\n* [/search -> knn](Searching/KNN.md) - Performs a KNN vector search\n* [/pq/tbl_name/search](Searching/Percolate_query.md) - Performs a reverse search in a percolate table\n* [/tbl_name/_mapping](Creating_a_table/Local_tables/Real-time_table.md#_mapping-API:) - Creates a table schema in the Elasticsearch style\n\n### Common things\n* [field name syntax](Creating_a_table/Data_types.md#Field-name-syntax)\n* [data types](Creating_a_table/Data_types.md)\n* [engine](Creating_a_table/Data_types.md)\n* [plain mode](Read_this_first.md#Real-time-mode-vs-plain-mode)\n* [real-time mode](Read_this_first.md#Real-time-mode-vs-plain-mode)\n\n##### Common table settings\n* [access_plain_attrs](Server_settings/Searchd.md#access_plain_attrs)\n* [access_blob_attrs](Server_settings/Searchd.md#access_blob_attrs)\n* [access_doclists](Server_settings/Searchd.md#access_doclists)\n* [access_hitlists](Server_settings/Searchd.md#access_hitlists)\n* [access_dict](Server_settings/Searchd.md#access_dict)\n* [attr_update_reserve](Data_creation_and_modification/Updating_documents/UPDATE.md#attr_update_reserve)\n* [bigram_delimiter](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#bigram_delimiter)\n* [bigram_freq_words](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#bigram_freq_words)\n* [bigram_index](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#bigram_index)\n* [blend_chars](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#blend_chars)\n* [blend_mode](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#blend_mode)\n* [charset_table](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#charset_table)\n* [dict](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#dict)\n* [docstore_block_size](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [docstore_compression](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [docstore_compression_level](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [embedded_limit](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#embedded_limit)\n* [exceptions](Creating_a_table/NLP_and_tokenization/Exceptions.md#exceptions)\n* [exceptions_list](Creating_a_table/NLP_and_tokenization/Exceptions.md#exceptions_list)\n* [expand_keywords](Searching/Options.md#expand_keywords)\n* [global_idf](Searching/Options.md#global_idf)\n* [hitless_words](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#hitless_words)\n* [hitless_words_list](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#hitless_words_list)\n* [html_index_attrs](Creating_a_table/NLP_and_tokenization/Advanced_HTML_tokenization.md#html_index_attrs)\n* [html_remove_elements](Creating_a_table/NLP_and_tokenization/Advanced_HTML_tokenization.md#html_remove_elements)\n* [html_strip](Creating_a_table/NLP_and_tokenization/Advanced_HTML_tokenization.md#html_strip)\n* [ignore_chars](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#ignore_chars)\n* [index_exact_words](Creating_a_table/NLP_and_tokenization/Morphology.md#index_exact_words)\n* [index_field_lengths](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#index_field_lengths)\n* [index_sp](Creating_a_table/NLP_and_tokenization/Advanced_HTML_tokenization.md#index_sp)\n* [index_token_filter](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#index_token_filter)\n* [index_zones](Creating_a_table/NLP_and_tokenization/Advanced_HTML_tokenization.md#index_zones)\n* [infix_fields](Creating_a_table/NLP_and_tokenization/Wildcard_searching_settings.md#infix_fields)\n* [inplace_enable](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [inplace_hit_gap](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [inplace_reloc_factor](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [inplace_write_factor](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [jieba_hmm](Creating_a_table/NLP_and_tokenization/Morphology.md#jieba_hmm)\n* [jieba_mode](Creating_a_table/NLP_and_tokenization/Morphology.md#jieba_mode)\n* [jieba_user_dict_path](Creating_a_table/NLP_and_tokenization/Morphology.md#jieba_user_dict_path)\n* [killlist_target](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [max_substring_len](Creating_a_table/NLP_and_tokenization/Wildcard_searching_settings.md#max_substring_len)\n* [min_infix_len](Creating_a_table/NLP_and_tokenization/Wildcard_searching_settings.md#min_infix_len)\n* [min_prefix_len](Creating_a_table/NLP_and_tokenization/Wildcard_searching_settings.md#min_prefix_len)\n* [min_stemming_len](Creating_a_table/NLP_and_tokenization/Morphology.md#min_stemming_len)\n* [min_word_len](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#min_word_len)\n* [morphology](Searching/Options.md#morphology)\n* [morphology_skip_fields](Creating_a_table/NLP_and_tokenization/Morphology.md#morphology_skip_fields)\n* [ngram_chars](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#ngram_chars)\n* [ngram_len](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#ngram_len)\n* [overshort_step](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#overshort_step)\n* [path](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [phrase_boundary](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#phrase_boundary)\n* [phrase_boundary_step](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#phrase_boundary_step)\n* [prefix_fields](Creating_a_table/NLP_and_tokenization/Wildcard_searching_settings.md#prefix_fields)\n* [preopen](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [read_buffer_docs](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [read_buffer_hits](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [regexp_filter](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#regexp_filter)\n* [stopwords](Creating_a_table/NLP_and_tokenization/Ignoring_stop-words.md#stopwords)\n* [stopwords_list](Creating_a_table/NLP_and_tokenization/Ignoring_stop-words.md#stopwords_list)\n* [stopword_step](Creating_a_table/NLP_and_tokenization/Ignoring_stop-words.md#stopword_step)\n* [stopwords_unstemmed](Creating_a_table/NLP_and_tokenization/Ignoring_stop-words.md#stopwords_unstemmed)\n* [type](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [wordforms](Creating_a_table/NLP_and_tokenization/Wordforms.md#wordforms)\n* [wordforms_list](Creating_a_table/NLP_and_tokenization/Wordforms.md#wordforms_list)\n\n##### Plain table settings\n* [json_secondary_indexes](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#json_secondary_indexes)\n* [source](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [stored_fields](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [stored_only_fields](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [columnar_attrs](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n\n##### Distributed table settings\n* [local](Creating_a_table/Creating_a_distributed_table/Creating_a_local_distributed_table.md)\n* [agent](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent)\n* [agent_connect_timeout](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent)\n* [agent_blackhole](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent)\n* [agent_persistent](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent)\n* [agent_query_timeout](Searching/Options.md#agent_query_timeout)\n* [agent_retry_count](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent)\n* [ha_strategy](Creating_a_cluster/Remote_nodes/Load_balancing.md#ha_strategy)\n* [mirror_retry_count](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent)\n\n##### RT table settings\n* [rt_attr_bigint](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [rt_attr_bool](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [rt_attr_float](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [rt_attr_float_vector](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [rt_attr_json](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [rt_attr_multi_64](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [rt_attr_multi](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [rt_attr_string](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [rt_attr_timestamp](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [rt_attr_uint](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [rt_field](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [rt_mem_limit](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [diskchunk_flush_write_timeout](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [diskchunk_flush_search_timeout](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n\n\n## Full-text search operators\n* [OR](Searching/Full_text_matching/Operators.md#OR-operator)\n* [MAYBE](Searching/Full_text_matching/Operators.md#MAYBE-operator)\n* [NOT](Searching/Full_text_matching/Operators.md#Negation-operator) - NOT operator\n* [@field](Searching/Full_text_matching/Operators.md#Field-search-operator) - field search operator\n* [@field%5BN%5D](Searching/Full_text_matching/Operators.md#Field-search-operator) - field position limit modifier\n* [@(field1,field2,...)](Searching/Full_text_matching/Operators.md#Field-search-operator) - multi-field search operator\n* [@!field](Searching/Full_text_matching/Operators.md#Field-search-operator) - ignore field search operator\n* [@!(field1,field2,...)](Searching/Full_text_matching/Operators.md#Field-search-operator) - ignore multi-field search operator\n* [@*](Searching/Full_text_matching/Operators.md#Field-search-operator) - all-field search operator\n* [\"word1 word2 ... \"](Searching/Full_text_matching/Operators.md#Phrase-search-operator) - phrase search operator\n* [\"word1 word2 ... \"~N](Searching/Full_text_matching/Operators.md#Proximity-search-operator) - proximity search operator\n* [\"word1 word2 ... \"/N](Searching/Full_text_matching/Operators.md#Quorum-matching-operator) - quorum matching operator\n* [word1 << word2 << word3](Searching/Full_text_matching/Operators.md#Strict-order-operator) - strict order operator\n* [=word1](Searching/Full_text_matching/Operators.md#Exact-form-modifier) - exact form modifier\n* [^word1](Searching/Full_text_matching/Operators.md#Field-start-and-field-end-modifier) - field-start modifier\n* [word2$](Searching/Full_text_matching/Operators.md#Field-start-and-field-end-modifier) - field-end modifier\n* [word^N](Searching/Full_text_matching/Operators.md#IDF-boost-modifier) - keyword IDF boost modifier\n* [word1 NEAR/N word2](Searching/Full_text_matching/Operators.md#NEAR-operator) - NEAR, generalized proximity operator\n* [word1 NOTNEAR/N word2](Searching/Full_text_matching/Operators.md#NOTNEAR-operator) - NOTNEAR, negative assertion operator\n* [word1 PARAGRAPH word2 PARAGRAPH \"word3 word4\"](Searching/Full_text_matching/Operators.md#SENTENCE-and-PARAGRAPH-operators) - PARAGRAPH operator\n* [word1 SENTENCE word2 SENTENCE \"word3 word4\"](Searching/Full_text_matching/Operators.md#SENTENCE-and-PARAGRAPH-operators) - SENTENCE operator\n* [ZONE:(h3,h4)](Searching/Full_text_matching/Operators.md#ZONE-limit-operator) - ZONE limit operator\n* [ZONESPAN:(h2)](Searching/Full_text_matching/Operators.md#ZONESPAN-limit-operator) - ZONESPAN limit operator\n* [@@relaxed](Searching/Full_text_matching/Operators.md#Field-search-operator) - suppresses errors about missing fields\n* [t?st](Searching/Full_text_matching/Operators.md#Wildcard-operators) - wildcard operators\n* [REGEX(/pattern/)](Searching/Full_text_matching/Operators.md#REGEX-operator) - REGEX operator\n\n## Functions\n##### Mathematical\n* [ABS()](Functions/Mathematical_functions.md#ABS%28%29) - Returns absolute value\n* [ATAN2()](Functions/Mathematical_functions.md#ATAN2%28%29) - Returns arctangent function of two arguments\n* [BITDOT()](Functions/Mathematical_functions.md#BITDOT%28%29) - Returns sum of products of each bit of a mask multiplied with its weight\n* [CEIL()](Functions/Mathematical_functions.md#CEIL%28%29) - Returns smallest integer value greater or equal to the argument\n* [COS()](Functions/Mathematical_functions.md#COS%28%29) - Returns cosine of the argument\n* [CRC32()](Functions/Mathematical_functions.md#CRC32%28%29) - Returns CRC32 value of the argument\n* [EXP()](Functions/Mathematical_functions.md#EXP%28%29) - Returns exponent of the argument\n* [FIBONACCI()](Functions/Mathematical_functions.md#FIBONACCI%28%29) - Returns the N-th Fibonacci number, where N is the integer argument\n* [FLOOR()](Functions/Mathematical_functions.md#FLOOR%28%29) - Returns the largest integer value lesser or equal to the argument\n* [GREATEST()](Functions/Mathematical_functions.md#GREATEST%28%29) - Takes JSON/MVA array as the argument and returns the greatest value in that array\n* [IDIV()](Functions/Mathematical_functions.md#IDIV%28%29) - Returns result of an integer division of the first argument by the second argument\n* [LEAST()](Functions/Mathematical_functions.md#LEAST%28%29) - Takes JSON/MVA array as the argument, and returns the least value in that array\n* [LN()](Functions/Mathematical_functions.md#LN%28%29) - Returns natural logarithm of the argument\n* [LOG10()](Functions/Mathematical_functions.md#LOG10%28%29) - Returns common logarithm of the argument\n* [LOG2()](Functions/Mathematical_functions.md#LOG2%28%29) - Returns binary logarithm of the argument\n* [MAX()](Functions/Mathematical_functions.md#MAX%28%29) - Returns the larger of two arguments\n* [MIN()](Functions/Mathematical_functions.md#MIN%28%29) - Returns the smaller of two arguments\n* [POW()](Functions/Mathematical_functions.md#POW%28%29) - Returns the first argument raised to the power of the second argument\n* [RAND()](Functions/Mathematical_functions.md#RAND%28%29) - Returns random float between 0 and 1\n* [SIN()](Functions/Mathematical_functions.md#SIN%28%29) - Returns sine of the argument\n* [SQRT()](Functions/Mathematical_functions.md#SQRT%28%29) - Returns square root of the argument\n\n\n##### Searching and ranking\n* [BM25F()](Functions/Searching_and_ranking_functions.md#BM25F%28%29) - Returns precise BM25F formula value\n* [EXIST()](Functions/Searching_and_ranking_functions.md#EXIST%28%29) - Replaces non-existing columns with default values\n* [GROUP_CONCAT()](Searching/Grouping.md#GROUP_CONCAT%28field%29) - Produces a comma-separated list of the attribute values of all documents in the group\n* [HIGHLIGHT()](Searching/Highlighting.md) - Highlights search results\n* [MIN_TOP_SORTVAL()](Functions/Searching_and_ranking_functions.md#MIN_TOP_SORTVAL%28%29) - Returns sort key value of the worst found element in the current top-N matches\n* [MIN_TOP_WEIGHT()](Functions/Searching_and_ranking_functions.md#MIN_TOP_WEIGHT%28%29) - Returns weight of the worst found element in the current top-N matches\n* [PACKEDFACTORS()](Functions/Searching_and_ranking_functions.md#PACKEDFACTORS%28%29) - Outputs weighting factors\n* [REMOVE_REPEATS()](Functions/Searching_and_ranking_functions.md#REMOVE_REPEATS%28%29) - Removes repeated adjusted rows with the same 'column' value\n* [WEIGHT()](Functions/Searching_and_ranking_functions.md#WEIGHT%28%29) - Returns fulltext match score\n* [ZONESPANLIST()](Functions/Searching_and_ranking_functions.md#ZONESPANLIST%28%29) - Returns pairs of matched zone spans\n* [QUERY()](Functions/Searching_and_ranking_functions.md#QUERY%28%29) - Returns current full-text query\n\n##### Type casting\n* [BIGINT()](Functions/Type_casting_functions.md#BIGINT%28%29) - Forcibly promotes the integer argument to 64-bit type\n* [DOUBLE()](Functions/Type_casting_functions.md#DOUBLE%28%29) - Forcibly promotes given argument to floating point type\n* [INTEGER()](Functions/Type_casting_functions.md#INTEGER%28%29) - Forcibly promotes given argument to 64-bit signed type\n* [TO_STRING()](Functions/Type_casting_functions.md#TO_STRING%28%29) - Forcibly promotes the argument to string type\n* [UINT()](Functions/Type_casting_functions.md#UINT%28%29) - Converts the given argument to 32-bit unsigned integer type\n* [UINT64()](Functions/Type_casting_functions.md#UINT64%28%29) - Converts the given argument to 64-bit unsigned integer type\n* [SINT()](Functions/Type_casting_functions.md#SINT%28%29) - Interprets 32-bit unsigned integer as signed 64-bit integer\n\n##### Arrays and conditions\n* [ALL()](Functions/Arrays_and_conditions_functions.md#ALL%28%29) - Returns 1 if condition is true for all elements in the array\n* [ANY()](Functions/Arrays_and_conditions_functions.md#ANY%28%29) - Returns 1 if condition is true for any element in the array\n* [CONTAINS()](Functions/Arrays_and_conditions_functions.md#CONTAINS%28%29) - Checks whether the (x,y) point is within the given polygon\n* [IF()](Functions/Arrays_and_conditions_functions.md#IF%28%29) - Checks whether the 1st argument is equal to 0.0, returns the 2nd argument if it is not zero or the 3rd one when it is\n* [IN()](Functions/Arrays_and_conditions_functions.md#IN%28%29) - Returns 1 if the first argument is equal to any of the other arguments, or 0 otherwise\n* [INDEXOF()](Functions/Arrays_and_conditions_functions.md#INDEXOF%28%29) - Iterates through all elements in the array and returns index of the first matching element\n* [INTERVAL()](Functions/Arrays_and_conditions_functions.md#INTERVAL%28%29) - Returns index of the argument that is less than the first argument\n* [LENGTH()](Functions/Arrays_and_conditions_functions.md#LENGTH%28%29) - Returns number of elements in MVA\n* [REMAP()](Functions/Arrays_and_conditions_functions.md#REMAP%28%29) - Allows to make some exceptions of expression values depending on the condition values\n\n##### Date and time\n* [NOW()](Functions/Date_and_time_functions.md#NOW%28%29) - Returns current timestamp as an INTEGER\n* [CURTIME()](Functions/Date_and_time_functions.md#CURTIME%28%29) - Returns current time in local timezone\n* [CURDATE()](Functions/Date_and_time_functions.md#CURDATE%28%29) - Returns current date in local timezone\n* [UTC_TIME()](Functions/Date_and_time_functions.md#UTC_TIME%28%29) - Returns current time in UTC timezone\n* [UTC_TIMESTAMP()](Functions/Date_and_time_functions.md#UTC_TIMESTAMP%28%29) - Returns current date/time in UTC timezone\n* [SECOND()](Functions/Date_and_time_functions.md#SECOND%28%29) - Returns integer second from the timestamp argument\n* [MINUTE()](Functions/Date_and_time_functions.md#MINUTE%28%29) - Returns integer minute from the timestamp argument\n* [HOUR()](Functions/Date_and_time_functions.md#HOUR%28%29) - Returns integer hour from the timestamp argument\n* [DAY()](Functions/Date_and_time_functions.md#DAY%28%29) - Returns integer day from the timestamp argument\n* [MONTH()](Functions/Date_and_time_functions.md#MONTH%28%29) - Returns integer month from the timestamp argument\n* [QUARTER()](Functions/Date_and_time_functions.md#QUARTER%28%29) - Returns the integer quarter of the year from a timestamp argument\n* [YEAR()](Functions/Date_and_time_functions.md#YEAR%28%29) - Returns integer year from the timestamp argument\n* [DAYNAME()](Functions/Date_and_time_functions.md#DAYNAME%28%29) - Returns the weekday name for a given timestamp argument\n* [MONTHNAME()](Functions/Date_and_time_functions.md#MONTHNAME%28%29) - Returns the name of the month for a given timestamp argument\n* [DAYOFWEEK()](Functions/Date_and_time_functions.md#DAYOFWEEK%28%29) - Returns the integer weekday index for a given timestamp argument\n* [DAYOFYEAR()](Functions/Date_and_time_functions.md#DAYOFYEAR%28%29) - Returns the integer day of the year for a given timestamp argument\n* [YEARWEEK()](Functions/Date_and_time_functions.md#YEARWEEK%28%29) - Returns the integer year and the day code of the first day of current week for a given timestamp argument\n* [YEARMONTH()](Functions/Date_and_time_functions.md#YEARMONTH%28%29) - Returns integer year and month code from the timestamp argument\n* [YEARMONTHDAY()](Functions/Date_and_time_functions.md#YEARMONTHDAY%28%29) - Returns integer year, month and day code from the timestamp argument\n* [TIMEDIFF()](Functions/Date_and_time_functions.md#TIMEDIFF%28%29) - Returns difference between the timstamps\n* [DATEDIFF()](Functions/Date_and_time_functions.md#DATEDIFF%28%29) - Returns the number of days between two given timestamps\n* [DATE()](Functions/Date_and_time_functions.md#DATE%28%29) - Formats the date part from a timestamp argument\n* [TIME()](Functions/Date_and_time_functions.md#TIME%28%29) - Formats the time part from a timestamp argument\n* [DATE_FORMAT()](Functions/Date_and_time_functions.md#DATE_FORMAT%28%29) - Returns a formatted string based on the provided date and format arguments\n\n\n##### Geo-spatial\n* [GEODIST()](Functions/Geo_spatial_functions.md#GEODIST%28%29) - Computes geosphere distance between two given points\n* [GEOPOLY2D()](Functions/Geo_spatial_functions.md#GEOPOLY2D%28%29) - Creates a polygon that takes in account the Earth's curvature\n* [POLY2D()](Functions/Geo_spatial_functions.md#POLY2D%28%29) - Creates a simple polygon in plain space\n\n##### String\n* [CONCAT()](Functions/String_functions.md#CONCAT%28%29) - Concatenates two or more strings\n* [REGEX()](Functions/String_functions.md#REGEX%28%29) - Returns 1 if regular expression matched to string of attribute and 0 otherwise\n* [SNIPPET()](Functions/String_functions.md#SNIPPET%28%29) - Highlights search results\n* [SUBSTRING_INDEX()](Functions/String_functions.md#SUBSTRING_INDEX%28%29) - Returns a substring of the string before the specified number of delimiter occurs\n\n##### Other\n* [CONNECTION_ID()](Functions/Other_functions.md#CONNECTION_ID%28%29) - Returns the current connection ID\n* [KNN_DIST()](Functions/Other_functions.md#KNN_DIST%28%29) - Returns KNN vector search distance\n* [LAST_INSERT_ID()](Functions/Other_functions.md#LAST_INSERT_ID%28%29) - Returns ids of documents inserted or replaced by last statement in the current session\n* [UUID_SHORT()](Functions/Other_functions.md#UUID_SHORT%28%29) - Returns a \"short\" universal identifier following the same algorithm as for auto-id generation.\n\n## Common settings in configuration file\nTo be put to section `common {}` in configuration file:\n* [lemmatizer_base](Server_settings/Common.md#lemmatizer_base) - Lemmatizer dictionaries base path\n* [progressive_merge](Server_settings/Common.md#progressive_merge) - Defines order of merging disk chunks in a real-time table\n* [json_autoconv_keynames](Server_settings/Common.md#json_autoconv_keynames) - Whether and how to auto-convert key names within JSON attributes\n* [json_autoconv_numbers](Server_settings/Common.md#json_autoconv_numbers) - Automatically detects and converts possible JSON strings that represent numbers into numeric attributes\n* [on_json_attr_error](Server_settings/Common.md#on_json_attr_error) - What to do if JSON format errors are found\n* [plugin_dir](Server_settings/Common.md#plugin_dir) - Location for the dynamic libraries and UDFs\n\n## [Indexer](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments)\n`indexer` is a tool to create [plain tables](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments)\n\n##### Indexer settings in configuration file\nTo be put to section `indexer {}` in configuration file:\n* [lemmatizer_cache](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - Lemmatizer cache size\n* [max_file_field_buffer](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - Maximum file field adaptive buffer size\n* [max_iops](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - Maximum indexation I/O operations per second\n* [max_iosize](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - Maximum allowed I/O operation size\n* [max_xmlpipe2_field](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - Maximum allowed field size for XMLpipe2 source type\n* [mem_limit](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - Indexing RAM usage limit\n* [on_file_field_error](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - How to handle IO errors in file fields\n* [write_buffer](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - Write buffer size\n* [ignore_non_plain](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - To ignore warnings about non-plain tables\n\n##### Indexer start parameters\n```bash\nindexer [OPTIONS] [indexname1 [indexname2 [...]]]\n```\n* [--all](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - Rebuilds all tables from the config\n* [--buildstops](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - Analyzes the table source as if indexing the data, generating a list of indexed terms\n* [--buildfreqs](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - Adds the frequency count to the table for --buildstops\n* [--config, -c](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - Specifies the path to the configuration file\n* [--dump-rows](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - Dumps rows retrieved by SQL source(s) into the specified file\n* [--help](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - Displays all available parameters\n* [--keep-attrs](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - Allows reuse of existing attributes when reindexing\n* [--keep-attrs-names](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - Specifies which attributes to reuse from the existing table\n* [--merge-dst-range](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - Applies the given filter range during merging\n* [--merge-killlists](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - Alters kill list processing when merging tables\n* [--merge](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - Combines two plain tables into one\n* [--nohup](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - Prevents indexer from sending SIGHUP when this option is enabled\n* [--noprogress](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - Hides progress details\n* [--print-queries](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - Outputs SQL queries sent by the indexer to the database\n* [--print-rt](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - Displays data fetched from SQL source(s) as INSERTs into a real-time table\n* [--quiet](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - Suppresses all output\n* [--rotate](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - Initiates table rotation after all tables are built\n* [--sighup-each](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - Triggers rotation of each table after it's built\n* [-v](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-command-line-arguments) - Displays indexer version\n\n## Table Converter for Manticore v2 / Sphinx v2\n`index_converter` is a tool designed to convert tables created with Sphinx/Manticore Search 2.x into the Manticore Search 3.x table format.\n```bash\nindex_converter {--config /path/to/config|--path}\n```\n##### Table converter start parameters\n* [--config, -c](Installation/Migration_from_Sphinx.md#index_converter) - Path to table configuration file\n* [--index](Installation/Migration_from_Sphinx.md#index_converter) - Specifies which table to convert\n* [--path](Installation/Migration_from_Sphinx.md#index_converter) - Sets path containing table(s) instead of the configuration file\n* [--strip-path](Installation/Migration_from_Sphinx.md#index_converter) - Removes path from filenames referenced by table\n* [--large-docid](Installation/Migration_from_Sphinx.md#index_converter) - Allows conversion of documents with ids larger than 2^63\n* [--output-dir](Installation/Migration_from_Sphinx.md#index_converter) - Writes new files in a specified folder\n* [--all](Installation/Migration_from_Sphinx.md#index_converter) - Converts all tables from the configuration file / path\n* [--killlist-target](Installation/Migration_from_Sphinx.md#index_converter) - Sets target tables for applying kill-lists\n\n## [Searchd](Starting_the_server/Manually.md)\n`searchd` is the Manticore server.\n\n##### Searchd settings in a configuration file\nTo be put in the `searchd {}` section of the configuration file:\n * [access_blob_attrs](Server_settings/Searchd.md#access_blob_attrs) - Defines how table's blob attributes file is accessed\n * [access_doclists](Server_settings/Searchd.md#access_doclists) - Defines how table's doclists file is accessed\n * [access_hitlists](Server_settings/Searchd.md#access_hitlists) - Defines how table's hitlists file is accessed\n * [access_plain_attrs](Server_settings/Searchd.md#access_plain_attrs) - Defines how search server accesses table's plain attributes\n * [access_dict](Server_settings/Searchd.md#access_dict) - Defines how table's dictionary file is accessed\n * [agent_connect_timeout](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent_connect_timeout) - Remote agent connection timeout\n * [agent_query_timeout](Searching/Options.md#agent_query_timeout) - Remote agent query timeout\n * [agent_retry_count](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent_connect_timeout) - Specifies the number of times Manticore tries to connect and query remote agents\n * [agent_retry_delay](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent) - Specifies the delay before retrying to query a remote agent in case of failure\n * [attr_flush_period](Data_creation_and_modification/Updating_documents/UPDATE.md#attr_flush_period) - Sets the time period between flushing updated attributes to disk\n * [binlog_flush](Server_settings/Searchd.md#binlog_flush) - Binary log transaction flush/sync mode\n * [binlog_max_log_size](Server_settings/Searchd.md#binlog_max_log_size) - Maximum binary log file size\n * [binlog_common](Logging/Binary_logging.md#Binary-logging-strategies) - Common binary log file for all tables\n * [binlog_filename_digits](Logging/Binary_logging.md#Log-files) - Number of digits in a binlog file name\n * [binlog_flush](Logging/Binary_logging.md#Binary-flushing-strategies) - Binlog flushing strategy\n * [binlog_path](Server_settings/Searchd.md#binlog_path) - Binary log files path\n * [client_timeout](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent) - Maximum time to wait between requests when using persistent connections\n * [collation_libc_locale](Server_settings/Searchd.md#collation_libc_locale) - Server libc locale\n * [collation_server](Server_settings/Searchd.md#collation_server) - Default server collation\n * [data_dir](Server_settings/Searchd.md#data_dir) - Path to data directory where Manticore stores everything ([RT mode](Creating_a_table/Local_tables.md#Online-schema-management-%28RT-mode%29))\n * [diskchunk_flush_write_timeout](Server_settings/Searchd.md#diskchunk_flush_write_timeout) - Timeout for auto-flushing a RAM chunk if there are no writes to it\n * [diskchunk_flush_search_timeout](Server_settings/Searchd.md#diskchunk_flush_search_timeout) - Timeout for preventing auto-flushing a RAM chunk if there are no searches in the table\n * [docstore_cache_size](Server_settings/Searchd.md#docstore_cache_size) - Maximum size of document blocks from document storage held in memory\n * [expansion_limit](Creating_a_table/NLP_and_tokenization/Wildcard_searching_settings.md#expansion_limit) - Maximum number of expanded keywords for a single wildcard\n * [grouping_in_utc](Server_settings/Searchd.md#grouping_in_utc) - Enables using UTC timezone for grouping time fields\n * [ha_period_karma](Server_settings/Searchd.md#ha_period_karma) - Agent mirror statistics window size\n * [ha_ping_interval](Creating_a_cluster/Remote_nodes/Load_balancing.md#ha_ping_interval) - Interval between agent mirror pings\n * [hostname_lookup](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent) - Hostnames renew strategy\n * [jobs_queue_size](Server_settings/Searchd.md#jobs_queue_size) - Defines the maximum number of \"jobs\" allowed in the queue simultaneously\n * [join_batch_size](Searching/Joining.md#Join-batching) - Defines batch size for table joins to balance performance and memory usage\n * [join_cache_size](Searching/Joining.md#Join-caching) - Defines cache size for reusing JOIN query results\n * [kibana_version_string](Server_settings/Searchd.md#kibana_version_string) \u2013 The server version string that's sent in response to Kibana requests\n * [listen](Server_settings/Searchd.md#listen) - Specifies IP address and port or Unix-domain socket path for searchd to listen on\n * [listen_backlog](Server_settings/Searchd.md#listen_backlog) - TCP listen backlog\n * [listen_tfo](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent) - Enables TCP_FASTOPEN flag for all listeners\n * [log](Server_settings/Searchd.md#log) - Path to Manticore server log file\n * [max_batch_queries](Server_settings/Searchd.md#max_batch_queries) - Limits the number of queries per batch\n * [max_connections](Server_settings/Searchd.md#max_connections) - Maximum number of active connections\n * [merge_chunks_per_job](Server_settings/Searchd.md#merge_chunks_per_job) - How many RT disk chunks are merged per OPTIMIZE job\n * [max_filters](Server_settings/Searchd.md#max_filters) - Maximum allowed per-query filter count\n * [max_filter_values](Server_settings/Searchd.md#max_filter_values) - Maximum allowed per-filter values count\n * [max_open_files](Server_settings/Searchd.md#max_open_files) - Maximum number of files allowed to be opened by server\n * [max_packet_size](Server_settings/Searchd.md#max_packet_size) - Maximum allowed network packet size\n * [mysql_version_string](Server_settings/Searchd.md#mysql_version_string) - Server version string returned via MySQL protocol\n * [net_throttle_accept](Server_settings/Searchd.md#net_throttle_accept) - Defines how many clients are accepted on each iteration of the network loop\n * [net_throttle_action](Server_settings/Searchd.md#net_throttle_action) - Defines how many requests are processed on each iteration of the network loop\n * [net_wait_tm](Server_settings/Searchd.md#net_wait_tm) - Controls busy loop interval of a network thread\n * [net_workers](Server_settings/Searchd.md#net_workers) - Number of network threads\n * [network_timeout](Server_settings/Searchd.md#network_timeout) - Network timeout for client requests\n * [node_address](Server_settings/Searchd.md#node_address) - Specifies network address of the node\n * [persistent_connections_limit](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent) - Maximum number of simultaneous persistent connections to remote persistent agents\n * [parallel_chunk_merges](Server_settings/Searchd.md#parallel_chunk_merges) - How many RT disk chunk merges can run in parallel during OPTIMIZE\n * [pid_file](Server_settings/Searchd.md#pid_file) - Path to Manticore server pid file\n * [preopen_tables](Server_settings/Searchd.md#preopen_tables) - Determines whether to forcibly preopen all tables on startup\n * [pseudo_sharding](Server_settings/Searchd.md#pseudo_sharding) - Enables pseudo-sharding for search queries to plain and real-time tables\n * [qcache_max_bytes](Server_settings/Searchd.md#qcache_max_bytes) - Maximum RAM allocated for cached result sets\n * [qcache_thresh_msec](Server_settings/Searchd.md#qcache_thresh_msec) - Minimum wall time threshold for a query result to be cached\n * [qcache_ttl_sec](Server_settings/Searchd.md#qcache_ttl_sec) - Expiration period for a cached result set\n * [query_log](Server_settings/Searchd.md#query_log) - Path to query log file\n * [query_log_format](Server_settings/Searchd.md#query_log_format) - Query log format\n * [query_log_min_msec](Server_settings/Searchd.md#query_log_min_msec) - Prevents logging too fast queries\n * [query_log_mode](Server_settings/Searchd.md#query_log_mode) - Query log file permissions mode\n * [read_buffer_docs](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#read_buffer_docs) - Per-keyword read buffer size for document lists\n * [read_buffer_hits](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#read_buffer_docs) - Per-keyword read buffer size for hit lists\n * [read_unhinted](Server_settings/Searchd.md#read_unhinted) - Unhinted read size\n * [rt_flush_period](Server_settings/Searchd.md#rt_flush_period) - How often Manticore flushes real-time tables' RAM chunks to disk\n * [rt_merge_iops](Server_settings/Searchd.md#rt_merge_iops) - Maximum number of I/O operations (per second) that real-time chunks merging thread is allowed to do\n * [rt_merge_maxiosize](Server_settings/Searchd.md#rt_merge_maxiosize) - Maximum size of an I/O operation that real-time chunks merging thread is allowed to do\n * [seamless_rotate](Server_settings/Searchd.md#seamless_rotate) - Prevents searchd stalls while rotating tables with huge amounts of data to precache\n * [secondary_indexes](Server_settings/Searchd.md#secondary_indexes) - Enables using secondary indexes for search queries\n * [server_id](Server_settings/Searchd.md#server_id) - Server identifier used as a seed to generate a unique document ID\n * [shutdown_timeout](Server_settings/Searchd.md#shutdown_timeout) - Searchd `--stopwait` timeout\n * [shutdown_token](Server_settings/Searchd.md#shutdown_token) - SHA1 hash of the password required to invoke `shutdown` command from VIP SQL connection\n * [skiplist_cache_size](Server_settings/Searchd.md#skiplist_cache_size) - Maximum size of the in-memory cache for decompressed skiplists\n * [snippets_file_prefix](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent) - Prefix to prepend to the local file names when generating snippets in `load_files` mode\n * [sphinxql_state](Server_settings/Searchd.md#sphinxql_state) - Path to file where the current SQL state will be serialized\n * [sphinxql_timeout](Server_settings/Searchd.md#sphinxql_timeout) - Maximum time to wait between requests from a MySQL client\n * [ssl_ca](Server_settings/Searchd.md#ssl_ca) - Path to SSL Certificate Authority certificate file\n * [ssl_cert](Server_settings/Searchd.md#ssl_cert) - Path to server's SSL certificate\n * [ssl_key](Server_settings/Searchd.md#ssl_key) - Path to SSL certificate key of the server\n * [subtree_docs_cache](Server_settings/Searchd.md#subtree_docs_cache) - Maximum common subtree document cache size\n * [subtree_hits_cache](Server_settings/Searchd.md#subtree_hits_cache) - Maximum common subtree hit cache size, per-query\n * [timezone](Server_settings/Searchd.md#timezone) - Timezone used by date/time-related functions\n * [thread_stack](Server_settings/Searchd.md#thread_stack) - Maximum stack size for a job\n * [unlink_old](Server_settings/Searchd.md#unlink_old) - Whether to unlink .old table copies on successful rotation\n * [watchdog](Server_settings/Searchd.md#watchdog) - Whether to enable or disable Manticore server watchdog\n\n##### Searchd start parameters\n```bash\nsearchd [OPTIONS]\n```\n* [--config, -c](Starting_the_server/Manually.md#searchd-command-line-options) - Specifies the path to the configuration file\n* [--console](Starting_the_server/Manually.md#searchd-command-line-options) - Forces the server to run in console mode\n* [--coredump](Starting_the_server/Manually.md#searchd-command-line-options) - Enables core dump saving upon crash\n* [--cpustats](Starting_the_server/Manually.md#searchd-command-line-options) - Enables CPU time reporting\n* [--delete](Starting_the_server/Manually.md#searchd-command-line-options) - Removes the Manticore service from Microsoft Management Console and other locations where services are registered\n* [--force-preread](Starting_the_server/Manually.md#searchd-command-line-options) - Prevents the server from serving incoming connections until table files are pre-read\n* [--help, -h](Starting_the_server/Manually.md#searchd-command-line-options) - Displays all available parameters\n* [--quiet, -q](Starting_the_server/Manually.md#searchd-command-line-options) - Only print errors on startup\n* [--table (--index)](Starting_the_server/Manually.md#searchd-command-line-options) - Restricts the server to serve only the specified table\n* [--install](Starting_the_server/Manually.md#searchd-command-line-options) - Installs searchd as a service in Microsoft Management Console\n* [--iostats](Starting_the_server/Manually.md#searchd-command-line-options) - Enables input/output reporting\n* [--listen, -l](Starting_the_server/Manually.md#searchd-command-line-options) - Overrides [listen](Server_settings/Searchd.md#listen) from the configuration file\n* [--logdebug, --logdebugv, --logdebugvv](Starting_the_server/Manually.md#searchd-command-line-options) - Enables additional debug output in the server log\n* [--logreplication](Starting_the_server/Manually.md#searchd-command-line-options) - Enables extra replication debug output in the server log\n* [--new-cluster](Starting_the_server/Manually.md#searchd-command-line-options) - Initializes a replication cluster and sets the server as a reference node with [cluster restart](Creating_a_cluster/Setting_up_replication/Restarting_a_cluster.md) protection\n* [--new-cluster-force](Starting_the_server/Manually.md#searchd-command-line-options) - Initializes a replication cluster and sets the server as a reference node, bypassing [cluster restart](Creating_a_cluster/Setting_up_replication/Restarting_a_cluster.md) protection\n* [--nodetach](Starting_the_server/Manually.md#searchd-command-line-options) - Keeps searchd running in the foreground\n* [--ntservice](Starting_the_server/Manually.md#searchd-command-line-options) - Used by Microsoft Management Console to launch searchd as a service on Windows platforms\n* [--pidfile](Starting_the_server/Manually.md#searchd-command-line-options) - Overrides [pid_file](Server_settings/Searchd.md#pid_file) in the configuration file\n* [--port, p](Starting_the_server/Manually.md#searchd-command-line-options) - Specifies the port searchd should listen on, ignoring the port specified in the configuration file\n* [--replay-flags](Starting_the_server/Manually.md#searchd-command-line-options) - Sets additional binary log replay options\n* [--servicename](Starting_the_server/Manually.md#searchd-command-line-options) - Assigns the given name to searchd when installing or deleting the service, as displayed in Microsoft Management Console\n* [--status](Starting_the_server/Manually.md#searchd-command-line-options) - Queries the running search service to return its status\n* [--stop](Starting_the_server/Manually.md#searchd-command-line-options) - Stops the Manticore server\n* [--stopwait](Starting_the_server/Manually.md#searchd-command-line-options) - Stops the Manticore server gracefully\n* [--strip-path](Starting_the_server/Manually.md#searchd-command-line-options) - Removes path names from all file names referenced in the table\n* [-v](Starting_the_server/Manually.md#searchd-command-line-options) - Displays version information\n\n##### Searchd environment variables\n* [MANTICORE_TRACK_DAEMON_SHUTDOWN](Starting_the_server/Manually.md#Environment-variables) - Enables detailed logging during searchd shutdown\n\n## [Indextool](Miscellaneous_tools.md#indextool)\nAssorted table maintenance features helpful for troubleshooting.\n```bash\nindextool [options]\n```\n##### Indextool Start Parameters\nUtilized for dumping various debug information related to the physical table.\n```bash\nindextool [options]\n```\n* [--config, -c](Miscellaneous_tools.md#indextool) - Specifies the path to the configuration file\n* [--quiet, -q](Miscellaneous_tools.md#indextool) - Keeps indextool quiet; no banner output, etc.\n* [--help, -h](Miscellaneous_tools.md#indextool) - Lists all available parameters\n* [-v](Miscellaneous_tools.md#indextool) - Displays version information\n* [Indextool](Miscellaneous_tools.md#indextool) - Verifies the configuration file\n* [--buildidf](Miscellaneous_tools.md#indextool) - Builds an IDF file from one or more dictionary dumps\n* [--build-infixes](Miscellaneous_tools.md#indextool) - Builds infixes for an existing dict=keywords table\n* [--dumpheader](Miscellaneous_tools.md#indextool) - Quickly dumps the provided table header file\n* [--dumpconfig](Miscellaneous_tools.md#indextool) - Dumps table definition from the given table header file in a nearly compliant manticore.conf format\n* [--dumpheader](Miscellaneous_tools.md#indextool) - Dumps table header by table name while looking up the header path in the configuration file\n* [--dumpdict](Miscellaneous_tools.md#indextool) - Dumps the table dictionary\n* [--dumpdocids](Miscellaneous_tools.md#indextool) - Dumps document IDs by table name\n* [--dumphitlist](Miscellaneous_tools.md#indextool) - Dumps all occurrences of the given keyword/id in the specified table\n* [--docextract](Miscellaneous_tools.md#indextool) - Runs table check pass on entire dictionary/docs/hits and collects all words and hits belonging to the requested document\n* [--fold](Miscellaneous_tools.md#indextool) - Tests tokenization based on table settings\n* [--htmlstrip](Miscellaneous_tools.md#indextool) - Filters STDIN using HTML stripper settings for the specified table\n* [--mergeidf](Miscellaneous_tools.md#indextool) - Merges multiple .idf files into a single file\n* [--morph](Miscellaneous_tools.md#indextool) - Applies morphology to the provided STDIN and outputs the result to stdout\n* [--check](Miscellaneous_tools.md#indextool) - Checks table data files for consistency\n* [--check-id-dups](Miscellaneous_tools.md#indextool) - Checks for duplicate IDs\n* [--check-disk-chunk](Miscellaneous_tools.md#indextool) - Checks a single disk chunk of an RT table\n* [--strip-path](Miscellaneous_tools.md#indextool) - Removes path names from all file names referenced in the table\n* [--rotate](Miscellaneous_tools.md#indextool) - Determines whether to check a table waiting for rotation when using `--check`\n* [--apply-killlists](Miscellaneous_tools.md#indextool) - Applies kill-lists for all tables listed in the configuration file\n\n## [Wordbreaker](Miscellaneous_tools.md#wordbreaker)\nSplits compound words into their components.\n```bash\nwordbreaker [-dict path/to/dictionary_file] {split|test|bench}\n```\n\n##### Wordbreaker start parameters\n* [STDIN](Miscellaneous_tools.md#wordbreaker) - Accepts a string to break into parts\n* [-dict](Miscellaneous_tools.md#wordbreaker) - Specifies the dictionary file to use\n* [split|test|bench](Miscellaneous_tools.md#wordbreaker) - Specifies the command\n\n## [Spelldump](Miscellaneous_tools.md#spelldump)\nExtracts the contents of a dictionary file using ispell or MySpell format\n\n```bash\nspelldump [options] [result] [locale-name]\n```\n* [dictionary](Miscellaneous_tools.md#spelldump) - Main dictionary file\n* [affix](Miscellaneous_tools.md#spelldump) - Affix file for the dictionary\n* [result](Miscellaneous_tools.md#spelldump) - Specifies the output destination for the dictionary data\n* [locale-name](Miscellaneous_tools.md#spelldump) - Specifies the locale details to use\n\n## List of reserved keywords\n\nA comprehensive alphabetical list of keywords currently reserved in Manticore SQL syntax (thus, they cannot be used as identifiers).\n\n```\nAND, AS, BY, COLUMNARSCAN, DISTINCT, DIV, DOCIDINDEX, EXPLAIN, FACET, FALSE, FORCE, FROM, IGNORE, IN, INDEXES, INNER, IS, JOIN, KNN, LEFT, LIMIT, MOD, NOT, NO_COLUMNARSCAN, NO_DOCIDINDEX, NO_SECONDARYINDEX, NULL, OFFSET, ON, OR, ORDER, RELOAD, SECONDARYINDEX, SELECT, SYSFILTERS, TRUE\n```\n\n## Documentation for old Manticore versions\n\n* [2.4.1](https://repo.manticoresearch.com/repository/old_docs/manticoresearch-2.4.1.pdf)\n* [2.5.1](https://repo.manticoresearch.com/repository/old_docs/manticoresearch-2.5.1.pdf)\n* [2.6.0](https://repo.manticoresearch.com/repository/old_docs/manticoresearch-2.6.0.pdf)\n* [2.6.1](https://repo.manticoresearch.com/repository/old_docs/manticoresearch-2.6.1.pdf)\n* [2.6.2](https://repo.manticoresearch.com/repository/old_docs/manticoresearch-2.6.2.pdf)\n* [2.6.3](https://repo.manticoresearch.com/repository/old_docs/manticoresearch-2.6.3.pdf)\n* [2.6.4](https://repo.manticoresearch.com/repository/old_docs/manticoresearch-2.6.4.pdf)\n* [2.7.0](https://repo.manticoresearch.com/repository/old_docs/manticoresearch-2.7.0.pdf)\n* [2.7.1](https://repo.manticoresearch.com/repository/old_docs/manticoresearch-2.7.1.pdf)\n* [2.7.2](https://repo.manticoresearch.com/repository/old_docs/manticoresearch-2.7.2.pdf)\n* [2.7.3](https://repo.manticoresearch.com/repository/old_docs/manticoresearch-2.7.3.pdf)\n* [2.7.4](https://repo.manticoresearch.com/repository/old_docs/manticoresearch-2.7.4.pdf)\n* [2.7.5](https://repo.manticoresearch.com/repository/old_docs/manticoresearch-2.7.5.pdf)\n* [2.8.0](https://repo.manticoresearch.com/repository/old_docs/manticoresearch-2.8.0.pdf)\n* [2.8.1](https://repo.manticoresearch.com/repository/old_docs/manticoresearch-2.8.1.pdf)\n* [2.8.2](https://repo.manticoresearch.com/repository/old_docs/manticoresearch-2.8.2.pdf)\n* [3.0.0](https://repo.manticoresearch.com/repository/old_docs/manticoresearch-3.0.0.pdf)\n* [3.0.2](https://repo.manticoresearch.com/repository/old_docs/manticoresearch-3.0.2.pdf)\n* [3.1.0](https://repo.manticoresearch.com/repository/old_docs/manticoresearch-3.1.0.pdf)\n* [3.1.2](https://repo.manticoresearch.com/repository/old_docs/manticoresearch-3.1.2.pdf)\n* [3.2.0](https://repo.manticoresearch.com/repository/old_docs/manticoresearch-3.2.0.pdf)\n* [3.2.2](https://repo.manticoresearch.com/repository/old_docs/manticoresearch-3.2.2.pdf)\n* [3.3.0](https://repo.manticoresearch.com/repository/old_docs/manticoresearch-3.3.0.pdf)\n* [3.4.0](https://repo.manticoresearch.com/repository/old_docs/manticoresearch-3.4.0.pdf)\n* [3.4.2](https://repo.manticoresearch.com/repository/old_docs/manticoresearch-3.4.2.pdf)\n* [3.5.0](https://manual.manticoresearch.com/manticore-3-5-0/)\n* [3.5.2](https://manual.manticoresearch.com/manticore-3-5-2/)\n* [3.5.4](https://manual.manticoresearch.com/manticore-3-5-4/)\n* [4.0.2](https://manual.manticoresearch.com/manticore-4-0-2/)\n* [4.2.0](https://manual.manticoresearch.com/manticore-4-2-0/)\n* [5.0.2](https://manual.manticoresearch.com/manticore-5-0-2/). [Installation page](https://manticoresearch.com/install-5.0.0/)\n* [6.0.0](https://manual.manticoresearch.com/manticore-6-0-0/). [Installation page](https://manticoresearch.com/install-6.0.0/)\n* [6.0.2](https://manual.manticoresearch.com/manticore-6-0-2/). [Installation page](https://manticoresearch.com/install-6.0.2/)\n* [6.0.4](https://manual.manticoresearch.com/manticore-6-0-4/). [Installation page](https://manticoresearch.com/install-6.0.4/)\n* [6.2.0](https://manual.manticoresearch.com/manticore-6-2-0/). [Installation page](https://manticoresearch.com/install-6.2.0/)\n* [6.2.12](https://manual.manticoresearch.com/manticore-6-2-12/). [Installation page](https://manticoresearch.com/install-6.2.12/)\n* [6.3.0](https://manual.manticoresearch.com/manticore-6-3-0/). [Installation page](https://manticoresearch.com/install-6.3.0/)\n* [6.3.2](https://manual.manticoresearch.com/manticore-6-3-2/). [Installation page](https://manticoresearch.com/install-6.3.2/)\n* [6.3.4](https://manual.manticoresearch.com/manticore-6-3-4/). [Installation page](https://manticoresearch.com/install-6.3.4/)\n* [6.3.6](https://manual.manticoresearch.com/manticore-6-3-6/). [Installation page](https://manticoresearch.com/install-6.3.6/)\n* [6.3.8](https://manual.manticoresearch.com/manticore-6-3-8/). [Installation page](https://manticoresearch.com/install-6.3.8/)\n* [7.0.0](https://manual.manticoresearch.com/manticore-7-0-0/). [Installation page](https://manticoresearch.com/install-7.0.0/)\n* [7.4.6](https://manual.manticoresearch.com/manticore-7-4-6/). [Installation page](https://manticoresearch.com/install-7.4.6/)\n* [9.2.14](https://manual.manticoresearch.com/manticore-9-2-14/). [Installation page](https://manticoresearch.com/install-9.2.14/)\n* [9.3.2](https://manual.manticoresearch.com/manticore-9-3-2/). [Installation page](https://manticoresearch.com/install-9.3.2/)\n* [10.1.0](https://manual.manticoresearch.com/manticore-10-1-0/). [Installation page](https://manticoresearch.com/install-10.1.0/)\n* [13.2.3](https://manual.manticoresearch.com/manticore-13-2-3/). [Installation page](https://manticoresearch.com/install-13.2.3/)\n* [13.6.7](https://manual.manticoresearch.com/manticore-13-6-7/). [Installation page](https://manticoresearch.com/install-13.6.7/)\n* [13.11.0](https://manual.manticoresearch.com/manticore-13-11-0/). [Installation page](https://manticoresearch.com/install-13.11.0/)\n* [13.11.1](https://manual.manticoresearch.com/manticore-13-11-1/). [Installation page](https://manticoresearch.com/install-13.11.1/)\n* [13.13.0](https://manual.manticoresearch.com/manticore-13-13-0/). [Installation page](https://manticoresearch.com/install-13.13.0/)\n* [14.1.0](https://manual.manticoresearch.com/manticore-14-1-0/). [Installation page](https://manticoresearch.com/install-14.1.0/)\n* [15.1.0](https://manual.manticoresearch.com/manticore-15-1-0/). [Installation page](https://manticoresearch.com/install-15.1.0/)\n* [17.5.1](https://manual.manticoresearch.com/manticore-17-5-1/). [Installation page](https://manticoresearch.com/install-17.5.1/)\n\n", + "updated_at": 1773763357, + "source_md5": "80e72475aa847bec957a0a23b3da736d", + "source_snapshot": "/tmp/translator-source-4Ffghe", + "target_snapshot": "/tmp/translator-target-5FcGAs" }, "6056278d7e84392f2581aaaec13eea1e12de30dfa1bf3786a3cf82273ebfe611": { "original": "##### Common table settings\n* [access_plain_attrs](Server_settings/Searchd.md#access_plain_attrs)\n* [access_blob_attrs](Server_settings/Searchd.md#access_blob_attrs)\n* [access_doclists](Server_settings/Searchd.md#access_doclists)\n* [access_hitlists](Server_settings/Searchd.md#access_hitlists)\n* [access_dict](Server_settings/Searchd.md#access_dict)\n* [attr_update_reserve](Data_creation_and_modification/Updating_documents/UPDATE.md#attr_update_reserve)\n* [bigram_freq_words](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#bigram_freq_words)\n* [bigram_index](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#bigram_index)\n* [blend_chars](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#blend_chars)\n* [blend_mode](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#blend_mode)\n* [charset_table](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#charset_table)\n* [dict](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#dict)\n* [docstore_block_size](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [docstore_compression](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [docstore_compression_level](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [embedded_limit](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#embedded_limit)\n* [exceptions](Creating_a_table/NLP_and_tokenization/Exceptions.md#exceptions)\n* [exceptions_list](Creating_a_table/NLP_and_tokenization/Exceptions.md#exceptions_list)\n* [expand_keywords](Searching/Options.md#expand_keywords)\n* [global_idf](Searching/Options.md#global_idf)\n* [hitless_words](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#hitless_words)\n* [hitless_words_list](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#hitless_words_list)\n* [html_index_attrs](Creating_a_table/NLP_and_tokenization/Advanced_HTML_tokenization.md#html_index_attrs)\n* [html_remove_elements](Creating_a_table/NLP_and_tokenization/Advanced_HTML_tokenization.md#html_remove_elements)\n* [html_strip](Creating_a_table/NLP_and_tokenization/Advanced_HTML_tokenization.md#html_strip)\n* [ignore_chars](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#ignore_chars)\n* [index_exact_words](Creating_a_table/NLP_and_tokenization/Morphology.md#index_exact_words)\n* [index_field_lengths](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#index_field_lengths)\n* [index_sp](Creating_a_table/NLP_and_tokenization/Advanced_HTML_tokenization.md#index_sp)\n* [index_token_filter](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#index_token_filter)\n* [index_zones](Creating_a_table/NLP_and_tokenization/Advanced_HTML_tokenization.md#index_zones)\n* [infix_fields](Creating_a_table/NLP_and_tokenization/Wildcard_searching_settings.md#infix_fields)\n* [inplace_enable](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [inplace_hit_gap](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [inplace_reloc_factor](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [inplace_write_factor](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [jieba_hmm](Creating_a_table/NLP_and_tokenization/Morphology.md#jieba_hmm)\n* [jieba_mode](Creating_a_table/NLP_and_tokenization/Morphology.md#jieba_mode)\n* [jieba_user_dict_path](Creating_a_table/NLP_and_tokenization/Morphology.md#jieba_user_dict_path)\n* [killlist_target](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [max_substring_len](Creating_a_table/NLP_and_tokenization/Wildcard_searching_settings.md#max_substring_len)\n* [min_infix_len](Creating_a_table/NLP_and_tokenization/Wildcard_searching_settings.md#min_infix_len)\n* [min_prefix_len](Creating_a_table/NLP_and_tokenization/Wildcard_searching_settings.md#min_prefix_len)\n* [min_stemming_len](Creating_a_table/NLP_and_tokenization/Morphology.md#min_stemming_len)\n* [min_word_len](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#min_word_len)\n* [morphology](Searching/Options.md#morphology)\n* [morphology_skip_fields](Creating_a_table/NLP_and_tokenization/Morphology.md#morphology_skip_fields)\n* [ngram_chars](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#ngram_chars)\n* [ngram_len](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#ngram_len)\n* [overshort_step](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#overshort_step)\n* [path](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [phrase_boundary](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#phrase_boundary)\n* [phrase_boundary_step](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#phrase_boundary_step)\n* [prefix_fields](Creating_a_table/NLP_and_tokenization/Wildcard_searching_settings.md#prefix_fields)\n* [preopen](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [read_buffer_docs](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [read_buffer_hits](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [regexp_filter](Creating_a_table/NLP_and_tokenization/Low-level_tokenization.md#regexp_filter)\n* [stopwords](Creating_a_table/NLP_and_tokenization/Ignoring_stop-words.md#stopwords)\n* [stopwords_list](Creating_a_table/NLP_and_tokenization/Ignoring_stop-words.md#stopwords_list)\n* [stopword_step](Creating_a_table/NLP_and_tokenization/Ignoring_stop-words.md#stopword_step)\n* [stopwords_unstemmed](Creating_a_table/NLP_and_tokenization/Ignoring_stop-words.md#stopwords_unstemmed)\n* [type](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#General-syntax-of-CREATE-TABLE)\n* [wordforms](Creating_a_table/NLP_and_tokenization/Wordforms.md#wordforms)\n* [wordforms_list](Creating_a_table/NLP_and_tokenization/Wordforms.md#wordforms_list)", @@ -235,5 +235,15 @@ "is_code_or_comment": false, "model": "qwen/qwen3-14b", "updated_at": 1773337057 + }, + "18f313a07be605e2e9018be87ea175a86ee08c17e23fbfbe419d91986337275a": { + "original": "##### Searchd settings in a configuration file\nTo be put in the `searchd {}` section of the configuration file:\n * [access_blob_attrs](Server_settings/Searchd.md#access_blob_attrs) - Defines how table's blob attributes file is accessed\n * [access_doclists](Server_settings/Searchd.md#access_doclists) - Defines how table's doclists file is accessed\n * [access_hitlists](Server_settings/Searchd.md#access_hitlists) - Defines how table's hitlists file is accessed\n * [access_plain_attrs](Server_settings/Searchd.md#access_plain_attrs) - Defines how search server accesses table's plain attributes\n * [access_dict](Server_settings/Searchd.md#access_dict) - Defines how table's dictionary file is accessed\n * [agent_connect_timeout](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent_connect_timeout) - Remote agent connection timeout\n * [agent_query_timeout](Searching/Options.md#agent_query_timeout) - Remote agent query timeout\n * [agent_retry_count](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent_connect_timeout) - Specifies the number of times Manticore tries to connect and query remote agents\n * [agent_retry_delay](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent) - Specifies the delay before retrying to query a remote agent in case of failure\n * [attr_flush_period](Data_creation_and_modification/Updating_documents/UPDATE.md#attr_flush_period) - Sets the time period between flushing updated attributes to disk\n * [binlog_flush](Server_settings/Searchd.md#binlog_flush) - Binary log transaction flush/sync mode\n * [binlog_max_log_size](Server_settings/Searchd.md#binlog_max_log_size) - Maximum binary log file size\n * [binlog_common](Logging/Binary_logging.md#Binary-logging-strategies) - Common binary log file for all tables\n * [binlog_filename_digits](Logging/Binary_logging.md#Log-files) - Number of digits in a binlog file name\n * [binlog_flush](Logging/Binary_logging.md#Binary-flushing-strategies) - Binlog flushing strategy\n * [binlog_path](Server_settings/Searchd.md#binlog_path) - Binary log files path\n * [client_timeout](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent) - Maximum time to wait between requests when using persistent connections\n * [collation_libc_locale](Server_settings/Searchd.md#collation_libc_locale) - Server libc locale\n * [collation_server](Server_settings/Searchd.md#collation_server) - Default server collation\n * [data_dir](Server_settings/Searchd.md#data_dir) - Path to data directory where Manticore stores everything ([RT mode](Creating_a_table/Local_tables.md#Online-schema-management-%28RT-mode%29))\n * [diskchunk_flush_write_timeout](Server_settings/Searchd.md#diskchunk_flush_write_timeout) - Timeout for auto-flushing a RAM chunk if there are no writes to it\n * [diskchunk_flush_search_timeout](Server_settings/Searchd.md#diskchunk_flush_search_timeout) - Timeout for preventing auto-flushing a RAM chunk if there are no searches in the table\n * [docstore_cache_size](Server_settings/Searchd.md#docstore_cache_size) - Maximum size of document blocks from document storage held in memory\n * [expansion_limit](Creating_a_table/NLP_and_tokenization/Wildcard_searching_settings.md#expansion_limit) - Maximum number of expanded keywords for a single wildcard\n * [grouping_in_utc](Server_settings/Searchd.md#grouping_in_utc) - Enables using UTC timezone for grouping time fields\n * [ha_period_karma](Server_settings/Searchd.md#ha_period_karma) - Agent mirror statistics window size\n * [ha_ping_interval](Creating_a_cluster/Remote_nodes/Load_balancing.md#ha_ping_interval) - Interval between agent mirror pings\n * [hostname_lookup](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent) - Hostnames renew strategy\n * [jobs_queue_size](Server_settings/Searchd.md#jobs_queue_size) - Defines the maximum number of \"jobs\" allowed in the queue simultaneously\n * [join_batch_size](Searching/Joining.md#Join-batching) - Defines batch size for table joins to balance performance and memory usage\n * [join_cache_size](Searching/Joining.md#Join-caching) - Defines cache size for reusing JOIN query results\n * [kibana_version_string](Server_settings/Searchd.md#kibana_version_string) \u2013 The server version string that's sent in response to Kibana requests\n * [listen](Server_settings/Searchd.md#listen) - Specifies IP address and port or Unix-domain socket path for searchd to listen on\n * [listen_backlog](Server_settings/Searchd.md#listen_backlog) - TCP listen backlog\n * [listen_tfo](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent) - Enables TCP_FASTOPEN flag for all listeners\n * [log](Server_settings/Searchd.md#log) - Path to Manticore server log file\n * [max_batch_queries](Server_settings/Searchd.md#max_batch_queries) - Limits the number of queries per batch\n * [max_connections](Server_settings/Searchd.md#max_connections) - Maximum number of active connections\n * [merge_chunks_per_job](Server_settings/Searchd.md#merge_chunks_per_job) - How many RT disk chunks are merged per OPTIMIZE job\n * [max_filters](Server_settings/Searchd.md#max_filters) - Maximum allowed per-query filter count\n * [max_filter_values](Server_settings/Searchd.md#max_filter_values) - Maximum allowed per-filter values count\n * [max_open_files](Server_settings/Searchd.md#max_open_files) - Maximum number of files allowed to be opened by server\n * [max_packet_size](Server_settings/Searchd.md#max_packet_size) - Maximum allowed network packet size\n * [mysql_version_string](Server_settings/Searchd.md#mysql_version_string) - Server version string returned via MySQL protocol\n * [net_throttle_accept](Server_settings/Searchd.md#net_throttle_accept) - Defines how many clients are accepted on each iteration of the network loop\n * [net_throttle_action](Server_settings/Searchd.md#net_throttle_action) - Defines how many requests are processed on each iteration of the network loop\n * [net_wait_tm](Server_settings/Searchd.md#net_wait_tm) - Controls busy loop interval of a network thread\n * [net_workers](Server_settings/Searchd.md#net_workers) - Number of network threads\n * [network_timeout](Server_settings/Searchd.md#network_timeout) - Network timeout for client requests\n * [node_address](Server_settings/Searchd.md#node_address) - Specifies network address of the node\n * [persistent_connections_limit](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent) - Maximum number of simultaneous persistent connections to remote persistent agents\n * [parallel_chunk_merges](Server_settings/Searchd.md#parallel_chunk_merges) - How many RT disk chunk merges can run in parallel during OPTIMIZE\n * [pid_file](Server_settings/Searchd.md#pid_file) - Path to Manticore server pid file\n * [preopen_tables](Server_settings/Searchd.md#preopen_tables) - Determines whether to forcibly preopen all tables on startup\n * [pseudo_sharding](Server_settings/Searchd.md#pseudo_sharding) - Enables pseudo-sharding for search queries to plain and real-time tables\n * [qcache_max_bytes](Server_settings/Searchd.md#qcache_max_bytes) - Maximum RAM allocated for cached result sets\n * [qcache_thresh_msec](Server_settings/Searchd.md#qcache_thresh_msec) - Minimum wall time threshold for a query result to be cached\n * [qcache_ttl_sec](Server_settings/Searchd.md#qcache_ttl_sec) - Expiration period for a cached result set\n * [query_log](Server_settings/Searchd.md#query_log) - Path to query log file\n * [query_log_format](Server_settings/Searchd.md#query_log_format) - Query log format\n * [query_log_min_msec](Server_settings/Searchd.md#query_log_min_msec) - Prevents logging too fast queries\n * [query_log_mode](Server_settings/Searchd.md#query_log_mode) - Query log file permissions mode\n * [read_buffer_docs](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#read_buffer_docs) - Per-keyword read buffer size for document lists\n * [read_buffer_hits](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#read_buffer_docs) - Per-keyword read buffer size for hit lists\n * [read_unhinted](Server_settings/Searchd.md#read_unhinted) - Unhinted read size\n * [rt_flush_period](Server_settings/Searchd.md#rt_flush_period) - How often Manticore flushes real-time tables' RAM chunks to disk\n * [rt_merge_iops](Server_settings/Searchd.md#rt_merge_iops) - Maximum number of I/O operations (per second) that real-time chunks merging thread is allowed to do\n * [rt_merge_maxiosize](Server_settings/Searchd.md#rt_merge_maxiosize) - Maximum size of an I/O operation that real-time chunks merging thread is allowed to do\n * [seamless_rotate](Server_settings/Searchd.md#seamless_rotate) - Prevents searchd stalls while rotating tables with huge amounts of data to precache\n * [secondary_indexes](Server_settings/Searchd.md#secondary_indexes) - Enables using secondary indexes for search queries\n * [server_id](Server_settings/Searchd.md#server_id) - Server identifier used as a seed to generate a unique document ID\n * [shutdown_timeout](Server_settings/Searchd.md#shutdown_timeout) - Searchd `--stopwait` timeout\n * [shutdown_token](Server_settings/Searchd.md#shutdown_token) - SHA1 hash of the password required to invoke `shutdown` command from VIP SQL connection\n * [skiplist_cache_size](Server_settings/Searchd.md#skiplist_cache_size) - Maximum size of the in-memory cache for decompressed skiplists\n * [snippets_file_prefix](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent) - Prefix to prepend to the local file names when generating snippets in `load_files` mode\n * [sphinxql_state](Server_settings/Searchd.md#sphinxql_state) - Path to file where the current SQL state will be serialized\n * [sphinxql_timeout](Server_settings/Searchd.md#sphinxql_timeout) - Maximum time to wait between requests from a MySQL client\n * [ssl_ca](Server_settings/Searchd.md#ssl_ca) - Path to SSL Certificate Authority certificate file\n * [ssl_cert](Server_settings/Searchd.md#ssl_cert) - Path to server's SSL certificate\n * [ssl_key](Server_settings/Searchd.md#ssl_key) - Path to SSL certificate key of the server\n * [subtree_docs_cache](Server_settings/Searchd.md#subtree_docs_cache) - Maximum common subtree document cache size\n * [subtree_hits_cache](Server_settings/Searchd.md#subtree_hits_cache) - Maximum common subtree hit cache size, per-query\n * [timezone](Server_settings/Searchd.md#timezone) - Timezone used by date/time-related functions\n * [thread_stack](Server_settings/Searchd.md#thread_stack) - Maximum stack size for a job\n * [unlink_old](Server_settings/Searchd.md#unlink_old) - Whether to unlink .old table copies on successful rotation\n * [watchdog](Server_settings/Searchd.md#watchdog) - Whether to enable or disable Manticore server watchdog", + "translations": { + "chinese": "##### \u914d\u7f6e\u6587\u4ef6\u4e2d\u7684 searchd \u8bbe\u7f6e\n\u8981\u653e\u5728\u914d\u7f6e\u6587\u4ef6\u7684 `searchd {}` \u90e8\u5206\u4e2d\uff1a\n * [access_blob_attrs](Server_settings/Searchd.md#access_blob_attrs) - \u5b9a\u4e49\u5982\u4f55\u8bbf\u95ee\u8868\u7684 blob \u5c5e\u6027\u6587\u4ef6\n * [access_doclists](Server_settings/Searchd.md#access_doclists) - \u5b9a\u4e49\u5982\u4f55\u8bbf\u95ee\u8868\u7684 doclists \u6587\u4ef6\n * [access_hitlists](Server_settings/Searchd.md#access_hitlists) - \u5b9a\u4e49\u5982\u4f55\u8bbf\u95ee\u8868\u7684 hitlists \u6587\u4ef6\n * [access_plain_attrs](Server_settings/Searchd.md#access_plain_attrs) - \u5b9a\u4e49\u641c\u7d22\u670d\u52a1\u5668\u5982\u4f55\u8bbf\u95ee\u8868\u7684\u666e\u901a\u5c5e\u6027\n * [access_dict](Server_settings/Searchd.md#access_dict) - \u5b9a\u4e49\u5982\u4f55\u8bbf\u95ee\u8868\u7684\u5b57\u5178\u6587\u4ef6\n * [agent_connect_timeout](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent_connect_timeout) - \u8fdc\u7a0b\u4ee3\u7406\u8fde\u63a5\u8d85\u65f6\n * [agent_query_timeout](Searching/Options.md#agent_query_timeout) - \u8fdc\u7a0b\u4ee3\u7406\u67e5\u8be2\u8d85\u65f6\n * [agent_retry_count](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent_connect_timeout) - \u6307\u5b9a Manticore \u5c1d\u8bd5\u8fde\u63a5\u548c\u67e5\u8be2\u8fdc\u7a0b\u4ee3\u7406\u7684\u6b21\u6570\n * [agent_retry_delay](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent) - \u6307\u5b9a\u5728\u67e5\u8be2\u8fdc\u7a0b\u4ee3\u7406\u5931\u8d25\u540e\u91cd\u8bd5\u7684\u5ef6\u8fdf\u65f6\u95f4\n * [attr_flush_period](Data_creation_and_modification/Updating_documents/UPDATE.md#attr_flush_period) - \u8bbe\u7f6e\u5c06\u66f4\u65b0\u7684\u5c5e\u6027\u5237\u65b0\u5230\u78c1\u76d8\u7684\u65f6\u95f4\u95f4\u9694\n * [binlog_flush](Server_settings/Searchd.md#binlog_flush) - \u4e8c\u8fdb\u5236\u65e5\u5fd7\u4e8b\u52a1\u5237\u65b0/\u540c\u6b65\u6a21\u5f0f\n * [binlog_max_log_size](Server_settings/Searchd.md#binlog_max_log_size) - \u6700\u5927\u4e8c\u8fdb\u5236\u65e5\u5fd7\u6587\u4ef6\u5927\u5c0f\n * [binlog_common](Logging/Binary_logging.md#Binary-logging-strategies) - \u6240\u6709\u8868\u7684\u901a\u7528\u4e8c\u8fdb\u5236\u65e5\u5fd7\u6587\u4ef6\n * [binlog_filename_digits](Logging/Binary_logging.md#Log-files) - \u4e8c\u8fdb\u5236\u65e5\u5fd7\u6587\u4ef6\u540d\u4e2d\u7684\u6570\u5b57\u4f4d\u6570\n * [binlog_flush](Logging/Binary_logging.md#Binary-flushing-strategies) - \u4e8c\u8fdb\u5236\u65e5\u5fd7\u5237\u65b0\u7b56\u7565\n * [binlog_path](Server_settings/Searchd.md#binlog_path) - \u4e8c\u8fdb\u5236\u65e5\u5fd7\u6587\u4ef6\u8def\u5f84\n * [client_timeout](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent) - \u4f7f\u7528\u6301\u4e45\u8fde\u63a5\u65f6\u5728\u8bf7\u6c42\u4e4b\u95f4\u7b49\u5f85\u7684\u6700\u5927\u65f6\u95f4\n * [collation_libc_locale](Server_settings/Searchd.md#collation_libc_locale) - \u670d\u52a1\u5668 libc \u533a\u57df\u8bbe\u7f6e\n * [collation_server](Server_settings/Searchd.md#collation_server) - \u9ed8\u8ba4\u670d\u52a1\u5668\u6392\u5e8f\u89c4\u5219\n * [data_dir](Server_settings/Searchd.md#data_dir) - Manticore \u5b58\u50a8\u6240\u6709\u6570\u636e\u7684\u6570\u636e\u76ee\u5f55\u8def\u5f84 ([RT \u6a21\u5f0f](Creating_a_table/Local_tables.md#Online-schema-management-%28RT-mode%29))\n * [diskchunk_flush_write_timeout](Server_settings/Searchd.md#diskchunk_flush_write_timeout) - \u5982\u679c\u6ca1\u6709\u5199\u5165\u64cd\u4f5c\uff0cRAM \u5757\u81ea\u52a8\u5237\u65b0\u7684\u8d85\u65f6\u65f6\u95f4\n * [diskchunk_flush_search_timeout](Server_settings/Searchd.md#diskchunk_flush_search_timeout) - \u5982\u679c\u8868\u4e2d\u6ca1\u6709\u641c\u7d22\u64cd\u4f5c\uff0c\u9632\u6b62 RAM \u5757\u81ea\u52a8\u5237\u65b0\u7684\u8d85\u65f6\u65f6\u95f4\n * [docstore_cache_size](Server_settings/Searchd.md#docstore_cache_size) - \u6587\u6863\u5b58\u50a8\u4e2d\u4fdd\u7559\u5728\u5185\u5b58\u4e2d\u7684\u6587\u6863\u5757\u6700\u5927\u5927\u5c0f\n * [expansion_limit](Creating_a_table/NLP_and_tokenization/Wildcard_searching_settings.md#expansion_limit) - \u5355\u4e2a\u901a\u914d\u7b26\u7684\u6700\u5927\u6269\u5c55\u5173\u952e\u5b57\u6570\u91cf\n * [grouping_in_utc](Server_settings/Searchd.md#grouping_in_utc) - \u542f\u7528 UTC \u65f6\u533a\u7528\u4e8e\u6309\u65f6\u95f4\u5b57\u6bb5\u5206\u7ec4\n * [ha_period_karma](Server_settings/Searchd.md#ha_period_karma) - \u4ee3\u7406\u955c\u50cf\u7edf\u8ba1\u7a97\u53e3\u5927\u5c0f\n * [ha_ping_interval](Creating_a_cluster/Remote_nodes/Load_balancing.md#ha_ping_interval) - \u4ee3\u7406\u955c\u50cf ping \u95f4\u9694\n * [hostname_lookup](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent) - \u4e3b\u673a\u540d\u66f4\u65b0\u7b56\u7565\n * [jobs_queue_size](Server_settings/Searchd.md#jobs_queue_size) - \u5b9a\u4e49\u961f\u5217\u4e2d\u5141\u8bb8\u540c\u65f6\u5b58\u5728\u7684\u201c\u4efb\u52a1\u201d\u6700\u5927\u6570\u91cf\n * [join_batch_size](Searching/Joining.md#Join-batching) - \u5b9a\u4e49\u8868\u8fde\u63a5\u7684\u6279\u5904\u7406\u5927\u5c0f\u4ee5\u5e73\u8861\u6027\u80fd\u548c\u5185\u5b58\u4f7f\u7528\n * [join_cache_size](Searching/Joining.md#Join-caching) - \u5b9a\u4e49\u7528\u4e8e\u91cd\u7528 JOIN \u67e5\u8be2\u7ed3\u679c\u7684\u7f13\u5b58\u5927\u5c0f\n * [kibana_version_string](Server_settings/Searchd.md#kibana_version_string) \u2013 \u670d\u52a1\u5668\u7248\u672c\u5b57\u7b26\u4e32\uff0c\u7528\u4e8e\u54cd\u5e94 Kibana \u8bf7\u6c42\n * [listen](Server_settings/Searchd.md#listen) - \u6307\u5b9a searchd \u76d1\u542c\u7684 IP \u5730\u5740\u548c\u7aef\u53e3\u6216 Unix \u57df\u5957\u63a5\u5b57\u8def\u5f84\n * [listen_backlog](Server_settings/Searchd.md#listen_backlog) - TCP \u76d1\u542c backlog\n * [listen_tfo](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent) - \u4e3a\u6240\u6709\u76d1\u542c\u5668\u542f\u7528 TCP_FASTOPEN \u6807\u5fd7\n * [log](Server_settings/Searchd.md#log) - Manticore \u670d\u52a1\u5668\u65e5\u5fd7\u6587\u4ef6\u8def\u5f84\n * [max_batch_queries](Server_settings/Searchd.md#max_batch_queries) - \u9650\u5236\u6bcf\u6279\u67e5\u8be2\u7684\u6570\u91cf\n * [max_connections](Server_settings/Searchd.md#max_connections) - \u6700\u5927\u6d3b\u52a8\u8fde\u63a5\u6570\n * [merge_chunks_per_job](Server_settings/Searchd.md#merge_chunks_per_job) - \u6bcf\u4e2a OPTIMIZE \u4efb\u52a1\u5408\u5e76\u7684 RT \u78c1\u76d8\u5757\u6570\u91cf\n * [max_filters](Server_settings/Searchd.md#max_filters) - \u6bcf\u4e2a\u67e5\u8be2\u5141\u8bb8\u7684\u6700\u5927\u8fc7\u6ee4\u5668\u6570\u91cf\n * [max_filter_values](Server_settings/Searchd.md#max_filter_values) - \u6bcf\u4e2a\u8fc7\u6ee4\u5668\u5141\u8bb8\u7684\u6700\u5927\u503c\u6570\u91cf\n * [max_open_files](Server_settings/Searchd.md#max_open_files) - \u670d\u52a1\u5668\u5141\u8bb8\u6253\u5f00\u7684\u6700\u5927\u6587\u4ef6\u6570\n * [max_packet_size](Server_settings/Searchd.md#max_packet_size) - \u5141\u8bb8\u7684\u6700\u5927\u7f51\u7edc\u6570\u636e\u5305\u5927\u5c0f\n * [mysql_version_string](Server_settings/Searchd.md#mysql_version_string) - \u901a\u8fc7 MySQL \u534f\u8bae\u8fd4\u56de\u7684\u670d\u52a1\u5668\u7248\u672c\u5b57\u7b26\u4e32\n * [net_throttle_accept](Server_settings/Searchd.md#net_throttle_accept) - \u5b9a\u4e49\u6bcf\u6b21\u7f51\u7edc\u5faa\u73af\u8fed\u4ee3\u4e2d\u63a5\u53d7\u7684\u5ba2\u6237\u7aef\u6570\u91cf\n * [net_throttle_action](Server_settings/Searchd.md#net_throttle_action) - \u5b9a\u4e49\u6bcf\u6b21\u7f51\u7edc\u5faa\u73af\u8fed\u4ee3\u4e2d\u5904\u7406\u7684\u8bf7\u6c42\u6570\u91cf\n * [net_wait_tm](Server_settings/Searchd.md#net_wait_tm) - \u63a7\u5236\u7f51\u7edc\u7ebf\u7a0b\u7684\u5fd9\u5faa\u73af\u95f4\u9694\n * [net_workers](Server_settings/Searchd.md#net_workers) - \u7f51\u7edc\u7ebf\u7a0b\u6570\u91cf\n * [network_timeout](Server_settings/Searchd.md#network_timeout) - \u5ba2\u6237\u7aef\u8bf7\u6c42\u7684\u7f51\u7edc\u8d85\u65f6\n * [node_address](Server_settings/Searchd.md#node_address) - \u6307\u5b9a\u8282\u70b9\u7684\u7f51\u7edc\u5730\u5740\n * [persistent_connections_limit](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent) - \u5230\u8fdc\u7a0b\u6301\u4e45\u4ee3\u7406\u7684\u6301\u4e45\u8fde\u63a5\u6700\u5927\u6570\u91cf\n * [parallel_chunk_merges](Server_settings/Searchd.md#parallel_chunk_merges) - \u5728 OPTIMIZE \u671f\u95f4\u53ef\u4ee5\u5e76\u884c\u8fd0\u884c\u7684 RT \u78c1\u76d8\u5757\u5408\u5e76\u6570\u91cf\n * [pid_file](Server_settings/Searchd.md#pid_file) - Manticore \u670d\u52a1\u5668 pid \u6587\u4ef6\u8def\u5f84\n * [preopen_tables](Server_settings/Searchd.md#preopen_tables) - \u786e\u5b9a\u662f\u5426\u5728\u542f\u52a8\u65f6\u5f3a\u5236\u9884\u6253\u5f00\u6240\u6709\u8868\n * [pseudo_sharding](Server_settings/Searchd.md#pseudo_sharding) - \u4e3a\u5bf9\u666e\u901a\u8868\u548c\u5b9e\u65f6\u8868\u7684\u641c\u7d22\u67e5\u8be2\u542f\u7528\u4f2a\u5206\u7247\n * [qcache_max_bytes](Server_settings/Searchd.md#qcache_max_bytes) - \u4e3a\u7f13\u5b58\u7ed3\u679c\u96c6\u5206\u914d\u7684\u6700\u5927 RAM\n * [qcache_thresh_msec](Server_settings/Searchd.md#qcache_thresh_msec) - \u67e5\u8be2\u7ed3\u679c\u88ab\u7f13\u5b58\u7684\u6700\u5c0f\u5899\u65f6\u95f4\u9608\u503c\n * [qcache_ttl_sec](Server_settings/Searchd.md#qcache_ttl_sec) - \u7f13\u5b58\u7ed3\u679c\u96c6\u7684\u8fc7\u671f\u65f6\u95f4\n * [query_log](Server_settings/Searchd.md#query_log) - \u67e5\u8be2\u65e5\u5fd7\u6587\u4ef6\u8def\u5f84\n * [query_log_format](Server_settings/Searchd.md#query_log_format) - \u67e5\u8be2\u65e5\u5fd7\u683c\u5f0f\n * [query_log_min_msec](Server_settings/Searchd.md#query_log_min_msec) - \u9632\u6b62\u8bb0\u5f55\u8fc7\u5feb\u7684\u67e5\u8be2\n * [query_log_mode](Server_settings/Searchd.md#query_log_mode) - \u67e5\u8be2\u65e5\u5fd7\u6587\u4ef6\u6743\u9650\u6a21\u5f0f\n * [read_buffer_docs](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#read_buffer_docs) - \u6bcf\u4e2a\u5173\u952e\u5b57\u7684\u6587\u6863\u5217\u8868\u8bfb\u53d6\u7f13\u51b2\u533a\u5927\u5c0f\n * [read_buffer_hits](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#read_buffer_docs) - \u6bcf\u4e2a\u5173\u952e\u5b57\u7684\u547d\u4e2d\u5217\u8868\u8bfb\u53d6\u7f13\u51b2\u533a\u5927\u5c0f\n * [read_unhinted](Server_settings/Searchd.md#read_unhinted) - \u672a\u63d0\u793a\u7684\u8bfb\u53d6\u5927\u5c0f\n * [rt_flush_period](Server_settings/Searchd.md#rt_flush_period) - Manticore \u5c06\u5b9e\u65f6\u8868\u7684 RAM \u5757\u5237\u65b0\u5230\u78c1\u76d8\u7684\u9891\u7387\n * [rt_merge_iops](Server_settings/Searchd.md#rt_merge_iops) - \u5b9e\u65f6\u5757\u5408\u5e76\u7ebf\u7a0b\u5141\u8bb8\u6267\u884c\u7684\u6700\u5927 I/O \u64cd\u4f5c\u6570\uff08\u6bcf\u79d2\uff09\n * [rt_merge_maxiosize](Server_settings/Searchd.md#rt_merge_maxiosize) - \u5b9e\u65f6\u5757\u5408\u5e76\u7ebf\u7a0b\u5141\u8bb8\u6267\u884c\u7684\u6700\u5927 I/O \u64cd\u4f5c\u5927\u5c0f\n * [seamless_rotate](Server_settings/Searchd.md#seamless_rotate) - \u5728\u65cb\u8f6c\u5305\u542b\u5927\u91cf\u6570\u636e\u7684\u8868\u4ee5\u9884\u7f13\u5b58\u65f6\u9632\u6b62 searchd \u505c\u6ede\n * [secondary_indexes](Server_settings/Searchd.md#secondary_indexes) - \u542f\u7528\u4f7f\u7528\u4e8c\u7ea7\u7d22\u5f15\u8fdb\u884c\u641c\u7d22\u67e5\u8be2\n * [server_id](Server_settings/Searchd.md#server_id) - \u7528\u4f5c\u751f\u6210\u552f\u4e00\u6587\u6863 ID \u7684\u79cd\u5b50\u7684\u670d\u52a1\u5668\u6807\u8bc6\u7b26\n * [shutdown_timeout](Server_settings/Searchd.md#shutdown_timeout) - Searchd `--stopwait` \u8d85\u65f6\n * [shutdown_token](Server_settings/Searchd.md#shutdown_token) - \u4ece VIP SQL \u8fde\u63a5\u8c03\u7528 `shutdown` \u547d\u4ee4\u6240\u9700\u7684\u5bc6\u7801\u7684 SHA1 \u54c8\u5e0c\n * [skiplist_cache_size](Server_settings/Searchd.md#skiplist_cache_size) - \u89e3\u538b\u540e\u7684\u8df3\u8fc7\u5217\u8868\u7684\u5185\u5b58\u7f13\u5b58\u6700\u5927\u5927\u5c0f\n * [snippets_file_prefix](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent) - \u5728 `load_files` \u6a21\u5f0f\u4e0b\u751f\u6210\u7247\u6bb5\u65f6\u6dfb\u52a0\u5230\u672c\u5730\u6587\u4ef6\u540d\u524d\u7684\u524d\u7f00\n * [sphinxql_state](Server_settings/Searchd.md#sphinxql_state) - \u5f53\u524d SQL \u72b6\u6001\u5c06\u88ab\u5e8f\u5217\u5316\u7684\u6587\u4ef6\u8def\u5f84\n * [sphinxql_timeout](Server_settings/Searchd.md#sphinxql_timeout) - \u7b49\u5f85\u6765\u81ea MySQL \u5ba2\u6237\u7aef\u8bf7\u6c42\u7684\u6700\u5927\u65f6\u95f4\n * [ssl_ca](Server_settings/Searchd.md#ssl_ca) - SSL \u8bc1\u4e66\u9881\u53d1\u673a\u6784\u8bc1\u4e66\u6587\u4ef6\u8def\u5f84\n * [ssl_cert](Server_settings/Searchd.md#ssl_cert) - \u670d\u52a1\u5668\u7684 SSL \u8bc1\u4e66\u8def\u5f84\n * [ssl_key](Server_settings/Searchd.md#ssl_key) - \u670d\u52a1\u5668\u7684 SSL \u8bc1\u4e66\u5bc6\u94a5\u8def\u5f84\n * [subtree_docs_cache](Server_settings/Searchd.md#subtree_docs_cache) - \u6700\u5927\u516c\u5171\u5b50\u6811\u6587\u6863\u7f13\u5b58\u5927\u5c0f\n * [subtree_hits_cache](Server_settings/Searchd.md#subtree_hits_cache) - \u6bcf\u4e2a\u67e5\u8be2\u7684\u6700\u5927\u516c\u5171\u5b50\u6811\u547d\u4e2d\u7f13\u5b58\u5927\u5c0f\n * [timezone](Server_settings/Searchd.md#timezone) - \u65e5\u671f/\u65f6\u95f4\u76f8\u5173\u51fd\u6570\u4f7f\u7528\u7684\u65f6\u533a\n * [thread_stack](Server_settings/Searchd.md#thread_stack) - \u4efb\u52a1\u7684\u6700\u5927\u5806\u6808\u5927\u5c0f\n * [unlink_old](Server_settings/Searchd.md#unlink_old) - \u5728\u6210\u529f\u65cb\u8f6c\u65f6\u662f\u5426\u53d6\u6d88\u94fe\u63a5 .old \u8868\u526f\u672c\n * [watchdog](Server_settings/Searchd.md#watchdog) - \u662f\u5426\u542f\u7528\u6216\u7981\u7528 Manticore \u670d\u52a1\u5668\u770b\u95e8\u72d7", + "russian": "##### \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 searchd \u0432 \u0444\u0430\u0439\u043b\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438\n\u0414\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u044b \u0432 \u0441\u0435\u043a\u0446\u0438\u0438 `searchd {}` \u0444\u0430\u0439\u043b\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438:\n * [access_blob_attrs](Server_settings/Searchd.md#access_blob_attrs) - \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0441\u043f\u043e\u0441\u043e\u0431 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0444\u0430\u0439\u043b\u0443 blob-\u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u044b\n * [access_doclists](Server_settings/Searchd.md#access_doclists) - \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0441\u043f\u043e\u0441\u043e\u0431 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0444\u0430\u0439\u043b\u0443 doclists \u0442\u0430\u0431\u043b\u0438\u0446\u044b\n * [access_hitlists](Server_settings/Searchd.md#access_hitlists) - \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0441\u043f\u043e\u0441\u043e\u0431 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0444\u0430\u0439\u043b\u0443 hitlists \u0442\u0430\u0431\u043b\u0438\u0446\u044b\n * [access_plain_attrs](Server_settings/Searchd.md#access_plain_attrs) - \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0441\u043f\u043e\u0441\u043e\u0431 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043a \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u044b\n * [access_dict](Server_settings/Searchd.md#access_dict) - \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0441\u043f\u043e\u0441\u043e\u0431 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0444\u0430\u0439\u043b\u0443 \u0441\u043b\u043e\u0432\u0430\u0440\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u044b\n * [agent_connect_timeout](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent_connect_timeout) - \u0422\u0430\u0439\u043c\u0430\u0443\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u043c\u0443 \u0430\u0433\u0435\u043d\u0442\u0443\n * [agent_query_timeout](Searching/Options.md#agent_query_timeout) - \u0422\u0430\u0439\u043c\u0430\u0443\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043a \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u043c\u0443 \u0430\u0433\u0435\u043d\u0442\u0443\n * [agent_retry_count](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent_connect_timeout) - \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u043f\u044b\u0442\u043e\u043a \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043a \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u043c \u0430\u0433\u0435\u043d\u0442\u0430\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0435\u0434\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 Manticore\n * [agent_retry_delay](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent) - \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0443 \u043f\u0435\u0440\u0435\u0434 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0439 \u043f\u043e\u043f\u044b\u0442\u043a\u043e\u0439 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043a \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u043c\u0443 \u0430\u0433\u0435\u043d\u0442\u0443 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441\u0431\u043e\u044f\n * [attr_flush_period](Data_creation_and_modification/Updating_documents/UPDATE.md#attr_flush_period) - \u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u043f\u0435\u0440\u0438\u043e\u0434 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043c\u0435\u0436\u0434\u0443 \u0441\u0431\u0440\u043e\u0441\u043e\u043c \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u043d\u0430 \u0434\u0438\u0441\u043a\n * [binlog_flush](Server_settings/Searchd.md#binlog_flush) - \u0420\u0435\u0436\u0438\u043c \u0441\u0431\u0440\u043e\u0441\u0430/\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0439 \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0433\u043e \u043b\u043e\u0433\u0430\n * [binlog_max_log_size](Server_settings/Searchd.md#binlog_max_log_size) - \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0444\u0430\u0439\u043b\u0430 \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0433\u043e \u043b\u043e\u0433\u0430\n * [binlog_common](Logging/Binary_logging.md#Binary-logging-strategies) - \u041e\u0431\u0449\u0438\u0439 \u0444\u0430\u0439\u043b \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0433\u043e \u043b\u043e\u0433\u0430 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0442\u0430\u0431\u043b\u0438\u0446\n * [binlog_filename_digits](Logging/Binary_logging.md#Log-files) - \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0446\u0438\u0444\u0440 \u0432 \u0438\u043c\u0435\u043d\u0438 \u0444\u0430\u0439\u043b\u0430 \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0433\u043e \u043b\u043e\u0433\u0430\n * [binlog_flush](Logging/Binary_logging.md#Binary-flushing-strategies) - \u0421\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044f \u0441\u0431\u0440\u043e\u0441\u0430 \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0433\u043e \u043b\u043e\u0433\u0430\n * [binlog_path](Server_settings/Searchd.md#binlog_path) - \u041f\u0443\u0442\u044c \u043a \u0444\u0430\u0439\u043b\u0430\u043c \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0433\u043e \u043b\u043e\u0433\u0430\n * [client_timeout](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent) - \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c\u0438 \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u044b\u0445 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439\n * [collation_libc_locale](Server_settings/Searchd.md#collation_libc_locale) - \u041b\u043e\u043a\u0430\u043b\u044c libc \u0441\u0435\u0440\u0432\u0435\u0440\u0430\n * [collation_server](Server_settings/Searchd.md#collation_server) - \u041a\u043e\u043b\u043b\u0430\u0446\u0438\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e\n * [data_dir](Server_settings/Searchd.md#data_dir) - \u041f\u0443\u0442\u044c \u043a \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0443 \u0434\u0430\u043d\u043d\u044b\u0445, \u0433\u0434\u0435 Manticore \u0445\u0440\u0430\u043d\u0438\u0442 \u0432\u0441\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 ([RT-\u0440\u0435\u0436\u0438\u043c](Creating_a_table/Local_tables.md#Online-schema-management-%28RT-mode%29))\n * [diskchunk_flush_write_timeout](Server_settings/Searchd.md#diskchunk_flush_write_timeout) - \u0422\u0430\u0439\u043c\u0430\u0443\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0441\u0431\u0440\u043e\u0441\u0430 RAM-\u0447\u0430\u043d\u043a\u0430, \u0435\u0441\u043b\u0438 \u0432 \u043d\u0435\u0433\u043e \u043d\u0435 \u0431\u044b\u043b\u043e \u0437\u0430\u043f\u0438\u0441\u0435\u0439\n * [diskchunk_flush_search_timeout](Server_settings/Searchd.md#diskchunk_flush_search_timeout) - \u0422\u0430\u0439\u043c\u0430\u0443\u0442 \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0441\u0431\u0440\u043e\u0441\u0430 RAM-\u0447\u0430\u043d\u043a\u0430, \u0435\u0441\u043b\u0438 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u043d\u0435 \u0431\u044b\u043b\u043e \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432\n * [docstore_cache_size](Server_settings/Searchd.md#docstore_cache_size) - \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0431\u043b\u043e\u043a\u043e\u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0438\u0437 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u0445\u0440\u0430\u043d\u044f\u0449\u0438\u0445\u0441\u044f \u0432 \u043f\u0430\u043c\u044f\u0442\u0438\n * [expansion_limit](Creating_a_table/NLP_and_tokenization/Wildcard_searching_settings.md#expansion_limit) - \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0445 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0441\u043b\u043e\u0432 \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u0441\u0438\u043c\u0432\u043e\u043b\u0430 \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438\n * [grouping_in_utc](Server_settings/Searchd.md#grouping_in_utc) - \u0412\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0447\u0430\u0441\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u044f\u0441\u0430 UTC \u0434\u043b\u044f \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u043f\u043e\u043b\u0435\u0439\n * [ha_period_karma](Server_settings/Searchd.md#ha_period_karma) - \u0420\u0430\u0437\u043c\u0435\u0440 \u043e\u043a\u043d\u0430 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438 \u0437\u0435\u0440\u043a\u0430\u043b \u0430\u0433\u0435\u043d\u0442\u043e\u0432\n * [ha_ping_interval](Creating_a_cluster/Remote_nodes/Load_balancing.md#ha_ping_interval) - \u0418\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u043c\u0435\u0436\u0434\u0443 \u043f\u0438\u043d\u0433\u0430\u043c\u0438 \u0437\u0435\u0440\u043a\u0430\u043b \u0430\u0433\u0435\u043d\u0442\u043e\u0432\n * [hostname_lookup](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent) - \u0421\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u043c\u0435\u043d \u0445\u043e\u0441\u0442\u043e\u0432\n * [jobs_queue_size](Server_settings/Searchd.md#jobs_queue_size) - \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \"\u0437\u0430\u0434\u0430\u043d\u0438\u0439\", \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u043d\u044b\u0445 \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\n * [join_batch_size](Searching/Joining.md#Join-batching) - \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0440 \u043f\u0430\u043a\u0435\u0442\u0430 \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0442\u0430\u0431\u043b\u0438\u0446 \u0434\u043b\u044f \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0430\u043c\u044f\u0442\u0438\n * [join_cache_size](Searching/Joining.md#Join-caching) - \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0440 \u043a\u044d\u0448\u0430 \u0434\u043b\u044f \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 JOIN\n * [kibana_version_string](Server_settings/Searchd.md#kibana_version_string) \u2013 \u0421\u0442\u0440\u043e\u043a\u0430 \u0432\u0435\u0440\u0441\u0438\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u0430\u044f \u0432 \u043e\u0442\u0432\u0435\u0442 \u043d\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u044b Kibana\n * [listen](Server_settings/Searchd.md#listen) - \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 IP-\u0430\u0434\u0440\u0435\u0441 \u0438 \u043f\u043e\u0440\u0442 \u0438\u043b\u0438 \u043f\u0443\u0442\u044c \u043a Unix-\u0434\u043e\u043c\u0435\u043d\u043d\u043e\u043c\u0443 \u0441\u043e\u043a\u0435\u0442\u0443, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u0441\u043b\u0443\u0448\u0430\u0442\u044c searchd\n * [listen_backlog](Server_settings/Searchd.md#listen_backlog) - \u0420\u0430\u0437\u043c\u0435\u0440 \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u043f\u0440\u043e\u0441\u043b\u0443\u0448\u0438\u0432\u0430\u043d\u0438\u044f TCP\n * [listen_tfo](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent) - \u0412\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0444\u043b\u0430\u0433 TCP_FASTOPEN \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0441\u043b\u0443\u0448\u0430\u0442\u0435\u043b\u0435\u0439\n * [log](Server_settings/Searchd.md#log) - \u041f\u0443\u0442\u044c \u043a \u0444\u0430\u0439\u043b\u0443 \u0436\u0443\u0440\u043d\u0430\u043b\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 Manticore\n * [max_batch_queries](Server_settings/Searchd.md#max_batch_queries) - \u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0435\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0432 \u043f\u0430\u043a\u0435\u0442\u0435\n * [max_connections](Server_settings/Searchd.md#max_connections) - \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439\n * [merge_chunks_per_job](Server_settings/Searchd.md#merge_chunks_per_job) - \u0421\u043a\u043e\u043b\u044c\u043a\u043e RT-\u0434\u0438\u0441\u043a\u043e\u0432\u044b\u0445 \u0447\u0430\u043d\u043a\u043e\u0432 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u0442\u0441\u044f \u0437\u0430 \u043e\u0434\u043d\u0443 \u0437\u0430\u0434\u0430\u0447\u0443 OPTIMIZE\n * [max_filters](Server_settings/Searchd.md#max_filters) - \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432 \u043d\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\n * [max_filter_values](Server_settings/Searchd.md#max_filter_values) - \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043d\u0430 \u0444\u0438\u043b\u044c\u0442\u0440\n * [max_open_files](Server_settings/Searchd.md#max_open_files) - \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0444\u0430\u0439\u043b\u043e\u0432, \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c\n * [max_packet_size](Server_settings/Searchd.md#max_packet_size) - \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e \u043f\u0430\u043a\u0435\u0442\u0430\n * [mysql_version_string](Server_settings/Searchd.md#mysql_version_string) - \u0421\u0442\u0440\u043e\u043a\u0430 \u0432\u0435\u0440\u0441\u0438\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u0430\u044f \u043f\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443 MySQL\n * [net_throttle_accept](Server_settings/Searchd.md#net_throttle_accept) - \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430\n * [net_throttle_action](Server_settings/Searchd.md#net_throttle_action) - \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430\n * [net_wait_tm](Server_settings/Searchd.md#net_wait_tm) - \u0423\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u043e\u043c \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430 \u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430\n * [net_workers](Server_settings/Searchd.md#net_workers) - \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u043f\u043e\u0442\u043e\u043a\u043e\u0432\n * [network_timeout](Server_settings/Searchd.md#network_timeout) - \u0421\u0435\u0442\u0435\u0432\u043e\u0439 \u0442\u0430\u0439\u043c\u0430\u0443\u0442 \u0434\u043b\u044f \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432\n * [node_address](Server_settings/Searchd.md#node_address) - \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0430\u0434\u0440\u0435\u0441 \u0443\u0437\u043b\u0430\n * [persistent_connections_limit](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent) - \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u044b\u0445 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439 \u0441 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u043c\u0438 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u044b\u043c\u0438 \u0430\u0433\u0435\u043d\u0442\u0430\u043c\u0438\n * [parallel_chunk_merges](Server_settings/Searchd.md#parallel_chunk_merges) - \u0421\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043b\u0438\u044f\u043d\u0438\u0439 RT-\u0434\u0438\u0441\u043a\u043e\u0432\u044b\u0445 \u0447\u0430\u043d\u043a\u043e\u0432 \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u0432\u043e \u0432\u0440\u0435\u043c\u044f OPTIMIZE\n * [pid_file](Server_settings/Searchd.md#pid_file) - \u041f\u0443\u0442\u044c \u043a pid-\u0444\u0430\u0439\u043b\u0443 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 Manticore\n * [preopen_tables](Server_settings/Searchd.md#preopen_tables) - \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442, \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043b\u0438 \u043f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435\n * [pseudo_sharding](Server_settings/Searchd.md#pseudo_sharding) - \u0412\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043f\u0441\u0435\u0432\u0434\u043e\u0448\u0430\u0440\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043a \u043e\u0431\u044b\u0447\u043d\u044b\u043c \u0438 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u043c\n * [qcache_max_bytes](Server_settings/Searchd.md#qcache_max_bytes) - \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043c \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438, \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u0434\u043b\u044f \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043d\u0430\u0431\u043e\u0440\u043e\u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432\n * [qcache_thresh_msec](Server_settings/Searchd.md#qcache_thresh_msec) - \u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0440\u043e\u0433 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0434\u043b\u044f \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u0430\n * [qcache_ttl_sec](Server_settings/Searchd.md#qcache_ttl_sec) - \u0421\u0440\u043e\u043a \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043d\u0430\u0431\u043e\u0440\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432\n * [query_log](Server_settings/Searchd.md#query_log) - \u041f\u0443\u0442\u044c \u043a \u0444\u0430\u0439\u043b\u0443 \u0436\u0443\u0440\u043d\u0430\u043b\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432\n * [query_log_format](Server_settings/Searchd.md#query_log_format) - \u0424\u043e\u0440\u043c\u0430\u0442 \u0436\u0443\u0440\u043d\u0430\u043b\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432\n * [query_log_min_msec](Server_settings/Searchd.md#query_log_min_msec) - \u041f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0431\u044b\u0441\u0442\u0440\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432\n * [query_log_mode](Server_settings/Searchd.md#query_log_mode) - \u0420\u0435\u0436\u0438\u043c \u043f\u0440\u0430\u0432 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0444\u0430\u0439\u043b\u0443 \u0436\u0443\u0440\u043d\u0430\u043b\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432\n * [read_buffer_docs](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#read_buffer_docs) - \u0420\u0430\u0437\u043c\u0435\u0440 \u0431\u0443\u0444\u0435\u0440\u0430 \u0447\u0442\u0435\u043d\u0438\u044f \u043d\u0430 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e \u0434\u043b\u044f \u0441\u043f\u0438\u0441\u043a\u043e\u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432\n * [read_buffer_hits](Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#read_buffer_docs) - \u0420\u0430\u0437\u043c\u0435\u0440 \u0431\u0443\u0444\u0435\u0440\u0430 \u0447\u0442\u0435\u043d\u0438\u044f \u043d\u0430 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e \u0434\u043b\u044f \u0441\u043f\u0438\u0441\u043a\u043e\u0432 \u043f\u043e\u043f\u0430\u0434\u0430\u043d\u0438\u0439\n * [read_unhinted](Server_settings/Searchd.md#read_unhinted) - \u0420\u0430\u0437\u043c\u0435\u0440 \u0447\u0442\u0435\u043d\u0438\u044f \u0431\u0435\u0437 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043e\u043a\n * [rt_flush_period](Server_settings/Searchd.md#rt_flush_period) - \u041a\u0430\u043a \u0447\u0430\u0441\u0442\u043e Manticore \u0441\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u0442 RAM-\u0447\u0430\u043d\u043a\u0438 \u0442\u0430\u0431\u043b\u0438\u0446 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043d\u0430 \u0434\u0438\u0441\u043a\n * [rt_merge_iops](Server_settings/Searchd.md#rt_merge_iops) - \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0432\u0432\u043e\u0434\u0430-\u0432\u044b\u0432\u043e\u0434\u0430 (\u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443), \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043f\u043e\u0442\u043e\u043a\u0443 \u0441\u043b\u0438\u044f\u043d\u0438\u044f \u0447\u0430\u043d\u043a\u043e\u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438\n * [rt_merge_maxiosize](Server_settings/Searchd.md#rt_merge_maxiosize) - \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0432\u0432\u043e\u0434\u0430-\u0432\u044b\u0432\u043e\u0434\u0430, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043f\u043e\u0442\u043e\u043a\u0443 \u0441\u043b\u0438\u044f\u043d\u0438\u044f \u0447\u0430\u043d\u043a\u043e\u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438\n * [seamless_rotate](Server_settings/Searchd.md#seamless_rotate) - \u041f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0437\u0430\u0432\u0438\u0441\u0430\u043d\u0438\u044f searchd \u043f\u0440\u0438 \u0440\u043e\u0442\u0430\u0446\u0438\u0438 \u0442\u0430\u0431\u043b\u0438\u0446 \u0441 \u043e\u0433\u0440\u043e\u043c\u043d\u044b\u043c\u0438 \u043e\u0431\u044a\u0435\u043c\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\n * [secondary_indexes](Server_settings/Searchd.md#secondary_indexes) - \u0412\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u0442\u043e\u0440\u0438\u0447\u043d\u044b\u0445 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432\n * [server_id](Server_settings/Searchd.md#server_id) - \u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0439 \u043a\u0430\u043a \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\n * [shutdown_timeout](Server_settings/Searchd.md#shutdown_timeout) - \u0422\u0430\u0439\u043c\u0430\u0443\u0442 `--stopwait` \u0434\u043b\u044f searchd\n * [shutdown_token](Server_settings/Searchd.md#shutdown_token) - SHA1-\u0445\u044d\u0448 \u043f\u0430\u0440\u043e\u043b\u044f, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0433\u043e \u0434\u043b\u044f \u0432\u044b\u0437\u043e\u0432\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u044b `shutdown` \u0438\u0437 VIP SQL-\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f\n * [skiplist_cache_size](Server_settings/Searchd.md#skiplist_cache_size) - \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u043a\u044d\u0448\u0430 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 \u0434\u043b\u044f \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0441\u043f\u0438\u0441\u043a\u043e\u0432 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\n * [snippets_file_prefix](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent) - \u041f\u0440\u0435\u0444\u0438\u043a\u0441, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0439 \u043a \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u043c \u0438\u043c\u0435\u043d\u0430\u043c \u0444\u0430\u0439\u043b\u043e\u0432 \u043f\u0440\u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0441\u043d\u0438\u043f\u043f\u0435\u0442\u043e\u0432 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 `load_files`\n * [sphinxql_state](Server_settings/Searchd.md#sphinxql_state) - \u041f\u0443\u0442\u044c \u043a \u0444\u0430\u0439\u043b\u0443, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 SQL\n * [sphinxql_timeout](Server_settings/Searchd.md#sphinxql_timeout) - \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c\u0438 \u043e\u0442 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 MySQL\n * [ssl_ca](Server_settings/Searchd.md#ssl_ca) - \u041f\u0443\u0442\u044c \u043a \u0444\u0430\u0439\u043b\u0443 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 \u0446\u0435\u043d\u0442\u0440\u0430 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 SSL\n * [ssl_cert](Server_settings/Searchd.md#ssl_cert) - \u041f\u0443\u0442\u044c \u043a SSL-\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0443 \u0441\u0435\u0440\u0432\u0435\u0440\u0430\n * [ssl_key](Server_settings/Searchd.md#ssl_key) - \u041f\u0443\u0442\u044c \u043a \u043a\u043b\u044e\u0447\u0443 SSL-\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430\n * [subtree_docs_cache](Server_settings/Searchd.md#subtree_docs_cache) - \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u043a\u044d\u0448\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043e\u0431\u0449\u0435\u0433\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0435\u0432\u0430\n * [subtree_hits_cache](Server_settings/Searchd.md#subtree_hits_cache) - \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u043a\u044d\u0448\u0430 \u043f\u043e\u043f\u0430\u0434\u0430\u043d\u0438\u0439 \u043e\u0431\u0449\u0435\u0433\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0435\u0432\u0430, \u043d\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\n * [timezone](Server_settings/Searchd.md#timezone) - \u0427\u0430\u0441\u043e\u0432\u043e\u0439 \u043f\u043e\u044f\u0441, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u043c\u0438 \u0441 \u0434\u0430\u0442\u043e\u0439/\u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c\n * [thread_stack](Server_settings/Searchd.md#thread_stack) - \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0441\u0442\u0435\u043a\u0430 \u0434\u043b\u044f \u0437\u0430\u0434\u0430\u043d\u0438\u044f\n * [unlink_old](Server_settings/Searchd.md#unlink_old) - \u0423\u0434\u0430\u043b\u044f\u0442\u044c \u043b\u0438 \u043a\u043e\u043f\u0438\u0438 \u0442\u0430\u0431\u043b\u0438\u0446 .old \u043f\u0440\u0438 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0439 \u0440\u043e\u0442\u0430\u0446\u0438\u0438\n * [watchdog](Server_settings/Searchd.md#watchdog) - \u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0438\u043b\u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0441\u0442\u043e\u0440\u043e\u0436\u0435\u0432\u043e\u0439 \u0442\u0430\u0439\u043c\u0435\u0440 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 Manticore" + }, + "is_code_or_comment": false, + "model": "deepseek/deepseek-v3.2", + "updated_at": 1773763347 } } \ No newline at end of file diff --git a/.translation-cache/Server_settings/Common.md.json b/.translation-cache/Server_settings/Common.md.json index 24bbc50837..6b254e6eb4 100644 --- a/.translation-cache/Server_settings/Common.md.json +++ b/.translation-cache/Server_settings/Common.md.json @@ -10,8 +10,20 @@ "updated_at": 1766339788 }, "__meta": { - "source_text": "# Section \"Common\" in configuration\n\nlemmatizer_base\n----------------\n\nThe `lemmatizer_base` is an optional configuration directive that specifies the base path for lemmatizer dictionaries. The default path is `/usr/share/manticore`\n\nThe lemmatizer implementation in Manticore Search (see [Morphology](../Creating_a_table/NLP_and_tokenization/Morphology.md) to learn what lemmatizers are) is dictionary-driven and requires specific dictionary files for different languages. These files can be downloaded from the Manticore website ().\n\nExample:\n\n```ini\nlemmatizer_base = /usr/share/manticore/\n```\n\nprogressive_merge\n------------------\n\nThe progressive_merge is a configuration directive that, when enabled, merges real-time table disk chunks from smaller to larger ones. This approach speeds up the merging process and reduces read/write amplification. By default, this setting is enabled. If disabled, the chunks are merged in the order they were created.\n\njson_autoconv_keynames\n------------------------\n\nThe json_autoconv_keynames is an optional configuration directive that determines if and how to auto-convert key names within JSON attributes. The known value is 'lowercase'. By default, this setting is unspecified (meaning no conversion occurs).\n\nWhen set to lowercase, key names within JSON attributes will be automatically converted to lowercase during indexing. This conversion applies to JSON attributes from all data sources, including SQL and XMLpipe2.\n\nExample:\n\n```ini\njson_autoconv_keynames = lowercase\n```\n\njson_autoconv_numbers\n-----------------------\n\nThe json_autoconv_numbers is an optional configuration directive that determines whether to automatically detect and convert JSON strings that represent numbers into numeric attributes. The default value is 0 (do not convert strings into numbers).\n\nWhen this option is set to 1, values such as \"1234\" will be indexed as numbers instead of strings. If the option is set to 0, such values will be indexed as strings. This conversion applies to JSON attributes from all data sources, including SQL and XMLpipe2.\n\nExample:\n\n```ini\njson_autoconv_numbers = 1\n```\n\non_json_attr_error\n---------------------\n\non_json_attr_error is an optional configuration directive that specifies the action to take if JSON format errors are found. The default value is `ignore_attr`(ignore errors). This setting applies only to `sql_attr_json` attributes.\n\nBy default, JSON format errors are ignored (`ignore_attr`), and the indexer tool will show a warning. Setting this option to `fail_index` will cause indexing to fail at the first JSON format error.\n\nExample:\n\n```ini\non_json_attr_error = ignore_attr\n```\n\nplugin_dir\n-----------\n\nThe plugin_dir is an optional configuration directive that specifies the trusted location for dynamic libraries (UDFs). The default path is `/usr/local/lib/manticore/`.\n\nThis directive sets the trusted directory from which the [UDF libraries](../Extensions/UDFs_and_Plugins/UDF.md) can be loaded.\n\nExample:\n\n```ini\nplugin_dir = /usr/local/lib/manticore/\n```\n\n\n", - "updated_at": 1768530797, - "source_md5": "7696e06cbe7fa349d75d893e3c2594a1" + "source_text": "# Section \"Common\" in configuration\n\nlemmatizer_base\n----------------\n\nThe `lemmatizer_base` is an optional configuration directive that specifies the base path for lemmatizer dictionaries. The default path is `/usr/share/manticore`\n\nThe lemmatizer implementation in Manticore Search (see [Morphology](../Creating_a_table/NLP_and_tokenization/Morphology.md) to learn what lemmatizers are) is dictionary-driven and requires specific dictionary files for different languages. These files can be downloaded from the Manticore website ().\n\nExample:\n\n```ini\nlemmatizer_base = /usr/share/manticore/\n```\n\nprogressive_merge\n------------------\n\nThe progressive_merge is a configuration directive that, when enabled, merges real-time table disk chunks from smaller to larger ones. This approach speeds up the merging process and reduces read/write amplification. This setting is always enabled, and left in configuration only for backward compatibility.\n\njson_autoconv_keynames\n------------------------\n\nThe json_autoconv_keynames is an optional configuration directive that determines if and how to auto-convert key names within JSON attributes. The known value is 'lowercase'. By default, this setting is unspecified (meaning no conversion occurs).\n\nWhen set to lowercase, key names within JSON attributes will be automatically converted to lowercase during indexing. This conversion applies to JSON attributes from all data sources, including SQL and XMLpipe2.\n\nExample:\n\n```ini\njson_autoconv_keynames = lowercase\n```\n\njson_autoconv_numbers\n-----------------------\n\nThe json_autoconv_numbers is an optional configuration directive that determines whether to automatically detect and convert JSON strings that represent numbers into numeric attributes. The default value is 0 (do not convert strings into numbers).\n\nWhen this option is set to 1, values such as \"1234\" will be indexed as numbers instead of strings. If the option is set to 0, such values will be indexed as strings. This conversion applies to JSON attributes from all data sources, including SQL and XMLpipe2.\n\nExample:\n\n```ini\njson_autoconv_numbers = 1\n```\n\non_json_attr_error\n---------------------\n\non_json_attr_error is an optional configuration directive that specifies the action to take if JSON format errors are found. The default value is `ignore_attr`(ignore errors). This setting applies only to `sql_attr_json` attributes.\n\nBy default, JSON format errors are ignored (`ignore_attr`), and the indexer tool will show a warning. Setting this option to `fail_index` will cause indexing to fail at the first JSON format error.\n\nExample:\n\n```ini\non_json_attr_error = ignore_attr\n```\n\nplugin_dir\n-----------\n\nThe plugin_dir is an optional configuration directive that specifies the trusted location for dynamic libraries (UDFs). The default path is `/usr/local/lib/manticore/`.\n\nThis directive sets the trusted directory from which the [UDF libraries](../Extensions/UDFs_and_Plugins/UDF.md) can be loaded.\n\nExample:\n\n```ini\nplugin_dir = /usr/local/lib/manticore/\n```\n\n\n", + "updated_at": 1773763249, + "source_md5": "45c4c6cecea6e9ebe6fe66967a31cbe2", + "source_snapshot": "/tmp/translator-source-87XlNp", + "target_snapshot": "/tmp/translator-target-R7s9QR" + }, + "6d7161c08f1da63cd38cc0e5a42e526cc0c9baa4eec6275537f7e2ba6c20c374": { + "original": "# Section \"Common\" in configuration\n\nlemmatizer_base\n----------------\n\nThe `lemmatizer_base` is an optional configuration directive that specifies the base path for lemmatizer dictionaries. The default path is `/usr/share/manticore`\n\nThe lemmatizer implementation in Manticore Search (see [Morphology](../Creating_a_table/NLP_and_tokenization/Morphology.md) to learn what lemmatizers are) is dictionary-driven and requires specific dictionary files for different languages. These files can be downloaded from the Manticore website ().\n\nExample:\n\nCODE_BLOCK_0\n\nprogressive_merge\n------------------\n\nThe progressive_merge is a configuration directive that, when enabled, merges real-time table disk chunks from smaller to larger ones. This approach speeds up the merging process and reduces read/write amplification. This setting is always enabled, and left in configuration only for backward compatibility.\n\njson_autoconv_keynames\n------------------------\n\nThe json_autoconv_keynames is an optional configuration directive that determines if and how to auto-convert key names within JSON attributes. The known value is 'lowercase'. By default, this setting is unspecified (meaning no conversion occurs).\n\nWhen set to lowercase, key names within JSON attributes will be automatically converted to lowercase during indexing. This conversion applies to JSON attributes from all data sources, including SQL and XMLpipe2.\n\nExample:\n\nCODE_BLOCK_1\n\njson_autoconv_numbers\n-----------------------\n\nThe json_autoconv_numbers is an optional configuration directive that determines whether to automatically detect and convert JSON strings that represent numbers into numeric attributes. The default value is 0 (do not convert strings into numbers).\n\nWhen this option is set to 1, values such as \"1234\" will be indexed as numbers instead of strings. If the option is set to 0, such values will be indexed as strings. This conversion applies to JSON attributes from all data sources, including SQL and XMLpipe2.\n\nExample:\n\nCODE_BLOCK_2\n\non_json_attr_error\n---------------------\n\non_json_attr_error is an optional configuration directive that specifies the action to take if JSON format errors are found. The default value is `ignore_attr`(ignore errors). This setting applies only to `sql_attr_json` attributes.\n\nBy default, JSON format errors are ignored (`ignore_attr`), and the indexer tool will show a warning. Setting this option to `fail_index` will cause indexing to fail at the first JSON format error.\n\nExample:\n\nCODE_BLOCK_3\n\nplugin_dir\n-----------\n\nThe plugin_dir is an optional configuration directive that specifies the trusted location for dynamic libraries (UDFs). The default path is `/usr/local/lib/manticore/`.\n\nThis directive sets the trusted directory from which the [UDF libraries](../Extensions/UDFs_and_Plugins/UDF.md) can be loaded.\n\nExample:\n\nCODE_BLOCK_4\n\n\n", + "translations": { + "russian": "# \u0421\u0435\u043a\u0446\u0438\u044f \"Common\" \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438\n\nlemmatizer_base\n----------------\n\n`lemmatizer_base` \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u043e\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u043f\u0443\u0442\u044c \u0434\u043b\u044f \u0441\u043b\u043e\u0432\u0430\u0440\u0435\u0439 \u043b\u0435\u043c\u043c\u0430\u0442\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u0432. \u041f\u0443\u0442\u044c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u2014 `/usr/share/manticore`.\n\n\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043b\u0435\u043c\u043c\u0430\u0442\u0438\u0437\u0430\u0442\u043e\u0440\u0430 \u0432 Manticore Search (\u0441\u043c. [\u041c\u043e\u0440\u0444\u043e\u043b\u043e\u0433\u0438\u044f](../Creating_a_table/NLP_and_tokenization/Morphology.md), \u0447\u0442\u043e\u0431\u044b \u0443\u0437\u043d\u0430\u0442\u044c, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u043b\u0435\u043c\u043c\u0430\u0442\u0438\u0437\u0430\u0442\u043e\u0440\u044b) \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0430 \u043d\u0430 \u0441\u043b\u043e\u0432\u0430\u0440\u044f\u0445 \u0438 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0441\u043b\u043e\u0432\u0430\u0440\u0435\u0439 \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u043e\u0432. \u042d\u0442\u0438 \u0444\u0430\u0439\u043b\u044b \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0441 \u0441\u0430\u0439\u0442\u0430 Manticore ().\n\n\u041f\u0440\u0438\u043c\u0435\u0440:\n\nCODE_BLOCK_0\n\nprogressive_merge\n------------------\n\n`progressive_merge` \u2014 \u044d\u0442\u043e \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u0442 \u0434\u0438\u0441\u043a\u043e\u0432\u044b\u0435 \u0447\u0430\u043d\u043a\u0438 \u0442\u0430\u0431\u043b\u0438\u0446 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043e\u0442 \u043c\u0435\u043d\u044c\u0448\u0438\u0445 \u043a \u0431\u043e\u043b\u044c\u0448\u0438\u043c. \u042d\u0442\u043e\u0442 \u043f\u043e\u0434\u0445\u043e\u0434 \u0443\u0441\u043a\u043e\u0440\u044f\u0435\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0438 \u0441\u043d\u0438\u0436\u0430\u0435\u0442 \u0443\u0441\u0438\u043b\u0435\u043d\u0438\u0435 \u0447\u0442\u0435\u043d\u0438\u044f/\u0437\u0430\u043f\u0438\u0441\u0438. \u042d\u0442\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u0438 \u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438.\n\njson_autoconv_keynames\n------------------------\n\n`json_autoconv_keynames` \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u043e\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442, \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0438 \u043a\u0430\u043a \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0432\u043d\u0443\u0442\u0440\u0438 JSON \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432. \u0415\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u2014 'lowercase'. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u044d\u0442\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u0430 (\u0447\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f).\n\n\u041a\u043e\u0433\u0434\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 'lowercase', \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0432\u043d\u0443\u0442\u0440\u0438 JSON \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u0431\u0443\u0434\u0443\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u044b \u0432 \u043d\u0438\u0436\u043d\u0438\u0439 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0446\u0438\u0438. \u042d\u0442\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043a JSON \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430\u043c \u0438\u0437 \u0432\u0441\u0435\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445, \u0432\u043a\u043b\u044e\u0447\u0430\u044f SQL \u0438 XMLpipe2.\n\n\u041f\u0440\u0438\u043c\u0435\u0440:\n\nCODE_BLOCK_1\n\njson_autoconv_numbers\n-----------------------\n\n`json_autoconv_numbers` \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u043e\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442, \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0432\u0430\u0442\u044c \u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c JSON \u0441\u0442\u0440\u043e\u043a\u0438, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 \u0447\u0438\u0441\u043b\u0430, \u0432 \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b. \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u2014 0 (\u043d\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 \u0447\u0438\u0441\u043b\u0430).\n\n\u041a\u043e\u0433\u0434\u0430 \u044d\u0442\u0430 \u043e\u043f\u0446\u0438\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430 \u0432 1, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a \"1234\" \u0431\u0443\u0434\u0443\u0442 \u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u0447\u0438\u0441\u043b\u0430 \u0432\u043c\u0435\u0441\u0442\u043e \u0441\u0442\u0440\u043e\u043a. \u0415\u0441\u043b\u0438 \u043e\u043f\u0446\u0438\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430 \u0432 0, \u0442\u0430\u043a\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0443\u0442 \u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u0441\u0442\u0440\u043e\u043a\u0438. \u042d\u0442\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043a JSON \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430\u043c \u0438\u0437 \u0432\u0441\u0435\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445, \u0432\u043a\u043b\u044e\u0447\u0430\u044f SQL \u0438 XMLpipe2.\n\n\u041f\u0440\u0438\u043c\u0435\u0440:\n\nCODE_BLOCK_2\n\non_json_attr_error\n---------------------\n\n`on_json_attr_error` \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u043e\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043f\u0440\u0435\u0434\u043f\u0440\u0438\u043d\u044f\u0442\u044c \u043f\u0440\u0438 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u0438 \u043e\u0448\u0438\u0431\u043e\u043a \u0444\u043e\u0440\u043c\u0430\u0442\u0430 JSON. \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u2014 `ignore_attr` (\u0438\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438). \u042d\u0442\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043a \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430\u043c `sql_attr_json`.\n\n\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043e\u0448\u0438\u0431\u043a\u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0430 JSON \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u044e\u0442\u0441\u044f (`ignore_attr`), \u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0446\u0438\u0438 \u043f\u043e\u043a\u0430\u0436\u0435\u0442 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435. \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u044d\u0442\u043e\u0439 \u043e\u043f\u0446\u0438\u0438 \u0432 `fail_index` \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u0442 \u043a \u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0446\u0438\u044f \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u0441\u044f \u043d\u0435\u0443\u0434\u0430\u0447\u0435\u0439 \u043f\u0440\u0438 \u043f\u0435\u0440\u0432\u043e\u0439 \u043e\u0448\u0438\u0431\u043a\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u0430 JSON.\n\n\u041f\u0440\u0438\u043c\u0435\u0440:\n\nCODE_BLOCK_3\n\nplugin_dir\n-----------\n\n`plugin_dir` \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u043e\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0434\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u043e\u0435 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a (UDF). \u041f\u0443\u0442\u044c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u2014 `/usr/local/lib/manticore/`.\n\n\u042d\u0442\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u0430 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0434\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u0439 \u043a\u0430\u0442\u0430\u043b\u043e\u0433, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u044b [\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 UDF](../Extensions/UDFs_and_Plugins/UDF.md).\n\n\u041f\u0440\u0438\u043c\u0435\u0440:\n\nCODE_BLOCK_4\n\n\n", + "chinese": "# \u914d\u7f6e\u4e2d\"Common\"\u90e8\u5206\n\nlemmatizer_base\n----------------\n\n`lemmatizer_base` \u662f\u4e00\u4e2a\u53ef\u9009\u7684\u914d\u7f6e\u6307\u4ee4\uff0c\u7528\u4e8e\u6307\u5b9a\u8bcd\u5f62\u8fd8\u539f\u8bcd\u5178\u7684\u57fa\u7840\u8def\u5f84\u3002\u9ed8\u8ba4\u8def\u5f84\u662f `/usr/share/manticore`\n\nManticore Search \u7684\u8bcd\u5f62\u8fd8\u539f\u5b9e\u73b0\uff08\u53c2\u89c1 [Morphology](../Creating_a_table/NLP_and_tokenization/Morphology.md) \u4e86\u89e3\u4ec0\u4e48\u662f\u8bcd\u5f62\u8fd8\u539f\u5668\uff09\u662f\u57fa\u4e8e\u8bcd\u5178\u7684\uff0c\u9700\u8981\u4e0d\u540c\u8bed\u8a00\u7684\u7279\u5b9a\u8bcd\u5178\u6587\u4ef6\u3002\u8fd9\u4e9b\u6587\u4ef6\u53ef\u4ee5\u4ece Manticore \u5b98\u65b9\u7f51\u7ad9\u4e0b\u8f7d ().\n\n\u793a\u4f8b\uff1a\n\nCODE_BLOCK_0\n\nprogressive_merge\n------------------\n\nprogressive_merge \u662f\u4e00\u4e2a\u914d\u7f6e\u6307\u4ee4\uff0c\u542f\u7528\u540e\u4f1a\u5c06\u5b9e\u65f6\u8868\u7684\u78c1\u76d8\u5757\u4ece\u8f83\u5c0f\u7684\u5408\u5e76\u5230\u8f83\u5927\u7684\u5757\u4e2d\u3002\u8fd9\u79cd\u65b9\u6cd5\u52a0\u5feb\u4e86\u5408\u5e76\u8fc7\u7a0b\u5e76\u51cf\u5c11\u4e86\u8bfb\u5199\u653e\u5927\u3002\u6b64\u8bbe\u7f6e\u59cb\u7ec8\u542f\u7528\uff0c\u4ec5\u4fdd\u7559\u914d\u7f6e\u4e2d\u4ee5\u4fdd\u6301\u5411\u540e\u517c\u5bb9\u6027\u3002\n\njson_autoconv_keynames\n------------------------\n\njson_autoconv_keynames \u662f\u4e00\u4e2a\u53ef\u9009\u7684\u914d\u7f6e\u6307\u4ee4\uff0c\u7528\u4e8e\u786e\u5b9a\u662f\u5426\u4ee5\u53ca\u5982\u4f55\u81ea\u52a8\u8f6c\u6362 JSON \u5c5e\u6027\u4e2d\u7684\u952e\u540d\u3002\u5df2\u77e5\u7684\u503c\u662f 'lowercase'\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u6b64\u8bbe\u7f6e\u672a\u6307\u5b9a\uff08\u8868\u793a\u4e0d\u8fdb\u884c\u8f6c\u6362\uff09\u3002\n\n\u5f53\u8bbe\u7f6e\u4e3a lowercase \u65f6\uff0cJSON \u5c5e\u6027\u4e2d\u7684\u952e\u540d\u5728\u7d22\u5f15\u671f\u95f4\u4f1a\u81ea\u52a8\u8f6c\u6362\u4e3a\u5c0f\u5199\u3002\u6b64\u8f6c\u6362\u9002\u7528\u4e8e\u6240\u6709\u6570\u636e\u6e90\u7684 JSON \u5c5e\u6027\uff0c\u5305\u62ec SQL \u548c XMLpipe2\u3002\n\n\u793a\u4f8b\uff1a\n\nCODE_BLOCK_1\n\njson_autoconv_numbers\n-----------------------\n\njson_autoconv_numbers \u662f\u4e00\u4e2a\u53ef\u9009\u7684\u914d\u7f6e\u6307\u4ee4\uff0c\u7528\u4e8e\u786e\u5b9a\u662f\u5426\u81ea\u52a8\u68c0\u6d4b\u5e76\u8f6c\u6362\u8868\u793a\u6570\u5b57\u7684 JSON \u5b57\u7b26\u4e32\u4e3a\u6570\u5b57\u5c5e\u6027\u3002\u9ed8\u8ba4\u503c\u4e3a 0\uff08\u4e0d\u5c06\u5b57\u7b26\u4e32\u8f6c\u6362\u4e3a\u6570\u5b57\uff09\u3002\n\n\u5f53\u6b64\u9009\u9879\u8bbe\u7f6e\u4e3a 1 \u65f6\uff0c\"1234\" \u7b49\u503c\u5c06\u4f5c\u4e3a\u6570\u5b57\u800c\u4e0d\u662f\u5b57\u7b26\u4e32\u8fdb\u884c\u7d22\u5f15\u3002\u5982\u679c\u9009\u9879\u8bbe\u7f6e\u4e3a 0\uff0c\u6b64\u7c7b\u503c\u5c06\u4f5c\u4e3a\u5b57\u7b26\u4e32\u8fdb\u884c\u7d22\u5f15\u3002\u6b64\u8f6c\u6362\u9002\u7528\u4e8e\u6240\u6709\u6570\u636e\u6e90\u7684 JSON \u5c5e\u6027\uff0c\u5305\u62ec SQL \u548c XMLpipe2\u3002\n\n\u793a\u4f8b\uff1a\n\nCODE_BLOCK_2\n\non_json_attr_error\n---------------------\n\non_json_attr_error \u662f\u4e00\u4e2a\u53ef\u9009\u7684\u914d\u7f6e\u6307\u4ee4\uff0c\u7528\u4e8e\u6307\u5b9a\u5728\u53d1\u73b0 JSON \u683c\u5f0f\u9519\u8bef\u65f6\u91c7\u53d6\u7684\u64cd\u4f5c\u3002\u9ed8\u8ba4\u503c\u4e3a `ignore_attr`\uff08\u5ffd\u7565\u9519\u8bef\uff09\u3002\u6b64\u8bbe\u7f6e\u4ec5\u9002\u7528\u4e8e `sql_attr_json` \u5c5e\u6027\u3002\n\n\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0cJSON \u683c\u5f0f\u9519\u8bef\u4f1a\u88ab\u5ffd\u7565\uff08`ignore_attr`\uff09\uff0c\u7d22\u5f15\u5de5\u5177\u4f1a\u663e\u793a\u8b66\u544a\u3002\u5c06\u6b64\u9009\u9879\u8bbe\u7f6e\u4e3a `fail_index` \u4f1a\u5bfc\u81f4\u5728\u7b2c\u4e00\u4e2a JSON \u683c\u5f0f\u9519\u8bef\u65f6\u7d22\u5f15\u5931\u8d25\u3002\n\n\u793a\u4f8b\uff1a\n\nCODE_BLOCK_3\n\nplugin_dir\n-----------\n\nplugin_dir \u662f\u4e00\u4e2a\u53ef\u9009\u7684\u914d\u7f6e\u6307\u4ee4\uff0c\u7528\u4e8e\u6307\u5b9a\u52a8\u6001\u5e93\uff08UDFs\uff09\u7684\u53ef\u4fe1\u4f4d\u7f6e\u3002\u9ed8\u8ba4\u8def\u5f84\u662f `/usr/local/lib/manticore/`\u3002\n\n\u6b64\u6307\u4ee4\u8bbe\u7f6e\u4ece\u4f55\u5904\u52a0\u8f7d [UDF \u5e93](../Extensions/UDFs_and_Plugins/UDF.md) \u7684\u53ef\u4fe1\u76ee\u5f55\u3002\n\n\u793a\u4f8b\uff1a\n\nCODE_BLOCK_4\n\n\n" + }, + "is_code_or_comment": false, + "model": "qwen/qwen3-14b", + "updated_at": 1773763249 } } \ No newline at end of file diff --git a/.translation-cache/Server_settings/Searchd.md.json b/.translation-cache/Server_settings/Searchd.md.json index 24a5e6e933..3a33937590 100644 --- a/.translation-cache/Server_settings/Searchd.md.json +++ b/.translation-cache/Server_settings/Searchd.md.json @@ -250,11 +250,11 @@ "updated_at": 1766627526 }, "__meta": { - "source_text": "# Section \"Searchd\" in configuration\n\nThe below settings are to be used in the `searchd` section of the Manticore Search configuration file to control the server's behavior. Below is a summary of each setting:\n\n### access_plain_attrs\n\nThis setting sets instance-wide defaults for [access_plain_attrs](../Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#Accessing-table-files). It is optional, with a default value of `mmap_preread`.\n\nThe `access_plain_attrs` directive allows you to define the default value of [access_plain_attrs](../Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#Accessing-table-files) for all tables managed by this searchd instance. Per-table directives have higher priority and will override this instance-wide default, providing more fine-grained control.\n\n### access_blob_attrs\n\nThis setting sets instance-wide defaults for [access_blob_attrs](../Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#Accessing-table-files). It is optional, with a default value of `mmap_preread`.\n\nThe `access_blob_attrs` directive allows you to define the default value of [access_blob_attrs](../Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#Accessing-table-files) for all tables managed by this searchd instance. Per-table directives have higher priority and will override this instance-wide default, providing more fine-grained control.\n\n### access_doclists\n\nThis setting sets instance-wide defaults for [access_doclists](../Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#Accessing-table-files). It is optional, with a default value of `file`.\n\nThe `access_doclists` directive allows you to define the default value of [access_doclists](../Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#Accessing-table-files) for all tables managed by this searchd instance. Per-table directives have higher priority and will override this instance-wide default, providing more fine-grained control.\n\n### access_hitlists\n\nThis setting sets instance-wide defaults for [access_hitlists](../Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#Accessing-table-files). It is optional, with a default value of `file`.\n\nThe `access_hitlists` directive allows you to define the default value of [access_hitlists](../Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#Accessing-table-files) for all tables managed by this searchd instance. Per-table directives have higher priority and will override this instance-wide default, providing more fine-grained control.\n\n### access_dict\n\nThis setting sets instance-wide defaults for [access_dict](../Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#Accessing-table-files). It is optional, with a default value of `mmap_preread`.\n\nThe `access_dict` directive allows you to define the default value of [access_dict](../Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#Accessing-table-files) for all tables managed by this searchd instance. Per-table directives have higher priority and will override this instance-wide default, providing more fine-grained control.\n\n### agent_connect_timeout\n\nThis setting sets instance-wide defaults for the [agent_connect_timeout](../Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent_connect_timeout) parameter.\n\n\n### agent_query_timeout\n\nThis setting sets instance-wide defaults for the [agent_query_timeout](../Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent_query_timeout) parameter. It can be overridden on a per-query basis using the `OPTION agent_query_timeout=XXX` clause.\n\n\n### agent_retry_count\n\nThis setting is an integer that specifies how many times Manticore will attempt to connect and query remote agents through a distributed table before reporting a fatal query error. The default value is 0 (i.e., no retries). You can also set this value on a per-query basis using the `OPTION retry_count=XXX` clause. If a per-query option is provided, it will override the value specified in the configuration.\n\nNote that if you use [agent mirrors](../Creating_a_cluster/Remote_nodes/Mirroring.md#Agent-mirrors) in the definition of your distributed table, the server will select a different mirror for each connection attempt according to the chosen [ha_strategy](../Creating_a_cluster/Remote_nodes/Load_balancing.md#ha_strategy). In this case, the `agent_retry_count` will be aggregated for all mirrors in a set.\n\nFor example, if you have 10 mirrors and set `agent_retry_count=5`, the server will retry up to 50 times, assuming an average of 5 tries for each of the 10 mirrors (with the `ha_strategy = roundrobin` option, this will be the case).\n\nHowever, the value provided as the `retry_count` option for the [agent](../Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent) serves as an absolute limit. In other words, the `[retry_count=2]` option in the agent definition always means a maximum of 2 attempts, regardless of whether you have specified 1 or 10 mirrors for the agent.\n\n### agent_retry_delay\n\nThis setting is an integer in milliseconds (or [special_suffixes](../Server_settings/Special_suffixes.md)) that specifies the delay before Manticore retries querying a remote agent in case of failure. This value is only relevant when a non-zero [agent_retry_count](../Creating_a_table/Creating_a_distributed_table/Creating_a_local_distributed_table.md) or non-zero per-query `retry_count` is specified. The default value is 500. You can also set this value on a per-query basis using the `OPTION retry_delay=XXX` clause. If a per-query option is provided, it will override the value specified in the configuration.\n\n\n### attr_flush_period\n\n\nWhen using [Update](../Data_creation_and_modification/Updating_documents/UPDATE.md) to modify document attributes in real-time, the changes are first written to an in-memory copy of the attributes. These updates occur in a memory-mapped file, meaning the OS decides when to write the changes to disk. Upon normal shutdown of `searchd` (triggered by a `SIGTERM` signal), all changes are forced to be written to disk.\n\nYou can also instruct `searchd` to periodically write these changes back to disk to prevent data loss. The interval between these flushes is determined by `attr_flush_period`, specified in seconds (or [special_suffixes](../Server_settings/Special_suffixes.md)).\n\nBy default, the value is 0, which disables periodic flushing. However, flushing will still occur during a normal shutdown.\n\n\n##### Example:\n\n\n\n```ini\nattr_flush_period = 900 # persist updates to disk every 15 minutes\n```\n\n\n### auto_optimize\n\n\nThis setting controls the automatic [OPTIMIZE](../Securing_and_compacting_a_table/Compacting_a_table.md#OPTIMIZE-TABLE) process for table compaction.\n\nBy default table compaction occurs automatically. You can modify this behavior with the `auto_optimize` setting:\n* 0 to disable automatic table compaction (you can still call `OPTIMIZE` manually)\n* 1 to explicitly enable it\n* to enable it while multiplying the optimization threshold by 2.\n\nBy default, OPTIMIZE runs until the number of disk chunks is less than or equal to the number of logical CPU cores multiplied by 2.\n\nHowever, if the table has attributes with KNN indexes, this threshold is different. In this case, it is set to the number of physical CPU cores divided by 2 to improve KNN search performance.\n\nNote that toggling `auto_optimize` on or off doesn't prevent you from running [OPTIMIZE TABLE](../Securing_and_compacting_a_table/Compacting_a_table.md#OPTIMIZE-TABLE) manually.\n\n\n##### Example:\n\n\n```ini\nauto_optimize = 0 # disable automatic OPTIMIZE\n```\n\n\n```ini\nauto_optimize = 2 # OPTIMIZE starts at 16 chunks (on 4 cpu cores server)\n```\n\n\n\n### auto_schema\n\n\nManticore supports the automatic creation of tables that don't yet exist but are specified in INSERT statements. This feature is enabled by default. To disable it, set `auto_schema = 0` explicitly in your configuration. To re-enable it, set `auto_schema = 1` or remove the `auto_schema` setting from the configuration.\n\nKeep in mind that the `/bulk` HTTP endpoint does not support automatic table creation.\n\n> NOTE: The [auto schema functionality](../Data_creation_and_modification/Adding_documents_to_a_table/Adding_documents_to_a_real-time_table.md#Auto-schema) requires [Manticore Buddy](../Installation/Manticore_Buddy.md). If it doesn't work, make sure Buddy is installed.\n\n\n```ini\nauto_schema = 0 # disable automatic table creation\n```\n\n\n```ini\nauto_schema = 1 # enable automatic table creation\n```\n\n\n\n### binlog_flush\n\n\nThis setting controls the binary log transaction flush/sync mode. It is optional, with a default value of 2 (flush every transaction, sync every second).\n\nThe directive determines how frequently the binary log will be flushed to the OS and synced to disk. There are three supported modes:\n\n* 0, flush and sync every second. This offers the best performance, but up to 1 second worth of committed transactions can be lost in the event of a server crash or an OS/hardware crash.\n* 1, flush and sync every transaction. This mode provides the worst performance but guarantees that every committed transaction's data is saved.\n* 2, flush every transaction, sync every second. This mode delivers good performance and ensures that every committed transaction is saved in case of a server crash. However, in the event of an OS/hardware crash, up to 1 second worth of committed transactions can be lost.\n\nFor those familiar with MySQL and InnoDB, this directive is similar to `innodb_flush_log_at_trx_commit`. In most cases, the default hybrid mode 2 provides a nice balance of speed and safety, with full RT table data protection against server crashes and some protection against hardware ones.\n\n\n##### Example:\n\n\n\n```ini\nbinlog_flush = 1 # ultimate safety, low speed\n```\n\n\n### binlog_common\n\n\nThis setting controls how binary log files are managed. It is optional, with a default value of 0 (separate file for each table).\n\nYou can choose between two ways to manage binary log files:\n\n* Separate file for each table (default, `0`): Each table saves its changes in its own log file. This setup is good if you have many tables that get updated at different times. It allows tables to be updated without waiting for others. Also, if there is a problem with one table's log file, it does not affect the others.\n* Single file for all tables (`1`): All tables use the same binary log file. This method makes it easier to handle files because there are fewer of them. However, this could keep files longer than needed if one table still needs to save its updates. This setting might also slow things down if many tables need to update at the same time because all changes have to wait to be written to one file.\n\n\n##### Example:\n\n\n\n```ini\nbinlog_common = 1 # use a single binary log file for all tables\n```\n\n\n### binlog_max_log_size\n\n\nThis setting controls the maximum binary log file size. It is optional, with a default value of 256 MB.\n\nA new binlog file will be forcibly opened once the current binlog file reaches this size limit. This results in a finer granularity of logs and can lead to more efficient binlog disk usage under certain borderline workloads. A value of 0 indicates that the binlog file should not be reopened based on size.\n\n\n\n##### Example:\n\n\n\n```ini\nbinlog_max_log_size = 16M\n```\n\n\n\n### binlog_path\n\n\nThis setting determines the path for binary log (also known as transaction log) files. It is optional, with a default value of the build-time configured data directory (e.g., `/var/lib/manticore/data/binlog.*` in Linux).\n\nBinary logs are used for crash recovery of RT table data and for attribute updates of plain disk indices that would otherwise only be stored in RAM until flush. When logging is enabled, every transaction COMMIT-ted into an RT table is written into a log file. Logs are then automatically replayed on startup after an unclean shutdown, recovering the logged changes.\n\nThe `binlog_path` directive specifies the location of binary log files. It should only contain the path; `searchd` will create and unlink multiple `binlog.*` files in the directory as necessary (including binlog data, metadata, and lock files, etc).\n\nAn empty value disables binary logging, which improves performance but puts the RT table data at risk.\n\n\n\n##### Example:\n\n\n\n```ini\nbinlog_path = # disable logging\nbinlog_path = /var/lib/manticore/data # /var/lib/manticore/data/binlog.001 etc will be created\n```\n\n\n### boolean_simplify\n\n\nThis setting controls the default value for [boolean_simplify](../Searching/Options.md#boolean_simplify) search option. It is optional, with a default value of 1 (enabled).\n\nWhen set to 1, the server will automatically apply [boolean query optimization](../Searching/Full_text_matching/Boolean_optimization.md) to improve query performance. When set to 0, queries will be executed without optimization by default. This default can be overridden on a per-query basis using the corresponding search option `boolean_simplify`.\n\n\n```ini\nsearchd {\n boolean_simplify = 0 # disable boolean optimization by default\n}\n```\n\n\n### buddy_path\n\n\nThis setting determines the path to the Manticore Buddy binary. It is optional, with a default value being the build-time configured path, which varies across different operating systems. Typically, you don't need to modify this setting. However, it may be useful if you wish to run Manticore Buddy in debug mode, make changes to Manticore Buddy, or implement a new plugin. In the latter case, you can `git clone` Buddy from https://github.com/manticoresoftware/manticoresearch-buddy, add a new plugin to the directory `./plugins/`, and run `composer install --prefer-source` for easier development after you change the directory to the Buddy source.\n\nTo ensure you can run `composer`, your machine must have PHP 8.2 or higher installed with the following extensions:\n\n```\n--enable-dom\n--with-libxml\n--enable-tokenizer\n--enable-xml\n--enable-xmlwriter\n--enable-xmlreader\n--enable-simplexml\n--enable-phar\n--enable-bcmath\n--with-gmp\n--enable-debug\n--with-mysqli\n--enable-mysqlnd\n```\n\nYou can also opt for the special `manticore-executor-dev` version for Linux amd64 available in the releases, for example: https://github.com/manticoresoftware/executor/releases/tag/v1.0.13\n\nIf you go this route, remember to link the dev version of the manticore executor to `/usr/bin/php`.\n\nTo disable Manticore Buddy, set the value to empty as shown in the example.\n\n\n##### Example:\n\n\n\n```ini\nbuddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php # use the default Manticore Buddy in Linux\nbuddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php --threads=1 # runs Buddy with a single worker\nbuddy_path = manticore-executor -n /opt/homebrew/share/manticore/modules/manticore-buddy/bin/manticore-buddy/src/main.php # use the default Manticore Buddy in MacOS arm64\nbuddy_path = manticore-executor -n /Users/username/manticoresearch-buddy/src/main.php # use Manticore Buddy from a non-default location\nbuddy_path = # disables Manticore Buddy\nbuddy_path = manticore-executor -n /Users/username/manticoresearch-buddy/src/main.php --skip=manticoresoftware/buddy-plugin-replace # --skip - skips plugins\nbuddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php --enable-plugin=manticoresoftware/buddy-plugin-show # runs Buddy with only the SHOW plugin\n```\n\n\n### client_timeout\n\n\nThis setting determines the maximum time to wait between requests (in seconds or [special_suffixes](../Server_settings/Special_suffixes.md)) when using persistent connections. It is optional, with a default value of five minutes.\n\n\n\n##### Example:\n\n\n\n```ini\nclient_timeout = 1h\n```\n\n\n\n### collation_libc_locale\n\n\nServer libc locale. Optional, default is C.\n\nSpecifies the libc locale, affecting the libc-based collations. Refer to [collations](../Searching/Collations.md) section for the details.\n\n\n\n##### Example:\n\n\n\n```ini\ncollation_libc_locale = fr_FR\n```\n\n\n\n### collation_server\n\n\nDefault server collation. Optional, default is libc_ci.\n\nSpecifies the default collation used for incoming requests. The collation can be overridden on a per-query basis. Refer to [collations](../Searching/Collations.md) section for the list of available collations and other details.\n\n\n\n##### Example:\n\n\n\n```ini\ncollation_server = utf8_ci\n```\n\n\n\n### data_dir\n\n\nWhen specified, this setting enables the [real-time mode](../Creating_a_table/Local_tables.md#Online-schema-management-%28RT-mode%29), which is an imperative way of managing data schema. The value should be a path to the directory where you want to store all your tables, binary logs, and everything else needed for the proper functioning of Manticore Search in this mode.\nIndexing of [plain tables](../Creating_a_table/Local_tables/Plain_table.md) is not allowed when the `data_dir` is specified. Read more about the difference between the RT mode and the plain mode in [this section](../Read_this_first.md#Real-time-table-vs-plain-table).\n\n\n##### Example:\n\n\n\n```ini\ndata_dir = /var/lib/manticore\n```\n\n\n### attr_autoconv_strict\n\n\nThis setting controls strict validation mode for string-to-number type conversions during INSERT and REPLACE operations. Optional, default is 0 (non-strict mode, backward compatible).\n\nWhen set to 1 (strict mode), invalid string-to-number conversions (e.g., converting an empty string `''` or non-numeric string `'a'` to a bigint attribute) will return errors instead of silently converting to 0. This helps catch data quality issues early during data insertion.\n\nWhen set to 0 (non-strict mode, default), invalid conversions will silently convert to 0, maintaining backward compatibility with older versions.\n\nStrict mode validates the following cases:\n* Empty strings or strings that cannot be converted\n* Strings with trailing non-numeric characters (e.g., `'123abc'`)\n* Numeric values that exceed type ranges (overflow/underflow)\n\n\n##### Example:\n\n\n\n```ini\nattr_autoconv_strict = 1 # enable strict conversion mode\n```\n\n\n### diskchunk_flush_search_timeout\n\n\nThe timeout for preventing auto-flushing a RAM chunk if there are no searches in the table. Optional, default is 30 seconds.\n\nThe time to check for searches before determining whether to auto-flush.\nAuto-flushing will occur only if there has been at least one search in the table within the last `diskchunk_flush_search_timeout` seconds. Works in conjunction with [diskchunk_flush_write_timeout](../Server_settings/Searchd.md#diskchunk_flush_write_timeout). The corresponding [per-table setting](../Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#diskchunk_flush_search_timeout) has a higher priority and will override this instance-wide default, providing more fine-grained control.\n\n\n##### Example:\n\n\n\n```ini\ndiskchunk_flush_search_timeout = 120s\n```\n\n\n### diskchunk_flush_write_timeout\n\n\nThe time in seconds to wait without a write before auto-flushing the RAM chunk to disk. Optional, default is 1 second.\n\nIf no write occurs in the RAM chunk within `diskchunk_flush_write_timeout` seconds, the chunk will be flushed to disk. Works in conjunction with [diskchunk_flush_search_timeout](../Server_settings/Searchd.md#diskchunk_flush_search_timeout). To disable auto-flush, set `diskchunk_flush_write_timeout = -1` explicitly in your configuration. The corresponding [per-table setting](../Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#diskchunk_flush_write_timeout) has a higher priority and will override this instance-wide default, providing more fine-grained control.\n\n\n##### Example:\n\n\n\n```ini\ndiskchunk_flush_write_timeout = 60s\n```\n\n\n### docstore_cache_size\n\n\nThis setting specifies the maximum size of document blocks from document storage that are held in memory. It is optional, with a default value of 16m (16 megabytes).\n\nWhen `stored_fields` is used, document blocks are read from disk and uncompressed. Since every block typically holds several documents, it may be reused when processing the next document. For this purpose, the block is held in a server-wide cache. The cache holds uncompressed blocks.\n\n\n\n##### Example:\n\n\n\n```ini\ndocstore_cache_size = 8m\n```\n\n\n### engine\n\n\nDefault attribute storage engine used when creating tables in RT mode. Can be `rowwise` (default) or `columnar`.\n\n\n##### Example:\n\n\n\n```ini\nengine = columnar\n```\n\n\n\n### expansion_limit\n\n\nThis setting determines the maximum number of expanded keywords for a single wildcard. It is optional, with a default value of 0 (no limit).\n\nWhen performing substring searches against tables built with `dict = keywords` enabled, a single wildcard may potentially result in thousands or even millions of matched keywords (think of matching `a*` against the entire Oxford dictionary). This directive allows you to limit the impact 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).\n\n\n##### Example:\n\n\n\n```ini\nexpansion_limit = 16\n```\n\n\n### expansion_merge_threshold_docs\n\n\nThis setting determines the maximum number of documents in the expanded keyword that allows merging all such keywords together. It is optional, with a default value of 32.\n\nWhen performing substring searches against tables built with `dict = keywords` enabled, a single wildcard may potentially result in thousands or even millions of matched keywords. This directive allows you to increase the limit of how many keywords will merge together to speed up matching but uses more memory in the search.\n\n\n##### Example:\n\n\n\n```ini\nexpansion_merge_threshold_docs = 1024\n```\n\n\n### expansion_merge_threshold_hits\n\n\nThis setting determines the maximum number of hits in the expanded keyword that allows merging all such keywords together. It is optional, with a default value of 256.\n\nWhen performing substring searches against tables built with `dict = keywords` enabled, a single wildcard may potentially result in thousands or even millions of matched keywords. This directive allows you to increase the limit of how many keywords will merge together to speed up matching but uses more memory in the search.\n\n\n##### Example:\n\n\n\n```ini\nexpansion_merge_threshold_hits = 512\n```\n\n\n### expansion_phrase_limit\n\n\nThis setting controls the maximum number of alternative phrase variants generated due to `OR` operators inside `PHRASE`, `PROXIMITY`, and `QUORUM` operators. It is optional, with a default value of 1024.\n\nWhen using the `|` (OR) operator inside phrase-like operator, the total number of expanded combinations may grow exponentially depending on the number of alternatives specified. This setting helps prevent excessive query expansion by capping the number of permutations considered during query processing.\n\nIf the number of generated variants exceeds this limit, the query will either:\n\n- fail with an error (default behavior)\n- return partial results with a warning, if `expansion_phrase_warning` is enabled\n\n\n##### Example:\n\n\n\n```ini\nexpansion_phrase_limit = 4096\n```\n\n\n### expansion_phrase_warning\n\n\nThis setting controls the behavior when the query expansion limit defined by `expansion_phrase_limit` is exceeded.\n\nBy default, the query will fail with an error message. When `expansion_phrase_warning` is set to 1, the search continues using a partial transformation of the phrase (up to the configured limit), and the server returns a warning message to the user along with the result set. This allows queries that are too complex for full expansion to still return partial results without complete failure.\n\n\n##### Example:\n\n\n\n```ini\nexpansion_phrase_warning = 1\n```\n\n\n### grouping_in_utc\n\nThis setting specifies whether timed grouping in API and SQL will be calculated in the local timezone or in UTC. It is optional, with a default value of 0 (meaning 'local timezone').\n\nBy default, all 'group by time' expressions (like group by day, week, month, and year in API, also group by day, month, year, yearmonth, yearmonthday in SQL) are done using local time. For example, if you have documents with attributes timed `13:00 utc` and `15:00 utc`, in the case of grouping, they both will fall into facility groups according to your local timezone setting. If you live in `utc`, it will be one day, but if you live in `utc+10`, then these documents will be matched into different `group by day` facility groups (since 13:00 utc in UTC+10 timezone is 23:00 local time, but 15:00 is 01:00 of the next day). Sometimes such behavior is unacceptable, and it is desirable to make time grouping not dependent on timezone. You can run the server with a defined global TZ environment variable, but it will affect not only grouping but also timestamping in the logs, which may be undesirable as well. Switching 'on' this option (either in config or using [SET global](../Server_settings/Setting_variables_online.md#SET) statement in SQL) will cause all time grouping expressions to be calculated in UTC, leaving the rest of time-depentend functions (i.e. logging of the server) in local TZ.\n\n\n### timezone\n\nThis setting specifies the timezone to be used by date/time-related functions. By default, the local timezone is used, but you can specify a different timezone in IANA format (e.g., `Europe/Amsterdam`).\n\nNote that this setting has no impact on logging, which always operates in the local timezone.\n\nAlso, note that if `grouping_in_utc` is used, the 'group by time' function will still use UTC, while other date/time-related functions will use the specified timezone. Overall, it is not recommended to mix `grouping_in_utc` and `timezone`.\n\nYou can configure this option either in the config or by using the [SET global](../Server_settings/Setting_variables_online.md#SET) statement in SQL.\n\n\n### ha_period_karma\n\n\nThis setting specifies the agent mirror statistics window size, in seconds (or [special_suffixes](../Server_settings/Special_suffixes.md)). It is optional, with a default value of 60 seconds.\n\nFor a distributed table with agent mirrors in it (see more in [agent](../Creating_a_table/Creating_a_distributed_table/Creating_a_local_distributed_table.md), the master tracks several different per-mirror counters. These counters are then used for failover and balancing (the master picks the best mirror to use based on the counters). Counters are accumulated in blocks of `ha_period_karma` seconds.\n\nAfter beginning a new block, the master may still use the accumulated values from the previous one until the new one is half full. As a result, any previous history stops affecting the mirror choice after 1.5 times ha_period_karma seconds at most.\n\nEven though at most two blocks are used for mirror selection, up to 15 last blocks are stored for instrumentation purposes. These blocks can be inspected using the [SHOW AGENT STATUS](../Node_info_and_management/Node_status.md#SHOW-AGENT-STATUS) statement.\n\n\n\n##### Example:\n\n\n\n```ini\nha_period_karma = 2m\n```\n\n\n\n### ha_ping_interval\n\n\nThis setting configures the interval between agent mirror pings, in milliseconds (or [special_suffixes](../Server_settings/Special_suffixes.md)). It is optional, with a default value of 1000 milliseconds.\n\nFor a distributed table with agent mirrors in it (see more in [agent](../Creating_a_table/Creating_a_distributed_table/Creating_a_local_distributed_table.md)), the master sends all mirrors a ping command during idle periods. This is to track the current agent status (alive or dead, network roundtrip, etc). The interval between such pings is defined by this directive. To disable pings, set ha_ping_interval to 0.\n\n\n\n##### Example:\n\n\n\n```ini\nha_ping_interval = 3s\n```\n\n\n\n### hostname_lookup\n\nThe `hostname_lookup` option defines the strategy for renewing hostnames. By default, the IP addresses of agent host names are cached at server start to avoid excessive access to DNS. However, in some cases, the IP can change dynamically (e.g. cloud hosting) and it may be desirable to not cache the IPs. Setting this option to `request` disables the caching and queries the DNS for each query. The IP addresses can also be manually renewed using the `FLUSH HOSTNAMES` command.\n\n### jobs_queue_size\n\nThe jobs_queue_size setting defines how many \"jobs\" can be in the queue at the same time. It is unlimited by default.\n\nIn most cases, a \"job\" means one query to a single local table (plain table or a disk chunk of a real-time table). For example, if you have a distributed table consisting of 2 local tables or a real-time table with 2 disk chunks, a search query to either of them will mostly put 2 jobs in the queue. Then, the thread pool (whose size is defined by [threads](../Server_settings/Searchd.md#threads) will process them. However, in some cases, if the query is too complex, more jobs can be created. Changing this setting is recommended when [max_connections](../Server_settings/Searchd.md#max_connections) and [threads](../Server_settings/Searchd.md#threads) are not enough to find a balance between the desired performance.\n\n### join_batch_size\n\nTable joins work by accumulating a batch of matches, which are the results of the query executed on the left table. This batch is then processed as a single query on the right table.\n\nThis option allows you to adjust the batch size. The default value is `1000`, and setting this option to `0` disables batching.\n\nA larger batch size may improve performance; however, for some queries, it can lead to excessive memory consumption.\n\n\n##### Example:\n\n\n\n```ini\njoin_batch_size = 2000\n```\n\n\n### join_cache_size\n\nEach query executed on the right table is defined by specific JOIN ON conditions, which determine the result set retrieved from the right table.\n\nIf there are only a few unique JOIN ON conditions, reusing the results can be more efficient than repeatedly executing queries on the right table. To enable this, the result sets are stored in a cache.\n\nThis option allows you to configure the size of this cache. The default value is `20 MB`, and setting this option to 0 disables caching.\n\nNote that each thread maintains its own cache, so you should account for the number of threads executing queries when estimating total memory usage.\n\n\n##### Example:\n\n\n\n```ini\njoin_cache_size = 10M\n```\n\n\n### listen_backlog\n\n\nThe listen_backlog setting determines the length of the TCP listen backlog for incoming connections. This is particularly relevant for Windows builds that process requests one by one. When the connection queue reaches its limit, new incoming connections will be refused.\nFor non-Windows builds, the default value should work fine, and there is usually no need to adjust this setting.\n\n\n\n##### Example:\n\n\n\n```ini\nlisten_backlog = 20\n```\n\n\n### kibana_version_string\n\n\nA server version string to return to Kibana or OpenSearch Dashboards. Optional \u2014 by default, it's set `7.6.0`.\n\nSome versions of Kibana and OpenSearch Dashboards expect the server to report a specific version number, and might behave differently depending on it. To workaround such issues, you can use this setting, which makes Manticore report a custom version to Kibana or OpenSearch Dashboards.\n\n\n##### Example:\n\n\n\n```ini\nkibana_version_string = 1.2.3\n```\n\n\n### listen\n\n\nThis setting lets you specify an IP address and port, or Unix-domain socket path, that Manticore will accept connections on.\n\nThe general syntax for `listen` is:\n\n```ini\nlisten = ( address \":\" port | port | path | address \":\" port start - port end ) [ \":\" protocol [ \"_vip\" ] [ \"_readonly\" ] ]\n```\n\nYou can specify:\n* either an IP address (or hostname) and a port number\n* or just a port number\n* or a Unix socket path (not supported on Windows)\n* or an IP address and port range\n\nIf you specify a port number but not an address, `searchd` will listen on all network interfaces. Unix path is identified by a leading slash. Port range can be set only for the replication protocol.\n\nYou can also specify a protocol handler (listener) to be used for connections on this socket. The listeners are:\n\n* **Not specified** - Manticore will accept connections at this port from:\n - other Manticore agents (i.e., a remote distributed table)\n - clients via HTTP and HTTPS\n - [Manticore Buddy](https://manticoresearch.com/blog/manticoresearch-buddy-intro/). **Ensure you have a listener of this kind (or an `http` listener, as mentioned below) to avoid limitations in Manticore functionality.**\n* `mysql` MySQL protocol for connections from MySQL clients. Note:\n - Compressed protocol is also supported.\n - If [SSL](../Security/SSL.md#SSL) is enabled, you can make an encrypted connection.\n* `replication` - replication protocol used for nodes communication. More details can be found in the [replication](../Creating_a_cluster/Setting_up_replication/Setting_up_replication.md) section. You can specify multiple replication listeners, but they must all listen on the same IP; only the ports can be different. When you define a replication listener with a port range (e.g., `listen = 192.168.0.1:9320-9328:replication`), Manticore doesn't immediately start listening on these ports. Instead, it will take random free ports from the specified range only when you start using replication. At least 2 ports are required in the range for replication to work properly.\n* `http` - same as **Not specified**. Manticore will accept connections at this port from remote agents and clients via HTTP and HTTPS.\n* `https` - HTTPS protocol. Manticore will accept **only** HTTPS connections at this port. More details can be found in section [SSL](../Security/SSL.md).\n* `sphinx` - legacy binary protocol. Used to serve connections from remote [SphinxSE](../Extensions/SphinxSE.md) clients. Some Sphinx API clients implementations (an example is the Java one) require the explicit declaration of the listener.\n\nAdding suffix `_vip` to client protocols (that is, all except `replication`, for instance `mysql_vip` or `http_vip` or just `_vip`) forces creating a dedicated thread for the connection to bypass different limitations. That's useful for node maintenance in case of severe overload when the server would either stall or not let you connect via a regular port otherwise.\n\nSuffix `_readonly` sets [read-only mode](../Security/Read_only.md) for the listener and limits it to accept only read queries.\n\n\n##### Example:\n\n\n\n```ini\nlisten = localhost\nlisten = localhost:5000 # listen for remote agents (binary API) and http/https requests on port 5000 at localhost\nlisten = 192.168.0.1:5000 # listen for remote agents (binary API) and http/https requests on port 5000 at 192.168.0.1\nlisten = /var/run/manticore/manticore.s # listen for binary API requests on unix socket\nlisten = /var/run/manticore/manticore.s:mysql # listen for mysql requests on unix socket\nlisten = 9312 # listen for remote agents (binary API) and http/https requests on port 9312 on any interface\nlisten = localhost:9306:mysql # listen for mysql requests on port 9306 at localhost\nlisten = localhost:9307:mysql_readonly # listen for mysql requests on port 9307 at localhost and accept only read queries\nlisten = 127.0.0.1:9308:http # listen for http requests as well as connections from remote agents (and binary API) on port 9308 at localhost\nlisten = 192.168.0.1:9320-9328:replication # listen for replication connections on ports 9320-9328 at 192.168.0.1\nlisten = 127.0.0.1:9443:https # listen for https requests (not http) on port 9443 at 127.0.0.1\nlisten = 127.0.0.1:9312:sphinx # listen for legacy Sphinx requests (e.g. from SphinxSE) on port 9312 at 127.0.0.1\n```\n\n\nThere can be multiple `listen` directives. `searchd` will listen for client connections on all specified ports and sockets. The default config provided in Manticore packages defines listening on ports:\n* `9308` and `9312` for connections from remote agents and non-MySQL based clients\n* and on port `9306` for MySQL connections.\n\nIf you don't specify any `listen` in the configuration at all, Manticore will wait for connections on:\n* `127.0.0.1:9306` for MySQL clients\n* `127.0.0.1:9312` for HTTP/HTTPS and connections from other Manticore nodes and clients based on the Manticore binary API.\n\n#### Listening on privileged ports\n\nBy default, Linux won't allow you to let Manticore listen on a port below 1024 (e.g. `listen = 127.0.0.1:80:http` or `listen = 127.0.0.1:443:https`) unless you run searchd under root. If you still want to be able to start Manticore, so it listens on ports < 1024 under a non-root user, consider doing one of the following (either of these should work):\n* Run the command `setcap CAP_NET_BIND_SERVICE=+eip /usr/bin/searchd`\n* Add `AmbientCapabilities=CAP_NET_BIND_SERVICE` to Manticore's systemd unit and reload the daemon (`systemctl daemon-reload`).\n\n#### Technical details about Sphinx API protocol and TFO\n
\nLegacy Sphinx protocol has 2 phases: handshake exchanging and data flow. The handshake consists of a packet of 4 bytes from the client, and a packet of 4 bytes from the daemon with only one purpose - the client determines that the remote is a real Sphinx daemon, the daemon determines that the remote is a real Sphinx client. The main dataflow is quite simple: let's both sides declare their handshakes, and the opposite check them. That exchange with short packets implies using special `TCP_NODELAY` flag, which switches off Nagle's TCP algorithm and declares that the TCP connection will be performed as a dialogue of small packages.\nHowever, it is not strictly defined who speaks first in this negotiation. Historically, all clients that use the binary API speak first: send handshake, then read 4 bytes from a daemon, then send a request and read an answer from the daemon.\nWhen we improved Sphinx protocol compatibility, we considered these things:\n\n1. Usually, master-agent communication is established from a known client to a known host on a known port. So, it is quite not possible that the endpoint will provide a wrong handshake. So, we may implicitly assume that both sides are valid and really speak in Sphinx proto.\n2. Given this assumption, we can 'glue' a handshake to the real request and send it in one packet. If the backend is a legacy Sphinx daemon, it will just read this glued packet as 4 bytes of a handshake, then request body. Since they both came in one packet, the backend socket has -1 RTT, and the frontend buffer still works despite that fact usual way.\n3. Continuing the assumption: since the 'query' packet is quite small, and the handshake is even smaller, let's send both in the initial 'SYN' TCP package using modern TFO (tcp-fast-open) technique. That is: we connect to a remote node with the glued handshake + body package. The daemon accepts the connection and immediately has both the handshake and the body in a socket buffer, as they came in the very first TCP 'SYN' packet. That eliminates another one RTT.\n4. Finally, teach the daemon to accept this improvement. Actually, from the application, it implies NOT to use `TCP_NODELAY`. And, from the system side, it implies to ensure that on the daemon side, accepting TFO is activated, and on the client side, sending TFO is also activated. By default, in modern systems, client TFO is already activated by default, so you only have to tune the server TFO for all things to work.\n\nAll these improvements without actually changing the protocol itself allowed us to eliminate 1.5 RTT of the TCP protocol from the connection. Which is, if the query and answer are capable of being placed in a single TCP package, decreases the whole binary API session from 3.5 RTT to 2 RTT - which makes network negotiation about 2 times faster.\n\nSo, all our improvements are stated around an initially undefined statement: 'who speaks first.' If a client speaks first, we may apply all these optimizations and effectively process connect + handshake + query in a single TFO package. Moreover, we can look at the beginning of the received package and determine a real protocol. That is why you can connect to one and the same port via API/http/https. If the daemon has to speak first, all these optimizations are impossible, and the multiprotocol is also impossible. That is why we have a dedicated port for MySQL and did not unify it with all the other protocols into a same port. Suddenly, among all clients, one was written implying that daemon should send a handshake first. That is - no possibility to all the described improvements. That is SphinxSE plugin for mysql/mariadb. So, specially for this single client we dedicated `sphinx` proto definition to work most legacy way. Namely: both sides activate `TCP_NODELAY` and exchange with small packages. The daemon sends its handshake on connect, then the client sends its, and then everything works usual way. That is not very optimal, but just works. If you use SphinxSE to connect to Manticore - you have to dedicate a listener with explicitly stated `sphinx` proto. For another clients - avoid to use this listener as it is slower. If you use another legacy Sphinx API clients - check first, if they are able to work with non-dedicated multiprotocol port. For master-agent linkage using the non-dedicated (multiprotocol) port and enabling client and server TFO works well and will definitely make working of network backend faster, especially if you have very light and fast queries.\n
\n\n### listen_tfo\n\nThis setting allows the TCP_FASTOPEN flag for all listeners. By default, it is managed by the system but may be explicitly switched off by setting it to '0'.\n\nFor general knowledge about the TCP Fast Open extension, please consult with [Wikipedia](https://en.wikipedia.org/wiki/TCP_Fast_Open). In short, it allows the elimination of one TCP round-trip when establishing a connection.\n\nIn practice, using TFO in many situations may optimize client-agent network efficiency, as if [persistent agents](../Creating_a_table/Creating_a_distributed_table/Creating_a_local_distributed_table.md) are in play, but without holding active connections, and also without limitation for the maximum num of connections.\n\nOn modern OS, TFO support is usually switched 'on' at the system level, but this is just a 'capability', not the rule. Linux (as the most progressive) has supported it since 2011, on kernels starting from 3.7 (for the server-side). Windows has supported it from some builds of Windows 10. Other operating systems (FreeBSD, MacOS) are also in the game.\n\nFor Linux system server checks variable `/proc/sys/net/ipv4/tcp_fastopen` and behaves according to it. Bit 0 manages client side, bit 1 rules listeners. By default, the system has this parameter set to 1, i.e., clients enabled, listeners disabled.\n\n### log\n\n\nThe log setting specifies the name of the log file where all `searchd` run time events will be logged. If not specified, the default name is 'searchd.log'.\n\nAlternatively, you can use the 'syslog' as the file name. In this case, the events will be sent to the syslog daemon. To use the syslog option, you need to configure Manticore with the `-\u2013with-syslog` option during building.\n\n\n\n##### Example:\n\n\n\n```ini\nlog = /var/log/searchd.log\n```\n\n\n\n### max_batch_queries\n\n\nLimits the amount of queries per batch. Optional, default is 32.\n\nMakes searchd perform a sanity check of the amount of queries submitted in a single batch when using [multi-queries](../Searching/Multi-queries.md). Set it to 0 to skip the check.\n\n\n\n##### Example:\n\n\n\n```ini\nmax_batch_queries = 256\n```\n\n\n### max_connections\n\n\nMaximum number of simultaneous client connections. Unlimited by default. That is usually noticeable only when using any kind of persistent connections, like cli mysql sessions or persistent remote connections from remote distributed tables. When the limit is exceeded you can still connect to the server using the [VIP connection](../Connecting_to_the_server/MySQL_protocol.md#VIP-connection). VIP connections are not counted towards the limit.\n\n\n```ini\nmax_connections = 10\n```\n\n\n\n### max_threads_per_query\n\n\nInstance-wide limit of threads one operation can use. By default, appropriate operations can occupy all CPU cores, leaving no room for other operations. For example, `call pq` against a considerably large percolate table can utilize all threads for tens of seconds. Setting `max_threads_per_query` to, say, half of [threads](../Server_settings/Searchd.md#threads) will ensure that you can run a couple of such `call pq` operations in parallel.\n\nYou can also set this setting as a session or a global variable during runtime.\n\nAdditionally, you can control the behavior on a per-query basis with the help of the [threads OPTION](../Searching/Options.md#threads).\n\n\n##### Example:\n\n\n```ini\nmax_threads_per_query = 4\n```\n\n\n\n### max_filters\n\n\nMaximum allowed per-query filter count. This setting is only used for internal sanity checks and does not directly affect RAM usage or performance. Optional, the default is 256.\n\n\n\n##### Example:\n\n\n\n```ini\nmax_filters = 1024\n```\n\n\n\n### max_filter_values\n\n\nMaximum allowed per-filter values count. This setting is only used for internal sanity checks and does not directly affect RAM usage or performance. Optional, the default is 4096.\n\n\n\n##### Example:\n\n\n\n```ini\nmax_filter_values = 16384\n```\n\n\n\n### max_open_files\n\n\nThe maximum number of files that the server is allowed to open is called the \"soft limit\". Note that serving large fragmented real-time tables may require this limit to be set high, as each disk chunk may occupy a dozen or more files. For example, a real-time table with 1000 chunks may require thousands of files to be opened simultaneously. If you encounter the error 'Too many open files' in the logs, try adjusting this option, as it may help resolve the issue.\n\nThere is also a \"hard limit\" that cannot be exceeded by the option. This limit is defined by the system and can be changed in the file `/etc/security/limits.conf` on Linux. Other operating systems may have different approaches, so consult your manuals for more information.\n\n\n##### Example:\n\n\n\n```ini\nmax_open_files = 10000\n```\n\n\n\nApart from direct numeric values, you can use the magic word 'max' to set the limit equal to the available current hard limit.\n\n\n##### Example:\n\n\n\n```ini\nmax_open_files = max\n```\n\n\n\n### max_packet_size\n\n\nMaximum allowed network packet size. This setting limits both query packets from clients and response packets from remote agents in a distributed environment. Only used for internal sanity checks, it does not directly affect RAM usage or performance. Optional, the default is 128M.\n\n\n\n##### Example:\n\n\n\n```ini\nmax_packet_size = 32M\n```\n\n\n\n### mysql_version_string\n\n\nA server version string to return via the MySQL protocol. Optional, the default is empty (returns the Manticore version).\n\nSeveral picky MySQL client libraries depend on a particular version number format used by MySQL, and moreover, sometimes choose a different execution path based on the reported version number (rather than the indicated capabilities flags). For instance, Python MySQLdb 1.2.2 throws an exception when the version number is not in X.Y.ZZ format; MySQL .NET connector 6.3.x fails internally on version numbers 1.x along with a certain combination of flags, etc. To work around that, you can use the `mysql_version_string` directive and have `searchd` report a different version to clients connecting over the MySQL protocol. (By default, it reports its own version.)\n\n\n\n##### Example:\n\n\n\n```ini\nmysql_version_string = 5.0.37\n```\n\n\n\n### net_workers\n\nNumber of network threads, the default is 1.\n\nThis setting is useful for extremely high query rates when just one thread is not enough to manage all the incoming queries.\n\n\n### net_wait_tm\n\nControls the busy loop interval of the network thread. The default is -1, and it can be set to -1, 0, or a positive integer.\n\nIn cases where the server is configured as a pure master and just routes requests to agents, it is important to handle requests without delays and not allow the network thread to sleep. There is a busy loop for that. After an incoming request, the network thread uses CPU poll for `10 * net_wait_tm` milliseconds if `net_wait_tm` is a positive number or polls only with the CPU if `net_wait_tm` is `0`. Also, the busy loop can be disabled with `net_wait_tm = -1` - in this case, the poller sets the timeout to the actual agent's timeouts on the system polling call.\n\n> **WARNING:** A CPU busy loop actually loads the CPU core, so setting this value to any non-default value will cause noticeable CPU usage even with an idle server.\n\n\n### net_throttle_accept\n\nDefines how many clients are accepted on each iteration of the network loop. Default is 0 (unlimited), which should be fine for most users. This is a fine-tuning option to control the throughput of the network loop in high load scenarios.\n\n\n### net_throttle_action\n\nDefines how many requests are processed on each iteration of the network loop. The default is 0 (unlimited), which should be fine for most users. This is a fine-tuning option to control the throughput of the network loop in high load scenarios.\n\n### network_timeout\n\n\nNetwork client request read/write timeout, in seconds (or [special_suffixes](../Server_settings/Special_suffixes.md)). Optional, the default is 5 seconds. `searchd` will forcibly close a client connection which fails to send a query or read a result within this timeout.\n\nNote also the [reset_network_timeout_on_packet](../Server_settings/Searchd.md#reset_network_timeout_on_packet) parameter. This parameter alters the behavior of `network_timeout` from applying to the entire `query` or `result` to individual packets instead. Typically, a query/result fits within one or two packets. However, in cases where a large amount of data is required, this parameter can be invaluable in maintaining active operations.\n\n\n\n```ini\nnetwork_timeout = 10s\n```\n\n\n### node_address\n\n\nThis setting allows you to specify the network address of the node. By default, it is set to the replication [listen](../Server_settings/Searchd.md#listen) address. This is correct in most cases; however, there are situations where you have to specify it manually:\n\n* Node behind a firewall\n* Network address translation enabled (NAT)\n* Container deployments, such as Docker or cloud deployments\n* Clusters with nodes in more than one region\n\n\n\n##### Example:\n\n\n\n```ini\nnode_address = 10.101.0.10\n```\n\n\n### not_terms_only_allowed\n\n\nThis setting determines whether to allow queries with only the [negation](../Searching/Full_text_matching/Operators.md#Negation-operator) full-text operator. Optional, the default is 0 (fail queries with only the NOT operator).\n\n\n\n##### Example:\n\n\n\n```ini\nnot_terms_only_allowed = 1\n```\n\n\n### optimize_cutoff\n\n\nSets the default table compaction threshold. Read more here - [Number of optimized disk chunks](../Securing_and_compacting_a_table/Compacting_a_table.md#Number-of-optimized-disk-chunks). This setting can be overridden with the per-query option [cutoff](../Securing_and_compacting_a_table/Compacting_a_table.md#Number-of-optimized-disk-chunks). It can also be changed dynamically via [SET GLOBAL](../Server_settings/Setting_variables_online.md#SET).\n\n\n##### Example:\n\n\n\n```ini\noptimize_cutoff = 4\n```\n\n\n### persistent_connections_limit\n\n\nThis setting determines the maximum number of simultaneous persistent connections to remote [persistent agents](../Creating_a_table/Creating_a_distributed_table/Creating_a_local_distributed_table.md). Each time an agent defined under `agent_persistent` is connected, we try to reuse an existing connection (if any), or connect and save the connection for future use. However, in some cases, it makes sense to limit the number of such persistent connections. This directive defines the limit. It affects the number of connections to each agent's host across all distributed tables.\n\nIt is reasonable to set the value equal to or less than the [max_connections](../Server_settings/Searchd.md#max_connections) option in the agent's config.\n\n\n##### Example:\n\n\n\n```ini\npersistent_connections_limit = 29 # assume that each host of agents has max_connections = 30 (or 29).\n```\n\n\n\n### pid_file\n\n\npid_file is a mandatory configuration option in Manticore search that specifies the path of the file where the process ID of the `searchd` server is stored.\n\nThe searchd process ID file is re-created and locked on startup, and contains the head server process ID while the server is running. It is unlinked on server shutdown.\nThe purpose of this file is to enable Manticore to perform various internal tasks, such as checking whether there is already a running instance of `searchd`, stopping `searchd`, and notifying it that it should rotate the tables. The file can also be used for external automation scripts.\n\n\n\n##### Example:\n\n\n\n```ini\npid_file = /run/manticore/searchd.pid\n```\n\n\n### preopen_tables\n\n\nThe preopen_tables configuration directive specifies whether to forcibly preopen all tables on startup. The default value is 1, which means that all tables will be preopened regardless of the per-table [preopen](../Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#Other-performance-related-settings) setting. If set to 0, the per-table settings can take effect, and they will default to 0.\n\nPre-opening tables can prevent races between search queries and rotations that can cause queries to fail occasionally. However, it also uses more file handles. In most scenarios, it is recommended to preopen tables.\n\nHere's an example configuration:\n\n\n##### Example:\n\n\n\n```ini\npreopen_tables = 1\n```\n\n\n### pseudo_sharding\n\n\nThe pseudo_sharding configuration option enables parallelization of search queries to local plain and real-time tables, regardless of whether they are queried directly or through a distributed table. This feature will automatically parallelize queries to up to the number of threads specified in `searchd.threads` # of threads.\n\nNote that if your worker threads are already busy, because you have:\n* high query concurrency\n* physical sharding of any kind:\n - distributed table of multiple plain/real-time tables\n - real-time table consisting of too many disk chunks\n\nthen enabling pseudo_sharding may not provide any benefits and may even result in a slight decrease in throughput. If you prioritize higher throughput over lower latency, it's recommended to disable this option.\n\nEnabled by default.\n\n\n##### Example:\n\n\n\n```ini\npseudo_sharding = 0\n```\n\n\n\n### replication_connect_timeout\n\nThe `replication_connect_timeout` directive defines the timeout for connecting to a remote node. By default, the value is assumed to be in milliseconds, but it can have [another suffix](../Server_settings/Special_suffixes.md). The default value is 1000 (1 second).\n\nWhen connecting to a remote node, Manticore will wait for this amount of time at most to complete the connection successfully. If the timeout is reached but the connection has not been established, and `retries` are enabled, a retry will be initiated.\n\n\n### replication_query_timeout\n\nThe `replication_query_timeout` sets the amount of time that searchd will wait for a remote node to complete a query. The default value is 3000 milliseconds (3 seconds), but can be `suffixed` to indicate a different unit of time.\n\nAfter establishing a connection, Manticore will wait for a maximum of `replication_query_timeout` for the remote node to complete. Note that this timeout is separate from the `replication_connect_timeout`, and the total possible delay caused by a remote node will be the sum of both values.\n\n\n### replication_retry_count\n\nThis setting is an integer that specifies how many times Manticore will attempt to connect and query a remote node during replication before reporting a fatal query error. The default value is 3.\n\n\n### replication_retry_delay\n\nThis setting is an integer in milliseconds (or [special_suffixes](../Server_settings/Special_suffixes.md)) that specifies the delay before Manticore retries querying a remote node in case of failure during replication. This value is only relevant when a non-zero value is specified. The default value is 500.\n\n### qcache_max_bytes\n\n\nThis configuration sets the maximum amount of RAM allocated for cached result sets in bytes. The default value is 16777216, which is equivalent to 16 megabytes. If the value is set to 0, the query cache is disabled. For more information about the query cache, please refer to the [query cache](../Searching/Query_cache.md) for details.\n\n\n\n##### Example:\n\n\n\n```ini\nqcache_max_bytes = 16777216\n```\n\n\n\n### qcache_thresh_msec\n\nInteger, in milliseconds. The minimum wall time threshold for a query result to be cached. Defaults to 3000, or 3 seconds. 0 means cache everything. Refer to [query cache](../Searching/Query_cache.md) for details. This value also may be expressed with time [special_suffixes](../Server_settings/Special_suffixes.md), but use it with care and don't confuse yourself with the name of the value itself, containing '_msec'.\n\n\n### qcache_ttl_sec\n\nInteger, in seconds. The expiration period for a cached result set. Defaults to 60, or 1 minute. The minimum possible value is 1 second. Refer to [query cache](../Searching/Query_cache.md) for details. This value also may be expressed with time [special_suffixes](../Server_settings/Special_suffixes.md), but use it with care and don't confuse yourself with the name of the value itself, containing '_sec'.\n\n\n### query_log_format\n\n\nQuery log format. Optional, allowed values are `plain` and `sphinxql`, default is `sphinxql`.\n\nThe `sphinxql` mode logs valid SQL statements. The `plain` mode logs queries in a plain text format (mostly suitable for purely full-text use cases). This directive allows you to switch between the two formats on search server startup. The log format can also be altered on the fly, using `SET GLOBAL query_log_format=sphinxql` syntax. Refer to [Query logging](../Logging/Query_logging.md) for more details.\n\n\n\n##### Example:\n\n\n\n```ini\nquery_log_format = sphinxql\n```\n\n\n### query_log_min_msec\n\nLimit (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 (this value also may be expressed with time [special_suffixes](../Server_settings/Special_suffixes.md), but use it with care and don't confuse yourself with the name of the value itself, containing `_msec`).\n\n### query_log\n\n\nQuery log file name. Optional, default is empty (do not log queries). All search queries (such as SELECT ... but not INSERT/REPLACE/UPDATE queries) will be logged in this file. The format is described in [Query logging](../Logging/Query_logging.md). In case of 'plain' format, you can use 'syslog' as the path to the log file. In this case, all search queries will be sent to the syslog daemon with `LOG_INFO` priority, prefixed with '[query]' instead of timestamp. To use the syslog option, Manticore must be configured with `-\u2013with-syslog` on building.\n\n\n\n##### Example:\n\n\n\n```ini\nquery_log = /var/log/query.log\n```\n\n\n\n### query_log_mode\n\n\nThe query_log_mode directive allows you to set a different permission for the searchd and query log files. By default, these log files are created with 600 permission, meaning that only the user under which the server runs and root users can read the log files.\nThis directive can be handy if you want to allow other users to read the log files, for example, monitoring solutions running on non-root users.\n\n\n##### Example:\n\n\n\n```ini\nquery_log_mode = 666\n```\n\n\n### read_buffer_docs\n\n\nThe read_buffer_docs directive controls the per-keyword read buffer size for document lists. For every keyword occurrence in every search query, there are two associated read buffers: one for the document list and one for the hit list. This setting lets you control the document list buffer size.\n\nA larger buffer size might increase per-query RAM use, but it could possibly decrease I/O time. It makes sense to set larger values for slow storage, but for storage capable of high IOPS, experimenting should be done in the low values area.\n\nThe default value is 256K, and the minimal value is 8K. You may also set [read_buffer_docs](../Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#read_buffer_docs) on a per-table basis, which will override anything set on the server's config level.\n\n\n\n##### Example:\n\n\n\n```ini\nread_buffer_docs = 128K\n```\n\n\n\n### read_buffer_hits\n\n\nThe read_buffer_hits directive specifies the per-keyword read buffer size for hit lists in search queries. By default, the size is 256K and the minimum value is 8K. For every keyword occurrence in a search query, there are two associated read buffers, one for the document list and one for the hit list. Increasing the buffer size can increase per-query RAM use but decrease I/O time. For slow storage, larger buffer sizes make sense, while for storage capable of high IOPS, experimenting should be done in the low values area.\n\nThis setting can also be specified on a per-table basis using the read_buffer_hits option in [read_buffer_hits](../Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#read_buffer_hits) which will override the server-level setting.\n\n\n##### Example:\n\n\n\n```ini\nread_buffer_hits = 128K\n```\n\n\n### read_unhinted\n\n\nUnhinted read size. Optional, default is 32K, minimal 1K\n\nWhen querying, some reads know in advance exactly how much data is there to be read, but some currently do not. Most prominently, hit list size is not currently known in advance. This setting lets you control how much data to read in such cases. It impacts hit list I/O time, reducing it for lists larger than unhinted read size, but raising it for smaller lists. It does **not** affect RAM usage because the read buffer will already be allocated. So it should not be greater than read_buffer.\n\n\n\n##### Example:\n\n\n\n```ini\nread_unhinted = 32K\n```\n\n\n### reset_network_timeout_on_packet\n\n\nRefines the behavior of networking timeouts (such as `network_timeout` and `agent_query_timeout`).\n\nWhen set to 0, timeouts limit the maximum time for sending the entire request/query.\nWhen set to 1 (default), timeouts limit the maximum time between network activities.\n\nWith replication, a node may need to send a large file (for example, 100GB) to another node. Assume the network can transfer data at 1GB/s, with a series of packets of 4-5MB each. To transfer the entire file, you would need 100 seconds. A default timeout of 5 seconds would only allow the transfer of 5GB before the connection is dropped. Increasing the timeout could be a workaround, but it is not scalable (for instance, the next file might be 150GB, leading to failure again). However, with the default `reset_network_timeout_on_packet` set to 1, the timeout is applied not to the entire transfer but to individual packets. As long as the transfer is in progress (and data is actually being received over the network during the timeout period), it is kept alive. If the transfer gets stuck, such that a timeout occurs between packets, it will be dropped.\n\nNote that if you set up a distributed table, each node \u2014 both master and agents \u2014 should be tuned. On the master side, `agent_query_timeout` is affected; on agents, `network_timeout` is relevant.\n\n\n\n##### Example:\n\n\n\n```ini\nreset_network_timeout_on_packet = 0\n```\n\n\n\n\n### rt_flush_period\n\n\nRT tables RAM chunk flush check period, in seconds (or [special_suffixes](../Server_settings/Special_suffixes.md)). Optional, default is 10 hours.\n\nActively updated RT tables that fully fit in RAM chunks can still result in ever-growing binlogs, impacting disk use and crash recovery time. With this directive, the search server performs periodic flush checks, and eligible RAM chunks can be saved, enabling consequential binlog cleanup. See [Binary logging](../Logging/Binary_logging.md) for more details.\n\n\n##### Example:\n\n\n\n```ini\nrt_flush_period = 3600 # 1 hour\n```\n\n\n\n### rt_merge_iops\n\n\nA maximum number of I/O operations (per second) that the RT chunks merge thread is allowed to start. Optional, default is 0 (no limit).\n\nThis directive lets you throttle down the I/O impact arising from the `OPTIMIZE` statements. It is guaranteed that all RT optimization activities will not generate more disk IOPS (I/Os per second) than the configured limit. Limiting rt_merge_iops can reduce search performance degradation caused by merging.\n\n\n##### Example:\n\n\n\n```ini\nrt_merge_iops = 40\n```\n\n\n### rt_merge_maxiosize\n\n\nA maximum size of an I/O operation that the RT chunks merge thread is allowed to start. Optional, default is 0 (no limit).\n\nThis directive lets you throttle down the I/O impact arising from the `OPTIMIZE` statements. I/Os larger than this limit will be broken down into two or more I/Os, which will then be accounted for as separate I/Os with regards to the [rt_merge_iops](../Server_settings/Searchd.md#rt_merge_iops) limit. Thus, it is guaranteed that all optimization activities will not generate more than (rt_merge_iops * rt_merge_maxiosize) bytes of disk I/O per second.\n\n\n\n##### Example:\n\n\n\n```ini\nrt_merge_maxiosize = 1M\n```\n\n\n\n### seamless_rotate\n\n\nPrevents `searchd` stalls while rotating tables with huge amounts of data to precache. Optional, default is 1 (enable seamless rotation). On Windows systems, seamless rotation is disabled by default.\n\nTables may contain some data that needs to be precached in RAM. At the moment, `.spa`, `.spb`, `.spi`, and `.spm` files are fully precached (they contain attribute data, blob attribute data, keyword table, and killed row map, respectively.) Without seamless rotate, rotating a table tries to use as little RAM as possible and works as follows:\n\n1. New queries are temporarily rejected (with \"retry\" error code);\n2. `searchd` waits for all currently running queries to finish;\n3. The old table is deallocated, and its files are renamed;\n4. New table files are renamed, and required RAM is allocated;\n5. New table attribute and dictionary data are preloaded to RAM;\n6. `searchd` resumes serving queries from the new table.\n\nHowever, if there's a lot of attribute or dictionary data, then the preloading step could take a noticeable amount of time - up to several minutes in the case of preloading 1-5+ GB files.\n\nWith seamless rotate enabled, rotation works as follows:\n\n1. New table RAM storage is allocated;\n2. New table attribute and dictionary data are asynchronously preloaded to RAM;\n3. On success, the old table is deallocated, and both tables' files are renamed;\n4. On failure, the new table is deallocated;\n5. At any given moment, queries are served either from the old or new table copy.\n\nSeamless rotate comes at the cost of higher peak memory usage during the rotation (because both old and new copies of `.spa/.spb/.spi/.spm` data need to be in RAM while preloading the new copy). Average usage remains the same.\n\n\n\n##### Example:\n\n\n\n```ini\nseamless_rotate = 1\n```\n\n\n### secondary_index_block_cache\n\n\nThis option specifies the size of the block cache used by secondary indexes. It is optional, with a default of 8 MB. When secondary indexes work with filters that contain many values (e.g., IN() filters), they read and process metadata blocks for these values.\nIn joined queries, this process is repeated for each batch of rows from the left table, and each batch may reread the same metadata within a single joined query. This can severely affect performance. The metadata block cache keeps these blocks in memory so they\ncan be reused by subsequent batches.\n\nThe cache is only used in joined queries and has no effect on non-joined queries. Note that the cache size limit applies per attribute and per secondary index. Each attribute within each disk chunk operates within this limit. In the worst case, the total memory\nusage can be estimated by multiplying the limit by the number of disk chunks and the number of attributes used in joined queries.\n\nSetting `secondary_index_block_cache = 0` disables the cache.\n\n\n##### Example:\n\n\n\n```ini\nsecondary_index_block_cache = 16M\n```\n\n\n\n### secondary_indexes\n\n\nThis option enables/disables the use of secondary indexes for search queries. It is optional, and the default is 1 (enabled). Note that you don't need to enable it for indexing as it is always enabled as long as the [Manticore Columnar Library](https://github.com/manticoresoftware/columnar) is installed. The latter is also required for using the indexes when searching. There are three modes available:\n\n* `0`: Disable the use of secondary indexes on search. They can be enabled for individual queries using [analyzer hints](../Searching/Options.md#Query-optimizer-hints)\n* `1`: Enable the use of secondary indexes on search. They can be disabled for individual queries using [analyzer hints](../Searching/Options.md#Query-optimizer-hints)\n* `force`: Same as enable, but any errors during the loading of secondary indexes will be reported, and the whole index will not be loaded into the daemon.\n\n\n##### Example:\n\n\n\n```ini\nsecondary_indexes = 1\n```\n\n\n\n### server_id\n\n\nInteger number that serves as a server identifier used as a seed to generate a unique short UUID for nodes that are part of a replication cluster. The server_id must be unique across the nodes of a cluster and in the range from 0 to 127. If server_id is not set, it is calculated as a hash of the MAC address and the path to the PID file or a random number will be used as a seed for the short UUID.\n\n\n\n##### Example:\n\n\n\n```ini\nserver_id = 1\n```\n\n\n\n### shutdown_timeout\n\n\n`searchd --stopwait` waiting time, in seconds (or [special_suffixes](../Server_settings/Special_suffixes.md)). Optional, default is 60 seconds.\n\nWhen you run `searchd --stopwait` your server needs to perform some activities before stopping, such as finishing queries, flushing RT RAM chunks, flushing attributes, and updating the binlog. These tasks require some time. `searchd --stopwait` will wait up to `shutdown_time` seconds for the server to finish its jobs. The suitable time depends on your table size and load.\n\n\n\n##### Example:\n\n\n\n```ini\nshutdown_timeout = 3m # wait for up to 3 minutes\n```\n\n\n\n### shutdown_token\n\nSHA1 hash of the password required to invoke the 'shutdown' command from a VIP Manticore SQL connection. Without it,[debug](../Reporting_bugs.md#DEBUG) 'shutdown' subcommand will never cause the server to stop. Note that such simple hashing should not be considered strong protection, as we don't use a salted hash or any kind of modern hash function. It is intended as a fool-proof measure for housekeeping daemons in a local network.\n\n### skiplist_cache_size\n\n\nThis setting specifies the maximum size of the in-memory cache for decompressed skiplists. Optional, the default is 64M.\n\nSkiplists are used to speed up seeking in large doclists. Caching them avoids repeatedly decompressing the same skiplist data across queries. Set this option to `0` to disable caching.\n\n\n##### Example:\n\n\n\n```ini\nskiplist_cache_size = 128M\n```\n\n\n### snippets_file_prefix\n\n\nA prefix to prepend to the local file names when generating snippets. Optional, default is the current working folder.\n\nThis prefix can be used in distributed snippets generation along with `load_files` or `load_files_scattered` options.\n\nNote that this is a prefix and **not** a path! This means that if a prefix is set to \"server1\" and the request refers to \"file23\", `searchd` will attempt to open \"server1file23\" (all of that without quotes). So, if you need it to be a path, you have to include the trailing slash.\n\nAfter constructing the final file path, the server unwinds all relative dirs and compares the final result with the value of `snippet_file_prefix`. If the result does not begin with the prefix, such a file will be rejected with an error message.\n\nFor example, if you set it to `/mnt/data` and someone calls snippet generation with the file `../../../etc/passwd` as the source, they will get the error message:\n\n`File '/mnt/data/../../../etc/passwd' escapes '/mnt/data/' scope`\n\ninstead of the content of the file.\n\nAlso, with a non-set parameter and reading `/etc/passwd`, it will actually read /daemon/working/folder/etc/passwd since the default for the parameter is the server's working folder.\n\nNote also that this is a local option; it does not affect the agents in any way. So you can safely set a prefix on a master server. The requests routed to the agents will not be affected by the master's setting. They will, however, be affected by the agent's own settings.\n\nThis might be useful, for instance, when the document storage locations (whether local storage or NAS mountpoints) are inconsistent across the servers.\n\n\n\n##### Example:\n\n\n\n```ini\nsnippets_file_prefix = /mnt/common/server1/\n```\n\n\n> **WARNING:** If you still want to access files from the FS root, you have to explicitly set `snippets_file_prefix` to empty value (by `snippets_file_prefix=` line), or to root (by `snippets_file_prefix=/`).\n\n\n### sphinxql_state\n\n\nPath to a file where the current SQL state will be serialized.\n\nOn server startup, this file gets replayed. On eligible state changes (e.g., SET GLOBAL), this file gets rewritten automatically. This can prevent a hard-to-diagnose problem: If you load UDF functions but Manticore crashes, when it gets (automatically) restarted, your UDF and global variables will no longer be available. Using persistent state helps ensure a graceful recovery with no such surprises.\n\n`sphinxql_state` cannot be used to execute arbitrary commands, such as `CREATE TABLE`.\n\n\n##### Example:\n\n\n\n```ini\nsphinxql_state = uservars.sql\n```\n\n\n\n### sphinxql_timeout\n\n\nMaximum time to wait between requests (in seconds, or [special_suffixes](../Server_settings/Special_suffixes.md)) when using the SQL interface. Optional, default is 15 minutes.\n\n\n\n##### Example:\n\n\n\n```ini\nsphinxql_timeout = 15m\n```\n\n\n\n### ssl_ca\n\n\nPath to the SSL Certificate Authority (CA) certificate file (also known as root certificate). Optional, default is empty. When not empty, the certificate in `ssl_cert` should be signed by this root certificate.\n\nThe server uses the CA file to verify the signature on the certificate. The file must be in PEM format.\n\n\n##### Example:\n\n\n\n```ini\nssl_ca = keys/ca-cert.pem\n```\n\n\n\n### ssl_cert\n\n\nPath to the server's SSL certificate. Optional, default is empty.\n\nThe server uses this certificate as a self-signed public key to encrypt HTTP traffic over SSL. The file must be in PEM format.\n\n\n\n##### Example:\n\n\n\n```ini\nssl_cert = keys/server-cert.pem\n```\n\n\n\n### ssl_key\n\n\nPath to the SSL certificate key. Optional, default is empty.\n\nThe server uses this private key to encrypt HTTP traffic over SSL. The file must be in PEM format.\n\n\n\n##### Example:\n\n\n\n```ini\nssl_key = keys/server-key.pem\n```\n\n\n\n### subtree_docs_cache\n\n\nMax common subtree document cache size, per-query. Optional, default is 0 (disabled).\n\nThis setting limits the RAM usage of a common subtree optimizer (see [multi-queries](../Searching/Multi-queries.md)). At most, this much RAM will be spent to cache document entries for each query. Setting the limit to 0 disables the optimizer.\n\n\n\n##### Example:\n\n\n\n```ini\nsubtree_docs_cache = 8M\n```\n\n\n\n### subtree_hits_cache\n\n\nMax common subtree hit cache size, per-query. Optional, default is 0 (disabled).\n\nThis setting limits the RAM usage of a common subtree optimizer (see [multi-queries](../Searching/Multi-queries.md)). At most, this much RAM will be spent to cache keyword occurrences (hits) for each query. Setting the limit to 0 disables the optimizer.\n\n\n\n##### Example:\n\n\n\n```ini\nsubtree_hits_cache = 16M\n```\n\n\n### threads\n\n\nNumber of working threads (or, size of thread pool) for the Manticore daemon. Manticore creates this number of OS threads on start, and they perform all jobs inside the daemon, such as executing queries, creating snippets, etc. Some operations may be split into sub-tasks and executed in parallel, for example:\n\n* Search in a real-time table\n* Search in a distributed table consisting of local tables\n* Percolate query call\n* and others\n\nBy default, it's set to the number of CPU cores on the server. Manticore creates the threads on start and keeps them until it's stopped. Each sub-task can use one of the threads when it needs it. When the sub-task finishes, it releases the thread so another sub-task can use it.\n\nIn the case of intensive I/O type of load, it might make sense to set the value higher than the number of CPU cores.\n\n\n```ini\nthreads = 10\n```\n\n\n\n### thread_stack\n\n\nMaximum stack size for a job (coroutine, one search query may cause multiple jobs/coroutines). Optional, default is 128K.\n\nEach job has its own stack of 128K. When you run a query, it's checked for how much stack it requires. If the default 128K is enough, it's just processed. If it needs more, another job with an increased stack is scheduled, which continues processing. The maximum size of such an advanced stack is limited by this setting.\n\nSetting the value to a reasonably high rate will help with processing very deep queries without implying that overall RAM consumption will grow too high. For example, setting it to 1G does not imply that every new job will take 1G of RAM, but if we see that it requires, let's say, 100M stack, we just allocate 100M for the job. Other jobs at the same time will be running with their default 128K stack. The same way, we can run even more complex queries that need 500M. And only if we **see** internally that the job requires more than 1G of stack, we will fail and report about too low thread_stack.\n\nHowever, in practice, even a query which needs 16M of stack is often too complex for parsing and consumes too much time and resources to be processed. So, the daemon will process it, but limiting such queries by the `thread_stack` setting looks quite reasonable.\n\n\n\n##### Example:\n\n\n\n```ini\nthread_stack = 8M\n```\n\n\n\n### unlink_old\n\n\nDetermines whether to unlink `.old` table copies on successful rotation. Optional, default is 1 (do unlink).\n\n\n\n##### Example:\n\n\n\n```ini\nunlink_old = 0\n```\n\n\n\n### watchdog\n\n\nThreaded server watchdog. Optional, default is 1 (watchdog enabled).\n\nWhen a Manticore query crashes, it can take down the entire server. With the watchdog feature enabled, `searchd` also maintains a separate lightweight process that monitors the main server process and automatically restarts it in case of abnormal termination. The watchdog is enabled by default.\n\n\n\n```ini\nwatchdog = 0 # disable watchdog\n```\n\n\n\n", - "updated_at": 1772425113, - "source_md5": "076b9344f25d5dafa9de9dd9facb43f2", - "source_snapshot": "/tmp/translator-source-92pZQR", - "target_snapshot": "/tmp/translator-target-JmeTWM" + "source_text": "# Section \"Searchd\" in configuration\n\nThe below settings are to be used in the `searchd` section of the Manticore Search configuration file to control the server's behavior. Below is a summary of each setting:\n\n### access_plain_attrs\n\nThis setting sets instance-wide defaults for [access_plain_attrs](../Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#Accessing-table-files). It is optional, with a default value of `mmap_preread`.\n\nThe `access_plain_attrs` directive allows you to define the default value of [access_plain_attrs](../Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#Accessing-table-files) for all tables managed by this searchd instance. Per-table directives have higher priority and will override this instance-wide default, providing more fine-grained control.\n\n### access_blob_attrs\n\nThis setting sets instance-wide defaults for [access_blob_attrs](../Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#Accessing-table-files). It is optional, with a default value of `mmap_preread`.\n\nThe `access_blob_attrs` directive allows you to define the default value of [access_blob_attrs](../Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#Accessing-table-files) for all tables managed by this searchd instance. Per-table directives have higher priority and will override this instance-wide default, providing more fine-grained control.\n\n### access_doclists\n\nThis setting sets instance-wide defaults for [access_doclists](../Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#Accessing-table-files). It is optional, with a default value of `file`.\n\nThe `access_doclists` directive allows you to define the default value of [access_doclists](../Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#Accessing-table-files) for all tables managed by this searchd instance. Per-table directives have higher priority and will override this instance-wide default, providing more fine-grained control.\n\n### access_hitlists\n\nThis setting sets instance-wide defaults for [access_hitlists](../Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#Accessing-table-files). It is optional, with a default value of `file`.\n\nThe `access_hitlists` directive allows you to define the default value of [access_hitlists](../Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#Accessing-table-files) for all tables managed by this searchd instance. Per-table directives have higher priority and will override this instance-wide default, providing more fine-grained control.\n\n### access_dict\n\nThis setting sets instance-wide defaults for [access_dict](../Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#Accessing-table-files). It is optional, with a default value of `mmap_preread`.\n\nThe `access_dict` directive allows you to define the default value of [access_dict](../Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#Accessing-table-files) for all tables managed by this searchd instance. Per-table directives have higher priority and will override this instance-wide default, providing more fine-grained control.\n\n### agent_connect_timeout\n\nThis setting sets instance-wide defaults for the [agent_connect_timeout](../Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent_connect_timeout) parameter.\n\n\n### agent_query_timeout\n\nThis setting sets instance-wide defaults for the [agent_query_timeout](../Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent_query_timeout) parameter. It can be overridden on a per-query basis using the `OPTION agent_query_timeout=XXX` clause.\n\n\n### agent_retry_count\n\nThis setting is an integer that specifies how many times Manticore will attempt to connect and query remote agents through a distributed table before reporting a fatal query error. The default value is 0 (i.e., no retries). You can also set this value on a per-query basis using the `OPTION retry_count=XXX` clause. If a per-query option is provided, it will override the value specified in the configuration.\n\nNote that if you use [agent mirrors](../Creating_a_cluster/Remote_nodes/Mirroring.md#Agent-mirrors) in the definition of your distributed table, the server will select a different mirror for each connection attempt according to the chosen [ha_strategy](../Creating_a_cluster/Remote_nodes/Load_balancing.md#ha_strategy). In this case, the `agent_retry_count` will be aggregated for all mirrors in a set.\n\nFor example, if you have 10 mirrors and set `agent_retry_count=5`, the server will retry up to 50 times, assuming an average of 5 tries for each of the 10 mirrors (with the `ha_strategy = roundrobin` option, this will be the case).\n\nHowever, the value provided as the `retry_count` option for the [agent](../Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent) serves as an absolute limit. In other words, the `[retry_count=2]` option in the agent definition always means a maximum of 2 attempts, regardless of whether you have specified 1 or 10 mirrors for the agent.\n\n### agent_retry_delay\n\nThis setting is an integer in milliseconds (or [special_suffixes](../Server_settings/Special_suffixes.md)) that specifies the delay before Manticore retries querying a remote agent in case of failure. This value is only relevant when a non-zero [agent_retry_count](../Creating_a_table/Creating_a_distributed_table/Creating_a_local_distributed_table.md) or non-zero per-query `retry_count` is specified. The default value is 500. You can also set this value on a per-query basis using the `OPTION retry_delay=XXX` clause. If a per-query option is provided, it will override the value specified in the configuration.\n\n\n### attr_flush_period\n\n\nWhen using [Update](../Data_creation_and_modification/Updating_documents/UPDATE.md) to modify document attributes in real-time, the changes are first written to an in-memory copy of the attributes. These updates occur in a memory-mapped file, meaning the OS decides when to write the changes to disk. Upon normal shutdown of `searchd` (triggered by a `SIGTERM` signal), all changes are forced to be written to disk.\n\nYou can also instruct `searchd` to periodically write these changes back to disk to prevent data loss. The interval between these flushes is determined by `attr_flush_period`, specified in seconds (or [special_suffixes](../Server_settings/Special_suffixes.md)).\n\nBy default, the value is 0, which disables periodic flushing. However, flushing will still occur during a normal shutdown.\n\n\n##### Example:\n\n\n\n```ini\nattr_flush_period = 900 # persist updates to disk every 15 minutes\n```\n\n\n### auto_optimize\n\n\nThis setting controls the automatic [OPTIMIZE](../Securing_and_compacting_a_table/Compacting_a_table.md#OPTIMIZE-TABLE) process for table compaction.\n\nBy default table compaction occurs automatically. You can modify this behavior with the `auto_optimize` setting:\n* 0 to disable automatic table compaction (you can still call `OPTIMIZE` manually)\n* 1 to explicitly enable it\n* to enable it while multiplying the optimization threshold by 2.\n\nBy default, OPTIMIZE runs until the number of disk chunks is less than or equal to the number of logical CPU cores multiplied by 2.\n\nHowever, if the table has attributes with KNN indexes, this threshold is different. In this case, it is set to the number of physical CPU cores divided by 2 to improve KNN search performance.\n\nNote that toggling `auto_optimize` on or off doesn't prevent you from running [OPTIMIZE TABLE](../Securing_and_compacting_a_table/Compacting_a_table.md#OPTIMIZE-TABLE) manually.\n\n\n##### Example:\n\n\n```ini\nauto_optimize = 0 # disable automatic OPTIMIZE\n```\n\n\n```ini\nauto_optimize = 2 # OPTIMIZE starts at 16 chunks (on 4 cpu cores server)\n```\n\n\n\n### parallel_chunk_merges\n\n\nThis setting controls how many disk chunk merge jobs the server is allowed to run in parallel during [OPTIMIZE](../Securing_and_compacting_a_table/Compacting_a_table.md#OPTIMIZE-TABLE) for real-time tables.\n\nThis affects only disk chunk merging (compaction), not query parallelism.\n\nSet it to `1` to disable parallel chunk merging (merge jobs will run one-by-one). Higher values may speed up compaction on systems with fast storage, but will increase concurrent disk I/O.\n\nDefault is `max(1, min(2, threads/2))`.\n\nThis value can be changed at runtime using `SET GLOBAL parallel_chunk_merges = N` and inspected via `SHOW VARIABLES`.\n\n\n##### Example:\n\n\n```ini\nparallel_chunk_merges = 1\n```\n\n\n```ini\nparallel_chunk_merges = 4\n```\n\n\n\n### merge_chunks_per_job\n\n\nThis setting controls how many RT disk chunks are merged in a single OPTIMIZE job (N-way merge). If fewer than this number are available, the job will merge what it can (minimum 2).\n\nLower values allow more jobs to be scheduled in parallel; higher values reduce the number of jobs but increase the size of each merge.\n\nDefault is `2`.\n\nThis value can be changed at runtime using `SET GLOBAL merge_chunks_per_job = N` and inspected via `SHOW VARIABLES`.\n\n\n##### Example:\n\n\n```ini\nmerge_chunks_per_job = 4\n```\n\n\n\n### auto_schema\n\n\nManticore supports the automatic creation of tables that don't yet exist but are specified in INSERT statements. This feature is enabled by default. To disable it, set `auto_schema = 0` explicitly in your configuration. To re-enable it, set `auto_schema = 1` or remove the `auto_schema` setting from the configuration.\n\nKeep in mind that the `/bulk` HTTP endpoint does not support automatic table creation.\n\n> NOTE: The [auto schema functionality](../Data_creation_and_modification/Adding_documents_to_a_table/Adding_documents_to_a_real-time_table.md#Auto-schema) requires [Manticore Buddy](../Installation/Manticore_Buddy.md). If it doesn't work, make sure Buddy is installed.\n\n\n```ini\nauto_schema = 0 # disable automatic table creation\n```\n\n\n```ini\nauto_schema = 1 # enable automatic table creation\n```\n\n\n\n### binlog_flush\n\n\nThis setting controls the binary log transaction flush/sync mode. It is optional, with a default value of 2 (flush every transaction, sync every second).\n\nThe directive determines how frequently the binary log will be flushed to the OS and synced to disk. There are three supported modes:\n\n* 0, flush and sync every second. This offers the best performance, but up to 1 second worth of committed transactions can be lost in the event of a server crash or an OS/hardware crash.\n* 1, flush and sync every transaction. This mode provides the worst performance but guarantees that every committed transaction's data is saved.\n* 2, flush every transaction, sync every second. This mode delivers good performance and ensures that every committed transaction is saved in case of a server crash. However, in the event of an OS/hardware crash, up to 1 second worth of committed transactions can be lost.\n\nFor those familiar with MySQL and InnoDB, this directive is similar to `innodb_flush_log_at_trx_commit`. In most cases, the default hybrid mode 2 provides a nice balance of speed and safety, with full RT table data protection against server crashes and some protection against hardware ones.\n\n\n##### Example:\n\n\n\n```ini\nbinlog_flush = 1 # ultimate safety, low speed\n```\n\n\n### binlog_common\n\n\nThis setting controls how binary log files are managed. It is optional, with a default value of 0 (separate file for each table).\n\nYou can choose between two ways to manage binary log files:\n\n* Separate file for each table (default, `0`): Each table saves its changes in its own log file. This setup is good if you have many tables that get updated at different times. It allows tables to be updated without waiting for others. Also, if there is a problem with one table's log file, it does not affect the others.\n* Single file for all tables (`1`): All tables use the same binary log file. This method makes it easier to handle files because there are fewer of them. However, this could keep files longer than needed if one table still needs to save its updates. This setting might also slow things down if many tables need to update at the same time because all changes have to wait to be written to one file.\n\n\n##### Example:\n\n\n\n```ini\nbinlog_common = 1 # use a single binary log file for all tables\n```\n\n\n### binlog_max_log_size\n\n\nThis setting controls the maximum binary log file size. It is optional, with a default value of 256 MB.\n\nA new binlog file will be forcibly opened once the current binlog file reaches this size limit. This results in a finer granularity of logs and can lead to more efficient binlog disk usage under certain borderline workloads. A value of 0 indicates that the binlog file should not be reopened based on size.\n\n\n\n##### Example:\n\n\n\n```ini\nbinlog_max_log_size = 16M\n```\n\n\n\n### binlog_path\n\n\nThis setting determines the path for binary log (also known as transaction log) files. It is optional, with a default value of the build-time configured data directory (e.g., `/var/lib/manticore/data/binlog.*` in Linux).\n\nBinary logs are used for crash recovery of RT table data and for attribute updates of plain disk indices that would otherwise only be stored in RAM until flush. When logging is enabled, every transaction COMMIT-ted into an RT table is written into a log file. Logs are then automatically replayed on startup after an unclean shutdown, recovering the logged changes.\n\nThe `binlog_path` directive specifies the location of binary log files. It should only contain the path; `searchd` will create and unlink multiple `binlog.*` files in the directory as necessary (including binlog data, metadata, and lock files, etc).\n\nAn empty value disables binary logging, which improves performance but puts the RT table data at risk.\n\n\n\n##### Example:\n\n\n\n```ini\nbinlog_path = # disable logging\nbinlog_path = /var/lib/manticore/data # /var/lib/manticore/data/binlog.001 etc will be created\n```\n\n\n### boolean_simplify\n\n\nThis setting controls the default value for [boolean_simplify](../Searching/Options.md#boolean_simplify) search option. It is optional, with a default value of 1 (enabled).\n\nWhen set to 1, the server will automatically apply [boolean query optimization](../Searching/Full_text_matching/Boolean_optimization.md) to improve query performance. When set to 0, queries will be executed without optimization by default. This default can be overridden on a per-query basis using the corresponding search option `boolean_simplify`.\n\n\n```ini\nsearchd {\n boolean_simplify = 0 # disable boolean optimization by default\n}\n```\n\n\n### buddy_path\n\n\nThis setting determines the path to the Manticore Buddy binary. It is optional, with a default value being the build-time configured path, which varies across different operating systems. Typically, you don't need to modify this setting. However, it may be useful if you wish to run Manticore Buddy in debug mode, make changes to Manticore Buddy, or implement a new plugin. In the latter case, you can `git clone` Buddy from https://github.com/manticoresoftware/manticoresearch-buddy, add a new plugin to the directory `./plugins/`, and run `composer install --prefer-source` for easier development after you change the directory to the Buddy source.\n\nTo ensure you can run `composer`, your machine must have PHP 8.2 or higher installed with the following extensions:\n\n```\n--enable-dom\n--with-libxml\n--enable-tokenizer\n--enable-xml\n--enable-xmlwriter\n--enable-xmlreader\n--enable-simplexml\n--enable-phar\n--enable-bcmath\n--with-gmp\n--enable-debug\n--with-mysqli\n--enable-mysqlnd\n```\n\nYou can also opt for the special `manticore-executor-dev` version for Linux amd64 available in the releases, for example: https://github.com/manticoresoftware/executor/releases/tag/v1.0.13\n\nIf you go this route, remember to link the dev version of the manticore executor to `/usr/bin/php`.\n\nTo disable Manticore Buddy, set the value to empty as shown in the example.\n\n\n##### Example:\n\n\n\n```ini\nbuddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php # use the default Manticore Buddy in Linux\nbuddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php --threads=1 # runs Buddy with a single worker\nbuddy_path = manticore-executor -n /opt/homebrew/share/manticore/modules/manticore-buddy/bin/manticore-buddy/src/main.php # use the default Manticore Buddy in MacOS arm64\nbuddy_path = manticore-executor -n /Users/username/manticoresearch-buddy/src/main.php # use Manticore Buddy from a non-default location\nbuddy_path = # disables Manticore Buddy\nbuddy_path = manticore-executor -n /Users/username/manticoresearch-buddy/src/main.php --skip=manticoresoftware/buddy-plugin-replace # --skip - skips plugins\nbuddy_path = manticore-executor -n /usr/share/manticore/modules/manticore-buddy/src/main.php --enable-plugin=manticoresoftware/buddy-plugin-show # runs Buddy with only the SHOW plugin\n```\n\n\n### client_timeout\n\n\nThis setting determines the maximum time to wait between requests (in seconds or [special_suffixes](../Server_settings/Special_suffixes.md)) when using persistent connections. It is optional, with a default value of five minutes.\n\n\n\n##### Example:\n\n\n\n```ini\nclient_timeout = 1h\n```\n\n\n\n### collation_libc_locale\n\n\nServer libc locale. Optional, default is C.\n\nSpecifies the libc locale, affecting the libc-based collations. Refer to [collations](../Searching/Collations.md) section for the details.\n\n\n\n##### Example:\n\n\n\n```ini\ncollation_libc_locale = fr_FR\n```\n\n\n\n### collation_server\n\n\nDefault server collation. Optional, default is libc_ci.\n\nSpecifies the default collation used for incoming requests. The collation can be overridden on a per-query basis. Refer to [collations](../Searching/Collations.md) section for the list of available collations and other details.\n\n\n\n##### Example:\n\n\n\n```ini\ncollation_server = utf8_ci\n```\n\n\n\n### data_dir\n\n\nWhen specified, this setting enables the [real-time mode](../Creating_a_table/Local_tables.md#Online-schema-management-%28RT-mode%29), which is an imperative way of managing data schema. The value should be a path to the directory where you want to store all your tables, binary logs, and everything else needed for the proper functioning of Manticore Search in this mode.\nIndexing of [plain tables](../Creating_a_table/Local_tables/Plain_table.md) is not allowed when the `data_dir` is specified. Read more about the difference between the RT mode and the plain mode in [this section](../Read_this_first.md#Real-time-table-vs-plain-table).\n\n\n##### Example:\n\n\n\n```ini\ndata_dir = /var/lib/manticore\n```\n\n\n### attr_autoconv_strict\n\n\nThis setting controls strict validation mode for string-to-number type conversions during INSERT and REPLACE operations. Optional, default is 0 (non-strict mode, backward compatible).\n\nWhen set to 1 (strict mode), invalid string-to-number conversions (e.g., converting an empty string `''` or non-numeric string `'a'` to a bigint attribute) will return errors instead of silently converting to 0. This helps catch data quality issues early during data insertion.\n\nWhen set to 0 (non-strict mode, default), invalid conversions will silently convert to 0, maintaining backward compatibility with older versions.\n\nStrict mode validates the following cases:\n* Empty strings or strings that cannot be converted\n* Strings with trailing non-numeric characters (e.g., `'123abc'`)\n* Numeric values that exceed type ranges (overflow/underflow)\n\n\n##### Example:\n\n\n\n```ini\nattr_autoconv_strict = 1 # enable strict conversion mode\n```\n\n\n### diskchunk_flush_search_timeout\n\n\nThe timeout for preventing auto-flushing a RAM chunk if there are no searches in the table. Optional, default is 30 seconds.\n\nThe time to check for searches before determining whether to auto-flush.\nAuto-flushing will occur only if there has been at least one search in the table within the last `diskchunk_flush_search_timeout` seconds. Works in conjunction with [diskchunk_flush_write_timeout](../Server_settings/Searchd.md#diskchunk_flush_write_timeout). The corresponding [per-table setting](../Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#diskchunk_flush_search_timeout) has a higher priority and will override this instance-wide default, providing more fine-grained control.\n\n\n##### Example:\n\n\n\n```ini\ndiskchunk_flush_search_timeout = 120s\n```\n\n\n### diskchunk_flush_write_timeout\n\n\nThe time in seconds to wait without a write before auto-flushing the RAM chunk to disk. Optional, default is 1 second.\n\nIf no write occurs in the RAM chunk within `diskchunk_flush_write_timeout` seconds, the chunk will be flushed to disk. Works in conjunction with [diskchunk_flush_search_timeout](../Server_settings/Searchd.md#diskchunk_flush_search_timeout). To disable auto-flush, set `diskchunk_flush_write_timeout = -1` explicitly in your configuration. The corresponding [per-table setting](../Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#diskchunk_flush_write_timeout) has a higher priority and will override this instance-wide default, providing more fine-grained control.\n\n\n##### Example:\n\n\n\n```ini\ndiskchunk_flush_write_timeout = 60s\n```\n\n\n### docstore_cache_size\n\n\nThis setting specifies the maximum size of document blocks from document storage that are held in memory. It is optional, with a default value of 16m (16 megabytes).\n\nWhen `stored_fields` is used, document blocks are read from disk and uncompressed. Since every block typically holds several documents, it may be reused when processing the next document. For this purpose, the block is held in a server-wide cache. The cache holds uncompressed blocks.\n\n\n\n##### Example:\n\n\n\n```ini\ndocstore_cache_size = 8m\n```\n\n\n### engine\n\n\nDefault attribute storage engine used when creating tables in RT mode. Can be `rowwise` (default) or `columnar`.\n\n\n##### Example:\n\n\n\n```ini\nengine = columnar\n```\n\n\n\n### expansion_limit\n\n\nThis setting determines the maximum number of expanded keywords for a single wildcard. It is optional, with a default value of 0 (no limit).\n\nWhen performing substring searches against tables built with `dict = keywords` enabled, a single wildcard may potentially result in thousands or even millions of matched keywords (think of matching `a*` against the entire Oxford dictionary). This directive allows you to limit the impact 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).\n\n\n##### Example:\n\n\n\n```ini\nexpansion_limit = 16\n```\n\n\n### expansion_merge_threshold_docs\n\n\nThis setting determines the maximum number of documents in the expanded keyword that allows merging all such keywords together. It is optional, with a default value of 32.\n\nWhen performing substring searches against tables built with `dict = keywords` enabled, a single wildcard may potentially result in thousands or even millions of matched keywords. This directive allows you to increase the limit of how many keywords will merge together to speed up matching but uses more memory in the search.\n\n\n##### Example:\n\n\n\n```ini\nexpansion_merge_threshold_docs = 1024\n```\n\n\n### expansion_merge_threshold_hits\n\n\nThis setting determines the maximum number of hits in the expanded keyword that allows merging all such keywords together. It is optional, with a default value of 256.\n\nWhen performing substring searches against tables built with `dict = keywords` enabled, a single wildcard may potentially result in thousands or even millions of matched keywords. This directive allows you to increase the limit of how many keywords will merge together to speed up matching but uses more memory in the search.\n\n\n##### Example:\n\n\n\n```ini\nexpansion_merge_threshold_hits = 512\n```\n\n\n### expansion_phrase_limit\n\n\nThis setting controls the maximum number of alternative phrase variants generated due to `OR` operators inside `PHRASE`, `PROXIMITY`, and `QUORUM` operators. It is optional, with a default value of 1024.\n\nWhen using the `|` (OR) operator inside phrase-like operator, the total number of expanded combinations may grow exponentially depending on the number of alternatives specified. This setting helps prevent excessive query expansion by capping the number of permutations considered during query processing.\n\nIf the number of generated variants exceeds this limit, the query will either:\n\n- fail with an error (default behavior)\n- return partial results with a warning, if `expansion_phrase_warning` is enabled\n\n\n##### Example:\n\n\n\n```ini\nexpansion_phrase_limit = 4096\n```\n\n\n### expansion_phrase_warning\n\n\nThis setting controls the behavior when the query expansion limit defined by `expansion_phrase_limit` is exceeded.\n\nBy default, the query will fail with an error message. When `expansion_phrase_warning` is set to 1, the search continues using a partial transformation of the phrase (up to the configured limit), and the server returns a warning message to the user along with the result set. This allows queries that are too complex for full expansion to still return partial results without complete failure.\n\n\n##### Example:\n\n\n\n```ini\nexpansion_phrase_warning = 1\n```\n\n\n### grouping_in_utc\n\nThis setting specifies whether timed grouping in API and SQL will be calculated in the local timezone or in UTC. It is optional, with a default value of 0 (meaning 'local timezone').\n\nBy default, all 'group by time' expressions (like group by day, week, month, and year in API, also group by day, month, year, yearmonth, yearmonthday in SQL) are done using local time. For example, if you have documents with attributes timed `13:00 utc` and `15:00 utc`, in the case of grouping, they both will fall into facility groups according to your local timezone setting. If you live in `utc`, it will be one day, but if you live in `utc+10`, then these documents will be matched into different `group by day` facility groups (since 13:00 utc in UTC+10 timezone is 23:00 local time, but 15:00 is 01:00 of the next day). Sometimes such behavior is unacceptable, and it is desirable to make time grouping not dependent on timezone. You can run the server with a defined global TZ environment variable, but it will affect not only grouping but also timestamping in the logs, which may be undesirable as well. Switching 'on' this option (either in config or using [SET global](../Server_settings/Setting_variables_online.md#SET) statement in SQL) will cause all time grouping expressions to be calculated in UTC, leaving the rest of time-depentend functions (i.e. logging of the server) in local TZ.\n\n\n### timezone\n\nThis setting specifies the timezone to be used by date/time-related functions. By default, the local timezone is used, but you can specify a different timezone in IANA format (e.g., `Europe/Amsterdam`).\n\nNote that this setting has no impact on logging, which always operates in the local timezone.\n\nAlso, note that if `grouping_in_utc` is used, the 'group by time' function will still use UTC, while other date/time-related functions will use the specified timezone. Overall, it is not recommended to mix `grouping_in_utc` and `timezone`.\n\nYou can configure this option either in the config or by using the [SET global](../Server_settings/Setting_variables_online.md#SET) statement in SQL.\n\n\n### ha_period_karma\n\n\nThis setting specifies the agent mirror statistics window size, in seconds (or [special_suffixes](../Server_settings/Special_suffixes.md)). It is optional, with a default value of 60 seconds.\n\nFor a distributed table with agent mirrors in it (see more in [agent](../Creating_a_table/Creating_a_distributed_table/Creating_a_local_distributed_table.md), the master tracks several different per-mirror counters. These counters are then used for failover and balancing (the master picks the best mirror to use based on the counters). Counters are accumulated in blocks of `ha_period_karma` seconds.\n\nAfter beginning a new block, the master may still use the accumulated values from the previous one until the new one is half full. As a result, any previous history stops affecting the mirror choice after 1.5 times ha_period_karma seconds at most.\n\nEven though at most two blocks are used for mirror selection, up to 15 last blocks are stored for instrumentation purposes. These blocks can be inspected using the [SHOW AGENT STATUS](../Node_info_and_management/Node_status.md#SHOW-AGENT-STATUS) statement.\n\n\n\n##### Example:\n\n\n\n```ini\nha_period_karma = 2m\n```\n\n\n\n### ha_ping_interval\n\n\nThis setting configures the interval between agent mirror pings, in milliseconds (or [special_suffixes](../Server_settings/Special_suffixes.md)). It is optional, with a default value of 1000 milliseconds.\n\nFor a distributed table with agent mirrors in it (see more in [agent](../Creating_a_table/Creating_a_distributed_table/Creating_a_local_distributed_table.md)), the master sends all mirrors a ping command during idle periods. This is to track the current agent status (alive or dead, network roundtrip, etc). The interval between such pings is defined by this directive. To disable pings, set ha_ping_interval to 0.\n\n\n\n##### Example:\n\n\n\n```ini\nha_ping_interval = 3s\n```\n\n\n\n### hostname_lookup\n\nThe `hostname_lookup` option defines the strategy for renewing hostnames. By default, the IP addresses of agent host names are cached at server start to avoid excessive access to DNS. However, in some cases, the IP can change dynamically (e.g. cloud hosting) and it may be desirable to not cache the IPs. Setting this option to `request` disables the caching and queries the DNS for each query. The IP addresses can also be manually renewed using the `FLUSH HOSTNAMES` command.\n\n### jobs_queue_size\n\nThe jobs_queue_size setting defines how many \"jobs\" can be in the queue at the same time. It is unlimited by default.\n\nIn most cases, a \"job\" means one query to a single local table (plain table or a disk chunk of a real-time table). For example, if you have a distributed table consisting of 2 local tables or a real-time table with 2 disk chunks, a search query to either of them will mostly put 2 jobs in the queue. Then, the thread pool (whose size is defined by [threads](../Server_settings/Searchd.md#threads) will process them. However, in some cases, if the query is too complex, more jobs can be created. Changing this setting is recommended when [max_connections](../Server_settings/Searchd.md#max_connections) and [threads](../Server_settings/Searchd.md#threads) are not enough to find a balance between the desired performance.\n\n### join_batch_size\n\nTable joins work by accumulating a batch of matches, which are the results of the query executed on the left table. This batch is then processed as a single query on the right table.\n\nThis option allows you to adjust the batch size. The default value is `1000`, and setting this option to `0` disables batching.\n\nA larger batch size may improve performance; however, for some queries, it can lead to excessive memory consumption.\n\n\n##### Example:\n\n\n\n```ini\njoin_batch_size = 2000\n```\n\n\n### join_cache_size\n\nEach query executed on the right table is defined by specific JOIN ON conditions, which determine the result set retrieved from the right table.\n\nIf there are only a few unique JOIN ON conditions, reusing the results can be more efficient than repeatedly executing queries on the right table. To enable this, the result sets are stored in a cache.\n\nThis option allows you to configure the size of this cache. The default value is `20 MB`, and setting this option to 0 disables caching.\n\nNote that each thread maintains its own cache, so you should account for the number of threads executing queries when estimating total memory usage.\n\n\n##### Example:\n\n\n\n```ini\njoin_cache_size = 10M\n```\n\n\n### listen_backlog\n\n\nThe listen_backlog setting determines the length of the TCP listen backlog for incoming connections. This is particularly relevant for Windows builds that process requests one by one. When the connection queue reaches its limit, new incoming connections will be refused.\nFor non-Windows builds, the default value should work fine, and there is usually no need to adjust this setting.\n\n\n\n##### Example:\n\n\n\n```ini\nlisten_backlog = 20\n```\n\n\n### kibana_version_string\n\n\nA server version string to return to Kibana or OpenSearch Dashboards. Optional \u2014 by default, it's set `7.6.0`.\n\nSome versions of Kibana and OpenSearch Dashboards expect the server to report a specific version number, and might behave differently depending on it. To workaround such issues, you can use this setting, which makes Manticore report a custom version to Kibana or OpenSearch Dashboards.\n\n\n##### Example:\n\n\n\n```ini\nkibana_version_string = 1.2.3\n```\n\n\n### listen\n\n\nThis setting lets you specify an IP address and port, or Unix-domain socket path, that Manticore will accept connections on.\n\nThe general syntax for `listen` is:\n\n```ini\nlisten = ( address \":\" port | port | path | address \":\" port start - port end ) [ \":\" protocol [ \"_vip\" ] [ \"_readonly\" ] ]\n```\n\nYou can specify:\n* either an IP address (or hostname) and a port number\n* or just a port number\n* or a Unix socket path (not supported on Windows)\n* or an IP address and port range\n\nIf you specify a port number but not an address, `searchd` will listen on all network interfaces. Unix path is identified by a leading slash. Port range can be set only for the replication protocol.\n\nYou can also specify a protocol handler (listener) to be used for connections on this socket. The listeners are:\n\n* **Not specified** - Manticore will accept connections at this port from:\n - other Manticore agents (i.e., a remote distributed table)\n - clients via HTTP and HTTPS\n - [Manticore Buddy](https://manticoresearch.com/blog/manticoresearch-buddy-intro/). **Ensure you have a listener of this kind (or an `http` listener, as mentioned below) to avoid limitations in Manticore functionality.**\n* `mysql` MySQL protocol for connections from MySQL clients. Note:\n - Compressed protocol is also supported.\n - If [SSL](../Security/SSL.md#SSL) is enabled, you can make an encrypted connection.\n* `replication` - replication protocol used for nodes communication. More details can be found in the [replication](../Creating_a_cluster/Setting_up_replication/Setting_up_replication.md) section. You can specify multiple replication listeners, but they must all listen on the same IP; only the ports can be different. When you define a replication listener with a port range (e.g., `listen = 192.168.0.1:9320-9328:replication`), Manticore doesn't immediately start listening on these ports. Instead, it will take random free ports from the specified range only when you start using replication. At least 2 ports are required in the range for replication to work properly.\n* `http` - same as **Not specified**. Manticore will accept connections at this port from remote agents and clients via HTTP and HTTPS.\n* `https` - HTTPS protocol. Manticore will accept **only** HTTPS connections at this port. More details can be found in section [SSL](../Security/SSL.md).\n* `sphinx` - legacy binary protocol. Used to serve connections from remote [SphinxSE](../Extensions/SphinxSE.md) clients. Some Sphinx API clients implementations (an example is the Java one) require the explicit declaration of the listener.\n\nAdding suffix `_vip` to client protocols (that is, all except `replication`, for instance `mysql_vip` or `http_vip` or just `_vip`) forces creating a dedicated thread for the connection to bypass different limitations. That's useful for node maintenance in case of severe overload when the server would either stall or not let you connect via a regular port otherwise.\n\nSuffix `_readonly` sets [read-only mode](../Security/Read_only.md) for the listener and limits it to accept only read queries.\n\n\n##### Example:\n\n\n\n```ini\nlisten = localhost\nlisten = localhost:5000 # listen for remote agents (binary API) and http/https requests on port 5000 at localhost\nlisten = 192.168.0.1:5000 # listen for remote agents (binary API) and http/https requests on port 5000 at 192.168.0.1\nlisten = /var/run/manticore/manticore.s # listen for binary API requests on unix socket\nlisten = /var/run/manticore/manticore.s:mysql # listen for mysql requests on unix socket\nlisten = 9312 # listen for remote agents (binary API) and http/https requests on port 9312 on any interface\nlisten = localhost:9306:mysql # listen for mysql requests on port 9306 at localhost\nlisten = localhost:9307:mysql_readonly # listen for mysql requests on port 9307 at localhost and accept only read queries\nlisten = 127.0.0.1:9308:http # listen for http requests as well as connections from remote agents (and binary API) on port 9308 at localhost\nlisten = 192.168.0.1:9320-9328:replication # listen for replication connections on ports 9320-9328 at 192.168.0.1\nlisten = 127.0.0.1:9443:https # listen for https requests (not http) on port 9443 at 127.0.0.1\nlisten = 127.0.0.1:9312:sphinx # listen for legacy Sphinx requests (e.g. from SphinxSE) on port 9312 at 127.0.0.1\n```\n\n\nThere can be multiple `listen` directives. `searchd` will listen for client connections on all specified ports and sockets. The default config provided in Manticore packages defines listening on ports:\n* `9308` and `9312` for connections from remote agents and non-MySQL based clients\n* and on port `9306` for MySQL connections.\n\nIf you don't specify any `listen` in the configuration at all, Manticore will wait for connections on:\n* `127.0.0.1:9306` for MySQL clients\n* `127.0.0.1:9312` for HTTP/HTTPS and connections from other Manticore nodes and clients based on the Manticore binary API.\n\n#### Listening on privileged ports\n\nBy default, Linux won't allow you to let Manticore listen on a port below 1024 (e.g. `listen = 127.0.0.1:80:http` or `listen = 127.0.0.1:443:https`) unless you run searchd under root. If you still want to be able to start Manticore, so it listens on ports < 1024 under a non-root user, consider doing one of the following (either of these should work):\n* Run the command `setcap CAP_NET_BIND_SERVICE=+eip /usr/bin/searchd`\n* Add `AmbientCapabilities=CAP_NET_BIND_SERVICE` to Manticore's systemd unit and reload the daemon (`systemctl daemon-reload`).\n\n#### Technical details about Sphinx API protocol and TFO\n
\nLegacy Sphinx protocol has 2 phases: handshake exchanging and data flow. The handshake consists of a packet of 4 bytes from the client, and a packet of 4 bytes from the daemon with only one purpose - the client determines that the remote is a real Sphinx daemon, the daemon determines that the remote is a real Sphinx client. The main dataflow is quite simple: let's both sides declare their handshakes, and the opposite check them. That exchange with short packets implies using special `TCP_NODELAY` flag, which switches off Nagle's TCP algorithm and declares that the TCP connection will be performed as a dialogue of small packages.\nHowever, it is not strictly defined who speaks first in this negotiation. Historically, all clients that use the binary API speak first: send handshake, then read 4 bytes from a daemon, then send a request and read an answer from the daemon.\nWhen we improved Sphinx protocol compatibility, we considered these things:\n\n1. Usually, master-agent communication is established from a known client to a known host on a known port. So, it is quite not possible that the endpoint will provide a wrong handshake. So, we may implicitly assume that both sides are valid and really speak in Sphinx proto.\n2. Given this assumption, we can 'glue' a handshake to the real request and send it in one packet. If the backend is a legacy Sphinx daemon, it will just read this glued packet as 4 bytes of a handshake, then request body. Since they both came in one packet, the backend socket has -1 RTT, and the frontend buffer still works despite that fact usual way.\n3. Continuing the assumption: since the 'query' packet is quite small, and the handshake is even smaller, let's send both in the initial 'SYN' TCP package using modern TFO (tcp-fast-open) technique. That is: we connect to a remote node with the glued handshake + body package. The daemon accepts the connection and immediately has both the handshake and the body in a socket buffer, as they came in the very first TCP 'SYN' packet. That eliminates another one RTT.\n4. Finally, teach the daemon to accept this improvement. Actually, from the application, it implies NOT to use `TCP_NODELAY`. And, from the system side, it implies to ensure that on the daemon side, accepting TFO is activated, and on the client side, sending TFO is also activated. By default, in modern systems, client TFO is already activated by default, so you only have to tune the server TFO for all things to work.\n\nAll these improvements without actually changing the protocol itself allowed us to eliminate 1.5 RTT of the TCP protocol from the connection. Which is, if the query and answer are capable of being placed in a single TCP package, decreases the whole binary API session from 3.5 RTT to 2 RTT - which makes network negotiation about 2 times faster.\n\nSo, all our improvements are stated around an initially undefined statement: 'who speaks first.' If a client speaks first, we may apply all these optimizations and effectively process connect + handshake + query in a single TFO package. Moreover, we can look at the beginning of the received package and determine a real protocol. That is why you can connect to one and the same port via API/http/https. If the daemon has to speak first, all these optimizations are impossible, and the multiprotocol is also impossible. That is why we have a dedicated port for MySQL and did not unify it with all the other protocols into a same port. Suddenly, among all clients, one was written implying that daemon should send a handshake first. That is - no possibility to all the described improvements. That is SphinxSE plugin for mysql/mariadb. So, specially for this single client we dedicated `sphinx` proto definition to work most legacy way. Namely: both sides activate `TCP_NODELAY` and exchange with small packages. The daemon sends its handshake on connect, then the client sends its, and then everything works usual way. That is not very optimal, but just works. If you use SphinxSE to connect to Manticore - you have to dedicate a listener with explicitly stated `sphinx` proto. For another clients - avoid to use this listener as it is slower. If you use another legacy Sphinx API clients - check first, if they are able to work with non-dedicated multiprotocol port. For master-agent linkage using the non-dedicated (multiprotocol) port and enabling client and server TFO works well and will definitely make working of network backend faster, especially if you have very light and fast queries.\n
\n\n### listen_tfo\n\nThis setting allows the TCP_FASTOPEN flag for all listeners. By default, it is managed by the system but may be explicitly switched off by setting it to '0'.\n\nFor general knowledge about the TCP Fast Open extension, please consult with [Wikipedia](https://en.wikipedia.org/wiki/TCP_Fast_Open). In short, it allows the elimination of one TCP round-trip when establishing a connection.\n\nIn practice, using TFO in many situations may optimize client-agent network efficiency, as if [persistent agents](../Creating_a_table/Creating_a_distributed_table/Creating_a_local_distributed_table.md) are in play, but without holding active connections, and also without limitation for the maximum num of connections.\n\nOn modern OS, TFO support is usually switched 'on' at the system level, but this is just a 'capability', not the rule. Linux (as the most progressive) has supported it since 2011, on kernels starting from 3.7 (for the server-side). Windows has supported it from some builds of Windows 10. Other operating systems (FreeBSD, MacOS) are also in the game.\n\nFor Linux system server checks variable `/proc/sys/net/ipv4/tcp_fastopen` and behaves according to it. Bit 0 manages client side, bit 1 rules listeners. By default, the system has this parameter set to 1, i.e., clients enabled, listeners disabled.\n\n### log\n\n\nThe log setting specifies the name of the log file where all `searchd` run time events will be logged. If not specified, the default name is 'searchd.log'.\n\nAlternatively, you can use the 'syslog' as the file name. In this case, the events will be sent to the syslog daemon. To use the syslog option, you need to configure Manticore with the `-\u2013with-syslog` option during building.\n\n\n\n##### Example:\n\n\n\n```ini\nlog = /var/log/searchd.log\n```\n\n\n\n### max_batch_queries\n\n\nLimits the amount of queries per batch. Optional, default is 32.\n\nMakes searchd perform a sanity check of the amount of queries submitted in a single batch when using [multi-queries](../Searching/Multi-queries.md). Set it to 0 to skip the check.\n\n\n\n##### Example:\n\n\n\n```ini\nmax_batch_queries = 256\n```\n\n\n### max_connections\n\n\nMaximum number of simultaneous client connections. Unlimited by default. That is usually noticeable only when using any kind of persistent connections, like cli mysql sessions or persistent remote connections from remote distributed tables. When the limit is exceeded you can still connect to the server using the [VIP connection](../Connecting_to_the_server/MySQL_protocol.md#VIP-connection). VIP connections are not counted towards the limit.\n\n\n```ini\nmax_connections = 10\n```\n\n\n\n### max_threads_per_query\n\n\nInstance-wide limit of threads one operation can use. By default, appropriate operations can occupy all CPU cores, leaving no room for other operations. For example, `call pq` against a considerably large percolate table can utilize all threads for tens of seconds. Setting `max_threads_per_query` to, say, half of [threads](../Server_settings/Searchd.md#threads) will ensure that you can run a couple of such `call pq` operations in parallel.\n\nYou can also set this setting as a session or a global variable during runtime.\n\nAdditionally, you can control the behavior on a per-query basis with the help of the [threads OPTION](../Searching/Options.md#threads).\n\n\n##### Example:\n\n\n```ini\nmax_threads_per_query = 4\n```\n\n\n\n### max_filters\n\n\nMaximum allowed per-query filter count. This setting is only used for internal sanity checks and does not directly affect RAM usage or performance. Optional, the default is 256.\n\n\n\n##### Example:\n\n\n\n```ini\nmax_filters = 1024\n```\n\n\n\n### max_filter_values\n\n\nMaximum allowed per-filter values count. This setting is only used for internal sanity checks and does not directly affect RAM usage or performance. Optional, the default is 4096.\n\n\n\n##### Example:\n\n\n\n```ini\nmax_filter_values = 16384\n```\n\n\n\n### max_open_files\n\n\nThe maximum number of files that the server is allowed to open is called the \"soft limit\". Note that serving large fragmented real-time tables may require this limit to be set high, as each disk chunk may occupy a dozen or more files. For example, a real-time table with 1000 chunks may require thousands of files to be opened simultaneously. If you encounter the error 'Too many open files' in the logs, try adjusting this option, as it may help resolve the issue.\n\nThere is also a \"hard limit\" that cannot be exceeded by the option. This limit is defined by the system and can be changed in the file `/etc/security/limits.conf` on Linux. Other operating systems may have different approaches, so consult your manuals for more information.\n\n\n##### Example:\n\n\n\n```ini\nmax_open_files = 10000\n```\n\n\n\nApart from direct numeric values, you can use the magic word 'max' to set the limit equal to the available current hard limit.\n\n\n##### Example:\n\n\n\n```ini\nmax_open_files = max\n```\n\n\n\n### max_packet_size\n\n\nMaximum allowed network packet size. This setting limits both query packets from clients and response packets from remote agents in a distributed environment. Only used for internal sanity checks, it does not directly affect RAM usage or performance. Optional, the default is 128M.\n\n\n\n##### Example:\n\n\n\n```ini\nmax_packet_size = 32M\n```\n\n\n\n### mysql_version_string\n\n\nA server version string to return via the MySQL protocol. Optional, the default is empty (returns the Manticore version).\n\nSeveral picky MySQL client libraries depend on a particular version number format used by MySQL, and moreover, sometimes choose a different execution path based on the reported version number (rather than the indicated capabilities flags). For instance, Python MySQLdb 1.2.2 throws an exception when the version number is not in X.Y.ZZ format; MySQL .NET connector 6.3.x fails internally on version numbers 1.x along with a certain combination of flags, etc. To work around that, you can use the `mysql_version_string` directive and have `searchd` report a different version to clients connecting over the MySQL protocol. (By default, it reports its own version.)\n\n\n\n##### Example:\n\n\n\n```ini\nmysql_version_string = 5.0.37\n```\n\n\n\n### net_workers\n\nNumber of network threads, the default is 1.\n\nThis setting is useful for extremely high query rates when just one thread is not enough to manage all the incoming queries.\n\n\n### net_wait_tm\n\nControls the busy loop interval of the network thread. The default is -1, and it can be set to -1, 0, or a positive integer.\n\nIn cases where the server is configured as a pure master and just routes requests to agents, it is important to handle requests without delays and not allow the network thread to sleep. There is a busy loop for that. After an incoming request, the network thread uses CPU poll for `10 * net_wait_tm` milliseconds if `net_wait_tm` is a positive number or polls only with the CPU if `net_wait_tm` is `0`. Also, the busy loop can be disabled with `net_wait_tm = -1` - in this case, the poller sets the timeout to the actual agent's timeouts on the system polling call.\n\n> **WARNING:** A CPU busy loop actually loads the CPU core, so setting this value to any non-default value will cause noticeable CPU usage even with an idle server.\n\n\n### net_throttle_accept\n\nDefines how many clients are accepted on each iteration of the network loop. Default is 0 (unlimited), which should be fine for most users. This is a fine-tuning option to control the throughput of the network loop in high load scenarios.\n\n\n### net_throttle_action\n\nDefines how many requests are processed on each iteration of the network loop. The default is 0 (unlimited), which should be fine for most users. This is a fine-tuning option to control the throughput of the network loop in high load scenarios.\n\n### network_timeout\n\n\nNetwork client request read/write timeout, in seconds (or [special_suffixes](../Server_settings/Special_suffixes.md)). Optional, the default is 5 seconds. `searchd` will forcibly close a client connection which fails to send a query or read a result within this timeout.\n\nNote also the [reset_network_timeout_on_packet](../Server_settings/Searchd.md#reset_network_timeout_on_packet) parameter. This parameter alters the behavior of `network_timeout` from applying to the entire `query` or `result` to individual packets instead. Typically, a query/result fits within one or two packets. However, in cases where a large amount of data is required, this parameter can be invaluable in maintaining active operations.\n\n\n\n```ini\nnetwork_timeout = 10s\n```\n\n\n### node_address\n\n\nThis setting allows you to specify the network address of the node. By default, it is set to the replication [listen](../Server_settings/Searchd.md#listen) address. This is correct in most cases; however, there are situations where you have to specify it manually:\n\n* Node behind a firewall\n* Network address translation enabled (NAT)\n* Container deployments, such as Docker or cloud deployments\n* Clusters with nodes in more than one region\n\n\n\n##### Example:\n\n\n\n```ini\nnode_address = 10.101.0.10\n```\n\n\n### not_terms_only_allowed\n\n\nThis setting determines whether to allow queries with only the [negation](../Searching/Full_text_matching/Operators.md#Negation-operator) full-text operator. Optional, the default is 0 (fail queries with only the NOT operator).\n\n\n\n##### Example:\n\n\n\n```ini\nnot_terms_only_allowed = 1\n```\n\n\n### optimize_cutoff\n\n\nSets the default table compaction threshold. Read more here - [Number of optimized disk chunks](../Securing_and_compacting_a_table/Compacting_a_table.md#Number-of-optimized-disk-chunks). This setting can be overridden with the per-query option [cutoff](../Securing_and_compacting_a_table/Compacting_a_table.md#Number-of-optimized-disk-chunks). It can also be changed dynamically via [SET GLOBAL](../Server_settings/Setting_variables_online.md#SET).\n\n\n##### Example:\n\n\n\n```ini\noptimize_cutoff = 4\n```\n\n\n### persistent_connections_limit\n\n\nThis setting determines the maximum number of simultaneous persistent connections to remote [persistent agents](../Creating_a_table/Creating_a_distributed_table/Creating_a_local_distributed_table.md). Each time an agent defined under `agent_persistent` is connected, we try to reuse an existing connection (if any), or connect and save the connection for future use. However, in some cases, it makes sense to limit the number of such persistent connections. This directive defines the limit. It affects the number of connections to each agent's host across all distributed tables.\n\nIt is reasonable to set the value equal to or less than the [max_connections](../Server_settings/Searchd.md#max_connections) option in the agent's config.\n\n\n##### Example:\n\n\n\n```ini\npersistent_connections_limit = 29 # assume that each host of agents has max_connections = 30 (or 29).\n```\n\n\n\n### pid_file\n\n\npid_file is a mandatory configuration option in Manticore search that specifies the path of the file where the process ID of the `searchd` server is stored.\n\nThe searchd process ID file is re-created and locked on startup, and contains the head server process ID while the server is running. It is unlinked on server shutdown.\nThe purpose of this file is to enable Manticore to perform various internal tasks, such as checking whether there is already a running instance of `searchd`, stopping `searchd`, and notifying it that it should rotate the tables. The file can also be used for external automation scripts.\n\n\n\n##### Example:\n\n\n\n```ini\npid_file = /run/manticore/searchd.pid\n```\n\n\n### preopen_tables\n\n\nThe preopen_tables configuration directive specifies whether to forcibly preopen all tables on startup. The default value is 1, which means that all tables will be preopened regardless of the per-table [preopen](../Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#Other-performance-related-settings) setting. If set to 0, the per-table settings can take effect, and they will default to 0.\n\nPre-opening tables can prevent races between search queries and rotations that can cause queries to fail occasionally. However, it also uses more file handles. In most scenarios, it is recommended to preopen tables.\n\nHere's an example configuration:\n\n\n##### Example:\n\n\n\n```ini\npreopen_tables = 1\n```\n\n\n### pseudo_sharding\n\n\nThe pseudo_sharding configuration option enables parallelization of search queries to local plain and real-time tables, regardless of whether they are queried directly or through a distributed table. This feature will automatically parallelize queries to up to the number of threads specified in `searchd.threads` # of threads.\n\nNote that if your worker threads are already busy, because you have:\n* high query concurrency\n* physical sharding of any kind:\n - distributed table of multiple plain/real-time tables\n - real-time table consisting of too many disk chunks\n\nthen enabling pseudo_sharding may not provide any benefits and may even result in a slight decrease in throughput. If you prioritize higher throughput over lower latency, it's recommended to disable this option.\n\nEnabled by default.\n\n\n##### Example:\n\n\n\n```ini\npseudo_sharding = 0\n```\n\n\n\n### replication_connect_timeout\n\nThe `replication_connect_timeout` directive defines the timeout for connecting to a remote node. By default, the value is assumed to be in milliseconds, but it can have [another suffix](../Server_settings/Special_suffixes.md). The default value is 1000 (1 second).\n\nWhen connecting to a remote node, Manticore will wait for this amount of time at most to complete the connection successfully. If the timeout is reached but the connection has not been established, and `retries` are enabled, a retry will be initiated.\n\n\n### replication_query_timeout\n\nThe `replication_query_timeout` sets the amount of time that searchd will wait for a remote node to complete a query. The default value is 3000 milliseconds (3 seconds), but can be `suffixed` to indicate a different unit of time.\n\nAfter establishing a connection, Manticore will wait for a maximum of `replication_query_timeout` for the remote node to complete. Note that this timeout is separate from the `replication_connect_timeout`, and the total possible delay caused by a remote node will be the sum of both values.\n\n\n### replication_retry_count\n\nThis setting is an integer that specifies how many times Manticore will attempt to connect and query a remote node during replication before reporting a fatal query error. The default value is 3.\n\n\n### replication_retry_delay\n\nThis setting is an integer in milliseconds (or [special_suffixes](../Server_settings/Special_suffixes.md)) that specifies the delay before Manticore retries querying a remote node in case of failure during replication. This value is only relevant when a non-zero value is specified. The default value is 500.\n\n### qcache_max_bytes\n\n\nThis configuration sets the maximum amount of RAM allocated for cached result sets in bytes. The default value is 16777216, which is equivalent to 16 megabytes. If the value is set to 0, the query cache is disabled. For more information about the query cache, please refer to the [query cache](../Searching/Query_cache.md) for details.\n\n\n\n##### Example:\n\n\n\n```ini\nqcache_max_bytes = 16777216\n```\n\n\n\n### qcache_thresh_msec\n\nInteger, in milliseconds. The minimum wall time threshold for a query result to be cached. Defaults to 3000, or 3 seconds. 0 means cache everything. Refer to [query cache](../Searching/Query_cache.md) for details. This value also may be expressed with time [special_suffixes](../Server_settings/Special_suffixes.md), but use it with care and don't confuse yourself with the name of the value itself, containing '_msec'.\n\n\n### qcache_ttl_sec\n\nInteger, in seconds. The expiration period for a cached result set. Defaults to 60, or 1 minute. The minimum possible value is 1 second. Refer to [query cache](../Searching/Query_cache.md) for details. This value also may be expressed with time [special_suffixes](../Server_settings/Special_suffixes.md), but use it with care and don't confuse yourself with the name of the value itself, containing '_sec'.\n\n\n### query_log_format\n\n\nQuery log format. Optional, allowed values are `plain` and `sphinxql`, default is `sphinxql`.\n\nThe `sphinxql` mode logs valid SQL statements. The `plain` mode logs queries in a plain text format (mostly suitable for purely full-text use cases). This directive allows you to switch between the two formats on search server startup. The log format can also be altered on the fly, using `SET GLOBAL query_log_format=sphinxql` syntax. Refer to [Query logging](../Logging/Query_logging.md) for more details.\n\n\n\n##### Example:\n\n\n\n```ini\nquery_log_format = sphinxql\n```\n\n\n### query_log_min_msec\n\nLimit (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 (this value also may be expressed with time [special_suffixes](../Server_settings/Special_suffixes.md), but use it with care and don't confuse yourself with the name of the value itself, containing `_msec`).\n\n### query_log\n\n\nQuery log file name. Optional, default is empty (do not log queries). All search queries (such as SELECT ... but not INSERT/REPLACE/UPDATE queries) will be logged in this file. The format is described in [Query logging](../Logging/Query_logging.md). In case of 'plain' format, you can use 'syslog' as the path to the log file. In this case, all search queries will be sent to the syslog daemon with `LOG_INFO` priority, prefixed with '[query]' instead of timestamp. To use the syslog option, Manticore must be configured with `-\u2013with-syslog` on building.\n\n\n\n##### Example:\n\n\n\n```ini\nquery_log = /var/log/query.log\n```\n\n\n\n### query_log_mode\n\n\nThe query_log_mode directive allows you to set a different permission for the searchd and query log files. By default, these log files are created with 600 permission, meaning that only the user under which the server runs and root users can read the log files.\nThis directive can be handy if you want to allow other users to read the log files, for example, monitoring solutions running on non-root users.\n\n\n##### Example:\n\n\n\n```ini\nquery_log_mode = 666\n```\n\n\n### read_buffer_docs\n\n\nThe read_buffer_docs directive controls the per-keyword read buffer size for document lists. For every keyword occurrence in every search query, there are two associated read buffers: one for the document list and one for the hit list. This setting lets you control the document list buffer size.\n\nA larger buffer size might increase per-query RAM use, but it could possibly decrease I/O time. It makes sense to set larger values for slow storage, but for storage capable of high IOPS, experimenting should be done in the low values area.\n\nThe default value is 256K, and the minimal value is 8K. You may also set [read_buffer_docs](../Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#read_buffer_docs) on a per-table basis, which will override anything set on the server's config level.\n\n\n\n##### Example:\n\n\n\n```ini\nread_buffer_docs = 128K\n```\n\n\n\n### read_buffer_hits\n\n\nThe read_buffer_hits directive specifies the per-keyword read buffer size for hit lists in search queries. By default, the size is 256K and the minimum value is 8K. For every keyword occurrence in a search query, there are two associated read buffers, one for the document list and one for the hit list. Increasing the buffer size can increase per-query RAM use but decrease I/O time. For slow storage, larger buffer sizes make sense, while for storage capable of high IOPS, experimenting should be done in the low values area.\n\nThis setting can also be specified on a per-table basis using the read_buffer_hits option in [read_buffer_hits](../Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#read_buffer_hits) which will override the server-level setting.\n\n\n##### Example:\n\n\n\n```ini\nread_buffer_hits = 128K\n```\n\n\n### read_unhinted\n\n\nUnhinted read size. Optional, default is 32K, minimal 1K\n\nWhen querying, some reads know in advance exactly how much data is there to be read, but some currently do not. Most prominently, hit list size is not currently known in advance. This setting lets you control how much data to read in such cases. It impacts hit list I/O time, reducing it for lists larger than unhinted read size, but raising it for smaller lists. It does **not** affect RAM usage because the read buffer will already be allocated. So it should not be greater than read_buffer.\n\n\n\n##### Example:\n\n\n\n```ini\nread_unhinted = 32K\n```\n\n\n### reset_network_timeout_on_packet\n\n\nRefines the behavior of networking timeouts (such as `network_timeout` and `agent_query_timeout`).\n\nWhen set to 0, timeouts limit the maximum time for sending the entire request/query.\nWhen set to 1 (default), timeouts limit the maximum time between network activities.\n\nWith replication, a node may need to send a large file (for example, 100GB) to another node. Assume the network can transfer data at 1GB/s, with a series of packets of 4-5MB each. To transfer the entire file, you would need 100 seconds. A default timeout of 5 seconds would only allow the transfer of 5GB before the connection is dropped. Increasing the timeout could be a workaround, but it is not scalable (for instance, the next file might be 150GB, leading to failure again). However, with the default `reset_network_timeout_on_packet` set to 1, the timeout is applied not to the entire transfer but to individual packets. As long as the transfer is in progress (and data is actually being received over the network during the timeout period), it is kept alive. If the transfer gets stuck, such that a timeout occurs between packets, it will be dropped.\n\nNote that if you set up a distributed table, each node \u2014 both master and agents \u2014 should be tuned. On the master side, `agent_query_timeout` is affected; on agents, `network_timeout` is relevant.\n\n\n\n##### Example:\n\n\n\n```ini\nreset_network_timeout_on_packet = 0\n```\n\n\n\n\n### rt_flush_period\n\n\nRT tables RAM chunk flush check period, in seconds (or [special_suffixes](../Server_settings/Special_suffixes.md)). Optional, default is 10 hours.\n\nActively updated RT tables that fully fit in RAM chunks can still result in ever-growing binlogs, impacting disk use and crash recovery time. With this directive, the search server performs periodic flush checks, and eligible RAM chunks can be saved, enabling consequential binlog cleanup. See [Binary logging](../Logging/Binary_logging.md) for more details.\n\n\n##### Example:\n\n\n\n```ini\nrt_flush_period = 3600 # 1 hour\n```\n\n\n\n### rt_merge_iops\n\n\nA maximum number of I/O operations (per second) that the RT chunks merge thread is allowed to start. Optional, default is 0 (no limit).\n\nThis directive lets you throttle down the I/O impact arising from the `OPTIMIZE` statements. It is guaranteed that all RT optimization activities will not generate more disk IOPS (I/Os per second) than the configured limit. Limiting rt_merge_iops can reduce search performance degradation caused by merging.\n\n\n##### Example:\n\n\n\n```ini\nrt_merge_iops = 40\n```\n\n\n### rt_merge_maxiosize\n\n\nA maximum size of an I/O operation that the RT chunks merge thread is allowed to start. Optional, default is 0 (no limit).\n\nThis directive lets you throttle down the I/O impact arising from the `OPTIMIZE` statements. I/Os larger than this limit will be broken down into two or more I/Os, which will then be accounted for as separate I/Os with regards to the [rt_merge_iops](../Server_settings/Searchd.md#rt_merge_iops) limit. Thus, it is guaranteed that all optimization activities will not generate more than (rt_merge_iops * rt_merge_maxiosize) bytes of disk I/O per second.\n\n\n\n##### Example:\n\n\n\n```ini\nrt_merge_maxiosize = 1M\n```\n\n\n\n### seamless_rotate\n\n\nPrevents `searchd` stalls while rotating tables with huge amounts of data to precache. Optional, default is 1 (enable seamless rotation). On Windows systems, seamless rotation is disabled by default.\n\nTables may contain some data that needs to be precached in RAM. At the moment, `.spa`, `.spb`, `.spi`, and `.spm` files are fully precached (they contain attribute data, blob attribute data, keyword table, and killed row map, respectively.) Without seamless rotate, rotating a table tries to use as little RAM as possible and works as follows:\n\n1. New queries are temporarily rejected (with \"retry\" error code);\n2. `searchd` waits for all currently running queries to finish;\n3. The old table is deallocated, and its files are renamed;\n4. New table files are renamed, and required RAM is allocated;\n5. New table attribute and dictionary data are preloaded to RAM;\n6. `searchd` resumes serving queries from the new table.\n\nHowever, if there's a lot of attribute or dictionary data, then the preloading step could take a noticeable amount of time - up to several minutes in the case of preloading 1-5+ GB files.\n\nWith seamless rotate enabled, rotation works as follows:\n\n1. New table RAM storage is allocated;\n2. New table attribute and dictionary data are asynchronously preloaded to RAM;\n3. On success, the old table is deallocated, and both tables' files are renamed;\n4. On failure, the new table is deallocated;\n5. At any given moment, queries are served either from the old or new table copy.\n\nSeamless rotate comes at the cost of higher peak memory usage during the rotation (because both old and new copies of `.spa/.spb/.spi/.spm` data need to be in RAM while preloading the new copy). Average usage remains the same.\n\n\n\n##### Example:\n\n\n\n```ini\nseamless_rotate = 1\n```\n\n\n### secondary_index_block_cache\n\n\nThis option specifies the size of the block cache used by secondary indexes. It is optional, with a default of 8 MB. When secondary indexes work with filters that contain many values (e.g., IN() filters), they read and process metadata blocks for these values.\nIn joined queries, this process is repeated for each batch of rows from the left table, and each batch may reread the same metadata within a single joined query. This can severely affect performance. The metadata block cache keeps these blocks in memory so they\ncan be reused by subsequent batches.\n\nThe cache is only used in joined queries and has no effect on non-joined queries. Note that the cache size limit applies per attribute and per secondary index. Each attribute within each disk chunk operates within this limit. In the worst case, the total memory\nusage can be estimated by multiplying the limit by the number of disk chunks and the number of attributes used in joined queries.\n\nSetting `secondary_index_block_cache = 0` disables the cache.\n\n\n##### Example:\n\n\n\n```ini\nsecondary_index_block_cache = 16M\n```\n\n\n\n### secondary_indexes\n\n\nThis option enables/disables the use of secondary indexes for search queries. It is optional, and the default is 1 (enabled). Note that you don't need to enable it for indexing as it is always enabled as long as the [Manticore Columnar Library](https://github.com/manticoresoftware/columnar) is installed. The latter is also required for using the indexes when searching. There are three modes available:\n\n* `0`: Disable the use of secondary indexes on search. They can be enabled for individual queries using [analyzer hints](../Searching/Options.md#Query-optimizer-hints)\n* `1`: Enable the use of secondary indexes on search. They can be disabled for individual queries using [analyzer hints](../Searching/Options.md#Query-optimizer-hints)\n* `force`: Same as enable, but any errors during the loading of secondary indexes will be reported, and the whole index will not be loaded into the daemon.\n\n\n##### Example:\n\n\n\n```ini\nsecondary_indexes = 1\n```\n\n\n\n### server_id\n\n\nInteger number that serves as a server identifier used as a seed to generate a unique short UUID for nodes that are part of a replication cluster. The server_id must be unique across the nodes of a cluster and in the range from 0 to 127. If server_id is not set, it is calculated as a hash of the MAC address and the path to the PID file or a random number will be used as a seed for the short UUID.\n\n\n\n##### Example:\n\n\n\n```ini\nserver_id = 1\n```\n\n\n\n### shutdown_timeout\n\n\n`searchd --stopwait` waiting time, in seconds (or [special_suffixes](../Server_settings/Special_suffixes.md)). Optional, default is 60 seconds.\n\nWhen you run `searchd --stopwait` your server needs to perform some activities before stopping, such as finishing queries, flushing RT RAM chunks, flushing attributes, and updating the binlog. These tasks require some time. `searchd --stopwait` will wait up to `shutdown_time` seconds for the server to finish its jobs. The suitable time depends on your table size and load.\n\n\n\n##### Example:\n\n\n\n```ini\nshutdown_timeout = 3m # wait for up to 3 minutes\n```\n\n\n\n### shutdown_token\n\nSHA1 hash of the password required to invoke the 'shutdown' command from a VIP Manticore SQL connection. Without it,[debug](../Reporting_bugs.md#DEBUG) 'shutdown' subcommand will never cause the server to stop. Note that such simple hashing should not be considered strong protection, as we don't use a salted hash or any kind of modern hash function. It is intended as a fool-proof measure for housekeeping daemons in a local network.\n\n### skiplist_cache_size\n\n\nThis setting specifies the maximum size of the in-memory cache for decompressed skiplists. Optional, the default is 64M.\n\nSkiplists are used to speed up seeking in large doclists. Caching them avoids repeatedly decompressing the same skiplist data across queries. Set this option to `0` to disable caching.\n\n\n##### Example:\n\n\n\n```ini\nskiplist_cache_size = 128M\n```\n\n\n### snippets_file_prefix\n\n\nA prefix to prepend to the local file names when generating snippets. Optional, default is the current working folder.\n\nThis prefix can be used in distributed snippets generation along with `load_files` or `load_files_scattered` options.\n\nNote that this is a prefix and **not** a path! This means that if a prefix is set to \"server1\" and the request refers to \"file23\", `searchd` will attempt to open \"server1file23\" (all of that without quotes). So, if you need it to be a path, you have to include the trailing slash.\n\nAfter constructing the final file path, the server unwinds all relative dirs and compares the final result with the value of `snippet_file_prefix`. If the result does not begin with the prefix, such a file will be rejected with an error message.\n\nFor example, if you set it to `/mnt/data` and someone calls snippet generation with the file `../../../etc/passwd` as the source, they will get the error message:\n\n`File '/mnt/data/../../../etc/passwd' escapes '/mnt/data/' scope`\n\ninstead of the content of the file.\n\nAlso, with a non-set parameter and reading `/etc/passwd`, it will actually read /daemon/working/folder/etc/passwd since the default for the parameter is the server's working folder.\n\nNote also that this is a local option; it does not affect the agents in any way. So you can safely set a prefix on a master server. The requests routed to the agents will not be affected by the master's setting. They will, however, be affected by the agent's own settings.\n\nThis might be useful, for instance, when the document storage locations (whether local storage or NAS mountpoints) are inconsistent across the servers.\n\n\n\n##### Example:\n\n\n\n```ini\nsnippets_file_prefix = /mnt/common/server1/\n```\n\n\n> **WARNING:** If you still want to access files from the FS root, you have to explicitly set `snippets_file_prefix` to empty value (by `snippets_file_prefix=` line), or to root (by `snippets_file_prefix=/`).\n\n\n### sphinxql_state\n\n\nPath to a file where the current SQL state will be serialized.\n\nOn server startup, this file gets replayed. On eligible state changes (e.g., SET GLOBAL), this file gets rewritten automatically. This can prevent a hard-to-diagnose problem: If you load UDF functions but Manticore crashes, when it gets (automatically) restarted, your UDF and global variables will no longer be available. Using persistent state helps ensure a graceful recovery with no such surprises.\n\n`sphinxql_state` cannot be used to execute arbitrary commands, such as `CREATE TABLE`.\n\n\n##### Example:\n\n\n\n```ini\nsphinxql_state = uservars.sql\n```\n\n\n\n### sphinxql_timeout\n\n\nMaximum time to wait between requests (in seconds, or [special_suffixes](../Server_settings/Special_suffixes.md)) when using the SQL interface. Optional, default is 15 minutes.\n\n\n\n##### Example:\n\n\n\n```ini\nsphinxql_timeout = 15m\n```\n\n\n\n### ssl_ca\n\n\nPath to the SSL Certificate Authority (CA) certificate file (also known as root certificate). Optional, default is empty. When not empty, the certificate in `ssl_cert` should be signed by this root certificate.\n\nThe server uses the CA file to verify the signature on the certificate. The file must be in PEM format.\n\n\n##### Example:\n\n\n\n```ini\nssl_ca = keys/ca-cert.pem\n```\n\n\n\n### ssl_cert\n\n\nPath to the server's SSL certificate. Optional, default is empty.\n\nThe server uses this certificate as a self-signed public key to encrypt HTTP traffic over SSL. The file must be in PEM format.\n\n\n\n##### Example:\n\n\n\n```ini\nssl_cert = keys/server-cert.pem\n```\n\n\n\n### ssl_key\n\n\nPath to the SSL certificate key. Optional, default is empty.\n\nThe server uses this private key to encrypt HTTP traffic over SSL. The file must be in PEM format.\n\n\n\n##### Example:\n\n\n\n```ini\nssl_key = keys/server-key.pem\n```\n\n\n\n### subtree_docs_cache\n\n\nMax common subtree document cache size, per-query. Optional, default is 0 (disabled).\n\nThis setting limits the RAM usage of a common subtree optimizer (see [multi-queries](../Searching/Multi-queries.md)). At most, this much RAM will be spent to cache document entries for each query. Setting the limit to 0 disables the optimizer.\n\n\n\n##### Example:\n\n\n\n```ini\nsubtree_docs_cache = 8M\n```\n\n\n\n### subtree_hits_cache\n\n\nMax common subtree hit cache size, per-query. Optional, default is 0 (disabled).\n\nThis setting limits the RAM usage of a common subtree optimizer (see [multi-queries](../Searching/Multi-queries.md)). At most, this much RAM will be spent to cache keyword occurrences (hits) for each query. Setting the limit to 0 disables the optimizer.\n\n\n\n##### Example:\n\n\n\n```ini\nsubtree_hits_cache = 16M\n```\n\n\n### threads\n\n\nNumber of working threads (or, size of thread pool) for the Manticore daemon. Manticore creates this number of OS threads on start, and they perform all jobs inside the daemon, such as executing queries, creating snippets, etc. Some operations may be split into sub-tasks and executed in parallel, for example:\n\n* Search in a real-time table\n* Search in a distributed table consisting of local tables\n* Percolate query call\n* and others\n\nBy default, it's set to the number of CPU cores on the server. Manticore creates the threads on start and keeps them until it's stopped. Each sub-task can use one of the threads when it needs it. When the sub-task finishes, it releases the thread so another sub-task can use it.\n\nIn the case of intensive I/O type of load, it might make sense to set the value higher than the number of CPU cores.\n\n\n```ini\nthreads = 10\n```\n\n\n\n### thread_stack\n\n\nMaximum stack size for a job (coroutine, one search query may cause multiple jobs/coroutines). Optional, default is 128K.\n\nEach job has its own stack of 128K. When you run a query, it's checked for how much stack it requires. If the default 128K is enough, it's just processed. If it needs more, another job with an increased stack is scheduled, which continues processing. The maximum size of such an advanced stack is limited by this setting.\n\nSetting the value to a reasonably high rate will help with processing very deep queries without implying that overall RAM consumption will grow too high. For example, setting it to 1G does not imply that every new job will take 1G of RAM, but if we see that it requires, let's say, 100M stack, we just allocate 100M for the job. Other jobs at the same time will be running with their default 128K stack. The same way, we can run even more complex queries that need 500M. And only if we **see** internally that the job requires more than 1G of stack, we will fail and report about too low thread_stack.\n\nHowever, in practice, even a query which needs 16M of stack is often too complex for parsing and consumes too much time and resources to be processed. So, the daemon will process it, but limiting such queries by the `thread_stack` setting looks quite reasonable.\n\n\n\n##### Example:\n\n\n\n```ini\nthread_stack = 8M\n```\n\n\n\n### unlink_old\n\n\nDetermines whether to unlink `.old` table copies on successful rotation. Optional, default is 1 (do unlink).\n\n\n\n##### Example:\n\n\n\n```ini\nunlink_old = 0\n```\n\n\n\n### watchdog\n\n\nThreaded server watchdog. Optional, default is 1 (watchdog enabled).\n\nWhen a Manticore query crashes, it can take down the entire server. With the watchdog feature enabled, `searchd` also maintains a separate lightweight process that monitors the main server process and automatically restarts it in case of abnormal termination. The watchdog is enabled by default.\n\n\n\n```ini\nwatchdog = 0 # disable watchdog\n```\n\n\n", + "updated_at": 1773763387, + "source_md5": "de0a9961c96d47810f7c23616e1c8290", + "source_snapshot": "/tmp/translator-source-eIHOTu", + "target_snapshot": "/tmp/translator-target-N2CzSg" }, "83da949dbcb4b2001794302dd3e2b5a78f9056530f6f81bbb3707ab8fd010065": { "original": "CODE_BLOCK_76\n\n\n### ssl_cert\n\n\nPath to the server's SSL certificate. Optional, default is empty.\n\nThe server uses this certificate as a self-signed public key to encrypt HTTP traffic over SSL. The file must be in PEM format.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_77\n\n\n### ssl_key\n\n\nPath to the SSL certificate key. Optional, default is empty.\n\nThe server uses this private key to encrypt HTTP traffic over SSL. The file must be in PEM format.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_78\n\n\n### subtree_docs_cache\n\n\nMax common subtree document cache size, per-query. Optional, default is 0 (disabled).\n\nThis setting limits the RAM usage of a common subtree optimizer (see [multi-queries](../Searching/Multi-queries.md)). At most, this much RAM will be spent to cache document entries for each query. Setting the limit to 0 disables the optimizer.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_79\n\n\n### subtree_hits_cache\n\n\nMax common subtree hit cache size, per-query. Optional, default is 0 (disabled).\n\nThis setting limits the RAM usage of a common subtree optimizer (see [multi-queries](../Searching/Multi-queries.md)). At most, this much RAM will be spent to cache keyword occurrences (hits) for each query. Setting the limit to 0 disables the optimizer.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_80\n\n\n### threads\n\n\nNumber of working threads (or, size of thread pool) for the Manticore daemon. Manticore creates this number of OS threads on start, and they perform all jobs inside the daemon, such as executing queries, creating snippets, etc. Some operations may be split into sub-tasks and executed in parallel, for example:\n\n* Search in a real-time table\n* Search in a distributed table consisting of local tables\n* Percolate query call\n* and others\n\nBy default, it's set to the number of CPU cores on the server. Manticore creates the threads on start and keeps them until it's stopped. Each sub-task can use one of the threads when it needs it. When the sub-task finishes, it releases the thread so another sub-task can use it.\n\nIn the case of intensive I/O type of load, it might make sense to set the value higher than the number of CPU cores.\n\n\nCODE_BLOCK_81\n\n\n\n### thread_stack\n\n\nMaximum stack size for a job (coroutine, one search query may cause multiple jobs/coroutines). Optional, default is 128K.\n\nEach job has its own stack of 128K. When you run a query, it's checked for how much stack it requires. If the default 128K is enough, it's just processed. If it needs more, another job with an increased stack is scheduled, which continues processing. The maximum size of such an advanced stack is limited by this setting.\n\nSetting the value to a reasonably high rate will help with processing very deep queries without implying that overall RAM consumption will grow too high. For example, setting it to 1G does not imply that every new job will take 1G of RAM, but if we see that it requires, let's say, 100M stack, we just allocate 100M for the job. Other jobs at the same time will be running with their default 128K stack. The same way, we can run even more complex queries that need 500M. And only if we **see** internally that the job requires more than 1G of stack, we will fail and report about too low thread_stack.\n\nHowever, in practice, even a query which needs 16M of stack is often too complex for parsing and consumes too much time and resources to be processed. So, the daemon will process it, but limiting such queries by the `thread_stack` setting looks quite reasonable.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_82\n\n\n### unlink_old\n\n\nDetermines whether to unlink `.old` table copies on successful rotation. Optional, default is 1 (do unlink).\n\n\n##### Example:\n\n\n\nCODE_BLOCK_83\n\n\n### watchdog\n\n\nThreaded server watchdog. Optional, default is 1 (watchdog enabled).\n\nWhen a Manticore query crashes, it can take down the entire server. With the watchdog feature enabled, `searchd` also maintains a separate lightweight process that monitors the main server process and automatically restarts it in case of abnormal termination. The watchdog is enabled by default.\n\n\n\nCODE_BLOCK_84\n\n\n\n", @@ -335,5 +335,145 @@ "is_code_or_comment": false, "model": "qwen/qwen3-14b", "updated_at": 1772425019 + }, + "02dbba7778ff15e39d71a90c1a1c019694b9fae9461089e11b3854ba58542cf3": { + "original": "When a Manticore query crashes, it can take down the entire server. With the watchdog feature enabled, `searchd` also maintains a separate lightweight process that monitors the main server process and automatically restarts it in case of abnormal termination. The watchdog is enabled by default.\n\n\n\nCODE_BLOCK_83\n\n\n", + "translations": { + "russian": "\u041a\u043e\u0433\u0434\u0430 \u0437\u0430\u043f\u0440\u043e\u0441 Manticore \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442\u0441\u044f \u0430\u0432\u0430\u0440\u0438\u0439\u043d\u043e, \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a \u043f\u0430\u0434\u0435\u043d\u0438\u044e \u0432\u0441\u0435\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430. \u041f\u0440\u0438 \u0432\u043a\u043b\u044e\u0447\u0451\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 watchdog `searchd` \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043b\u0451\u0433\u043a\u0438\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0435\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0435\u0433\u043e \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0430\u043d\u043e\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f. Watchdog \u0432\u043a\u043b\u044e\u0447\u0451\u043d \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e.\n\n\n\nCODE_BLOCK_83\n\n\n", + "chinese": "\u5f53 Manticore \u67e5\u8be2\u5d29\u6e83\u65f6\uff0c\u53ef\u80fd\u4f1a\u5bfc\u81f4\u6574\u4e2a\u670d\u52a1\u5668\u5b95\u673a\u3002\u542f\u7528\u770b\u95e8\u72d7\u529f\u80fd\u540e\uff0c`searchd` \u8fd8\u4f1a\u7ef4\u62a4\u4e00\u4e2a\u72ec\u7acb\u7684\u8f7b\u91cf\u7ea7\u8fdb\u7a0b\uff0c\u7528\u4e8e\u76d1\u63a7\u4e3b\u670d\u52a1\u5668\u8fdb\u7a0b\uff0c\u5e76\u5728\u53d1\u751f\u5f02\u5e38\u7ec8\u6b62\u65f6\u81ea\u52a8\u91cd\u542f\u5b83\u3002\u770b\u95e8\u72d7\u529f\u80fd\u9ed8\u8ba4\u662f\u542f\u7528\u7684\u3002\n\n\n\nCODE_BLOCK_83\n\n\n" + }, + "is_code_or_comment": false, + "model": "qwen/qwen3-14b", + "updated_at": 1773763226 + }, + "61130415048628194b753eefe6898e4dba564ce8d75c3f54bd55db7cff849149": { + "original": "* Separate file for each table (default, `0`): Each table saves its changes in its own log file. This setup is good if you have many tables that get updated at different times. It allows tables to be updated without waiting for others. Also, if there is a problem with one table's log file, it does not affect the others.\n* Single file for all tables (`1`): All tables use the same binary log file. This method makes it easier to handle files because there are fewer of them. However, this could keep files longer than needed if one table still needs to save its updates. This setting might also slow things down if many tables need to update at the same time because all changes have to wait to be written to one file.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_9\n\n\n### binlog_max_log_size\n\n\nThis setting controls the maximum binary log file size. It is optional, with a default value of 256 MB.\n\nA new binlog file will be forcibly opened once the current binlog file reaches this size limit. This results in a finer granularity of logs and can lead to more efficient binlog disk usage under certain borderline workloads. A value of 0 indicates that the binlog file should not be reopened based on size.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_10\n\n\n### binlog_path\n\n\nThis setting determines the path for binary log (also known as transaction log) files. It is optional, with a default value of the build-time configured data directory (e.g., `/var/lib/manticore/data/binlog.*` in Linux).\n\nBinary logs are used for crash recovery of RT table data and for attribute updates of plain disk indices that would otherwise only be stored in RAM until flush. When logging is enabled, every transaction COMMIT-ted into an RT table is written into a log file. Logs are then automatically replayed on startup after an unclean shutdown, recovering the logged changes.\n\nThe `binlog_path` directive specifies the location of binary log files. It should only contain the path; `searchd` will create and unlink multiple `binlog.*` files in the directory as necessary (including binlog data, metadata, and lock files, etc).\n\nAn empty value disables binary logging, which improves performance but puts the RT table data at risk.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_11\n\n\n### boolean_simplify\n\n\nThis setting controls the default value for [boolean_simplify](../Searching/Options.md#boolean_simplify) search option. It is optional, with a default value of 1 (enabled).\n\nWhen set to 1, the server will automatically apply [boolean query optimization](../Searching/Full_text_matching/Boolean_optimization.md) to improve query performance. When set to 0, queries will be executed without optimization by default. This default can be overridden on a per-query basis using the corresponding search option `boolean_simplify`.\n\n\nCODE_BLOCK_12\n\n\n### buddy_path\n\n\nThis setting determines the path to the Manticore Buddy binary. It is optional, with a default value being the build-time configured path, which varies across different operating systems. Typically, you don't need to modify this setting. However, it may be useful if you wish to run Manticore Buddy in debug mode, make changes to Manticore Buddy, or implement a new plugin. In the latter case, you can `git clone` Buddy from https://github.com/manticoresoftware/manticoresearch-buddy, add a new plugin to the directory `./plugins/`, and run `composer install --prefer-source` for easier development after you change the directory to the Buddy source.\n\nTo ensure you can run `composer`, your machine must have PHP 8.2 or higher installed with the following extensions:\n\nCODE_BLOCK_13\n\nYou can also opt for the special `manticore-executor-dev` version for Linux amd64 available in the releases, for example: https://github.com/manticoresoftware/executor/releases/tag/v1.0.13\n\nIf you go this route, remember to link the dev version of the manticore executor to `/usr/bin/php`.\n\nTo disable Manticore Buddy, set the value to empty as shown in the example.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_14\n\n\n### client_timeout\n\n\nThis setting determines the maximum time to wait between requests (in seconds or [special_suffixes](../Server_settings/Special_suffixes.md)) when using persistent connections. It is optional, with a default value of five minutes.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_15\n\n\n### collation_libc_locale\n\n\nServer libc locale. Optional, default is C.\n\nSpecifies the libc locale, affecting the libc-based collations. Refer to [collations](../Searching/Collations.md) section for the details.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_16\n\n\n### collation_server\n\n\nDefault server collation. Optional, default is libc_ci.\n\nSpecifies the default collation used for incoming requests. The collation can be overridden on a per-query basis. Refer to [collations](../Searching/Collations.md) section for the list of available collations and other details.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_17\n\n\n### data_dir", + "translations": { + "russian": "* \u041e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, `0`): \u041a\u0430\u0436\u0434\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0441\u0432\u043e\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435 \u0436\u0443\u0440\u043d\u0430\u043b\u0430. \u0422\u0430\u043a\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0445\u043e\u0440\u043e\u0448\u0430, \u0435\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u043c\u043d\u043e\u0433\u043e \u0442\u0430\u0431\u043b\u0438\u0446, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0432 \u0440\u0430\u0437\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f. \u041e\u043d\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u043d\u0435 \u0434\u043e\u0436\u0438\u0434\u0430\u044f\u0441\u044c \u0434\u0440\u0443\u0433\u0438\u0445. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0435\u0441\u043b\u0438 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0435\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0441 \u0444\u0430\u0439\u043b\u043e\u043c \u0436\u0443\u0440\u043d\u0430\u043b\u0430 \u043e\u0434\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u044d\u0442\u043e \u043d\u0435 \u0437\u0430\u0442\u0440\u043e\u043d\u0435\u0442 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435.\n* \u041e\u0434\u0438\u043d \u0444\u0430\u0439\u043b \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0442\u0430\u0431\u043b\u0438\u0446 (`1`): \u0412\u0441\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u043e\u0434\u0438\u043d \u0438 \u0442\u043e\u0442 \u0436\u0435 \u0434\u0432\u043e\u0438\u0447\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u0436\u0443\u0440\u043d\u0430\u043b\u0430. \u042d\u0442\u043e\u0442 \u043c\u0435\u0442\u043e\u0434 \u0443\u043f\u0440\u043e\u0449\u0430\u0435\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u0430\u043c\u0438, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0438\u0445 \u043c\u0435\u043d\u044c\u0448\u0435. \u041e\u0434\u043d\u0430\u043a\u043e \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a \u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u0444\u0430\u0439\u043b\u044b \u0431\u0443\u0434\u0443\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c\u0441\u044f \u0434\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e, \u0435\u0441\u043b\u0438 \u043e\u0434\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0432\u0441\u0451 \u0435\u0449\u0451 \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0441\u0432\u043e\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f. \u042d\u0442\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u043c\u0435\u0434\u043b\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443, \u0435\u0441\u043b\u0438 \u043c\u043d\u043e\u0433\u0438\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0432\u0441\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0434\u043e\u043b\u0436\u043d\u044b \u0436\u0434\u0430\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u043e\u0434\u0438\u043d \u0444\u0430\u0439\u043b.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_9\n\n\n### binlog_max_log_size\n\n\n\u042d\u0442\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0444\u0430\u0439\u043b\u0430 \u0434\u0432\u043e\u0438\u0447\u043d\u043e\u0433\u043e \u0436\u0443\u0440\u043d\u0430\u043b\u0430. \u041e\u043d\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u2014 256 \u041c\u0411.\n\n\u041d\u043e\u0432\u044b\u0439 \u0444\u0430\u0439\u043b binlog \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0442\u043a\u0440\u044b\u0442, \u043a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0444\u0430\u0439\u043b binlog \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0435\u0442 \u044d\u0442\u043e\u0433\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u043f\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0443. \u042d\u0442\u043e \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u0431\u043e\u043b\u0435\u0435 \u043c\u0435\u043b\u043a\u043e\u0439 \u0433\u0440\u0430\u043d\u0443\u043b\u044f\u0440\u043d\u043e\u0441\u0442\u0438 \u0436\u0443\u0440\u043d\u0430\u043b\u043e\u0432 \u0438 \u043c\u043e\u0436\u0435\u0442 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u0438\u0441\u043a\u0430 \u0434\u043b\u044f binlog \u043f\u0440\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0445 \u043f\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u043d\u044b\u0445 \u0440\u0430\u0431\u043e\u0447\u0438\u0445 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430\u0445. \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 0 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u0444\u0430\u0439\u043b binlog \u043d\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u0435\u0440\u0435\u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u0430.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_10\n\n\n### binlog_path\n\n\n\u042d\u0442\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043f\u0443\u0442\u044c \u043a \u0444\u0430\u0439\u043b\u0430\u043c \u0434\u0432\u043e\u0438\u0447\u043d\u043e\u0433\u043e \u0436\u0443\u0440\u043d\u0430\u043b\u0430 (\u0442\u0430\u043a\u0436\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0433\u043e \u043a\u0430\u043a \u0436\u0443\u0440\u043d\u0430\u043b \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0439). \u041e\u043d\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u2014 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u0434\u0430\u043d\u043d\u044b\u0445, \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0441\u0431\u043e\u0440\u043a\u0438 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, `/var/lib/manticore/data/binlog.*` \u0432 Linux).\n\n\u0414\u0432\u043e\u0438\u0447\u043d\u044b\u0435 \u0436\u0443\u0440\u043d\u0430\u043b\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0434\u043b\u044f \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u0441\u043b\u0435 \u0441\u0431\u043e\u0435\u0432 \u0434\u0430\u043d\u043d\u044b\u0445 RT-\u0442\u0430\u0431\u043b\u0438\u0446 \u0438 \u0434\u043b\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0439 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u043e\u0431\u044b\u0447\u043d\u044b\u0445 \u0434\u0438\u0441\u043a\u043e\u0432\u044b\u0445 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0441\u044c \u0431\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u0434\u043e \u0441\u0431\u0440\u043e\u0441\u0430 \u043d\u0430 \u0434\u0438\u0441\u043a. \u041a\u043e\u0433\u0434\u0430 \u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0436\u0443\u0440\u043d\u0430\u043b\u0430 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043e, \u043a\u0430\u0436\u0434\u0430\u044f \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f, \u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f (COMMIT) \u0432 RT-\u0442\u0430\u0431\u043b\u0438\u0446\u0435, \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u0444\u0430\u0439\u043b \u0436\u0443\u0440\u043d\u0430\u043b\u0430. \u0417\u0430\u0442\u0435\u043c \u0436\u0443\u0440\u043d\u0430\u043b\u044b \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u044f\u0442\u0441\u044f \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u043f\u043e\u0441\u043b\u0435 \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0433\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b, \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u044f \u0437\u0430\u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f.\n\n\u0414\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u0430 `binlog_path` \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u043e\u0432 \u0434\u0432\u043e\u0438\u0447\u043d\u043e\u0433\u043e \u0436\u0443\u0440\u043d\u0430\u043b\u0430. \u041e\u043d\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0443\u0442\u044c; `searchd` \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0438 \u0443\u0434\u0430\u043b\u044f\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0444\u0430\u0439\u043b\u043e\u0432 `binlog.*` \u0432 \u044d\u0442\u043e\u043c \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 \u043f\u043e \u043c\u0435\u0440\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 (\u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0444\u0430\u0439\u043b\u044b \u0434\u0430\u043d\u043d\u044b\u0445 binlog, \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435, lock-\u0444\u0430\u0439\u043b\u044b \u0438 \u0442.\u0434.).\n\n\u041f\u0443\u0441\u0442\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0434\u0432\u043e\u0438\u0447\u043d\u043e\u0435 \u0436\u0443\u0440\u043d\u0430\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043f\u043e\u0432\u044b\u0448\u0430\u0435\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c, \u043d\u043e \u043f\u043e\u0434\u0432\u0435\u0440\u0433\u0430\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 RT-\u0442\u0430\u0431\u043b\u0438\u0446 \u0440\u0438\u0441\u043a\u0443.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_11\n\n\n### boolean_simplify\n\n\n\u042d\u0442\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0434\u043b\u044f \u043e\u043f\u0446\u0438\u0438 \u043f\u043e\u0438\u0441\u043a\u0430 [boolean_simplify](../Searching/Options.md#boolean_simplify). \u041e\u043d\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u2014 1 (\u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043e).\n\n\u0415\u0441\u043b\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 1, \u0441\u0435\u0440\u0432\u0435\u0440 \u0431\u0443\u0434\u0435\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c [\u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044e \u0431\u0443\u043b\u0435\u0432\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432](../Searching/Full_text_matching/Boolean_optimization.md) \u0434\u043b\u044f \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432. \u0415\u0441\u043b\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 0, \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u0431\u0435\u0437 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u043e\u043f\u0446\u0438\u0438 \u043f\u043e\u0438\u0441\u043a\u0430 `boolean_simplify`.\n\n\nCODE_BLOCK_12\n\n\n### buddy_path\n\n\n\u042d\u0442\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043f\u0443\u0442\u044c \u043a \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u043e\u043c\u0443 \u0444\u0430\u0439\u043b\u0443 Manticore Buddy. \u041e\u043d\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u2014 \u043f\u0443\u0442\u044c, \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0441\u0431\u043e\u0440\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445. \u041e\u0431\u044b\u0447\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c \u044d\u0442\u0443 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f. \u041e\u0434\u043d\u0430\u043a\u043e \u043e\u043d\u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u0430, \u0435\u0441\u043b\u0438 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c Manticore Buddy \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u043e\u0442\u043b\u0430\u0434\u043a\u0438, \u0432\u043d\u0435\u0441\u0442\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 Manticore Buddy \u0438\u043b\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u043f\u043b\u0430\u0433\u0438\u043d. \u0412 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c `git clone` Buddy \u0438\u0437 https://github.com/manticoresoftware/manticoresearch-buddy, \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u043f\u043b\u0430\u0433\u0438\u043d \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 `./plugins/` \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c `composer install --prefer-source` \u0434\u043b\u044f \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c Buddy.\n\n\u0427\u0442\u043e\u0431\u044b \u0438\u043c\u0435\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c `composer`, \u043d\u0430 \u0432\u0430\u0448\u0435\u0439 \u043c\u0430\u0448\u0438\u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430 PHP \u0432\u0435\u0440\u0441\u0438\u0438 8.2 \u0438\u043b\u0438 \u0432\u044b\u0448\u0435 \u0441\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c\u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f\u043c\u0438:\n\nCODE_BLOCK_13\n\n\u0412\u044b \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e `manticore-executor-dev` \u0434\u043b\u044f Linux amd64, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0443\u044e \u0432 \u0440\u0435\u043b\u0438\u0437\u0430\u0445, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440: https://github.com/manticoresoftware/executor/releases/tag/v1.0.13\n\n\u0415\u0441\u043b\u0438 \u0432\u044b \u0432\u044b\u0431\u0435\u0440\u0435\u0442\u0435 \u044d\u0442\u043e\u0442 \u043f\u0443\u0442\u044c, \u043d\u0435 \u0437\u0430\u0431\u0443\u0434\u044c\u0442\u0435 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 dev-\u0432\u0435\u0440\u0441\u0438\u044e manticore executor \u043d\u0430 `/usr/bin/php`.\n\n\u0427\u0442\u043e\u0431\u044b \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c Manticore Buddy, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0443\u0441\u0442\u044b\u043c, \u043a\u0430\u043a \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0435.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_14\n\n\n### client_timeout\n\n\n\u042d\u0442\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c\u0438 (\u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0430\u0445 \u0438\u043b\u0438 \u0441 [\u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0441\u0443\u0444\u0444\u0438\u043a\u0441\u0430\u043c\u0438](../Server_settings/Special_suffixes.md)) \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u044b\u0445 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439. \u041e\u043d\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u2014 \u043f\u044f\u0442\u044c \u043c\u0438\u043d\u0443\u0442.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_15\n\n\n### collation_libc_locale\n\n\n\u041b\u043e\u043a\u0430\u043b\u044c libc \u0441\u0435\u0440\u0432\u0435\u0440\u0430. \u041d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u0430\u044f, \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e C.\n\n\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043b\u043e\u043a\u0430\u043b\u044c libc, \u0432\u043b\u0438\u044f\u044e\u0449\u0443\u044e \u043d\u0430 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438, \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 libc. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0441\u043c. \u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 [collations](../Searching/Collations.md).\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_16\n\n\n### collation_server\n\n\n\u041f\u0440\u0430\u0432\u0438\u043b\u043e \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e. \u041d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u0430\u044f, \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e libc_ci.\n\n\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u0435 \u0434\u043b\u044f \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432. \u041f\u0440\u0430\u0432\u0438\u043b\u043e \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430. \u0421\u043f\u0438\u0441\u043e\u043a \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u043f\u0440\u0430\u0432\u0438\u043b \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438 \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0441\u043c. \u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 [collations](../Searching/Collations.md).\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_17\n\n\n### data_dir", + "chinese": "* \u6bcf\u4e2a\u8868\u5355\u72ec\u6587\u4ef6\uff08\u9ed8\u8ba4\uff0c`0`\uff09\uff1a\u6bcf\u4e2a\u8868\u5c06\u5176\u66f4\u6539\u4fdd\u5b58\u5728\u81ea\u5df1\u7684\u65e5\u5fd7\u6587\u4ef6\u4e2d\u3002\u5982\u679c\u60a8\u6709\u8bb8\u591a\u5728\u4e0d\u540c\u65f6\u95f4\u66f4\u65b0\u7684\u8868\uff0c\u8fd9\u79cd\u8bbe\u7f6e\u5f88\u5408\u9002\u3002\u5b83\u5141\u8bb8\u8868\u5728\u4e0d\u7b49\u5f85\u5176\u4ed6\u8868\u7684\u60c5\u51b5\u4e0b\u8fdb\u884c\u66f4\u65b0\u3002\u6b64\u5916\uff0c\u5982\u679c\u4e00\u4e2a\u8868\u7684\u65e5\u5fd7\u6587\u4ef6\u51fa\u73b0\u95ee\u9898\uff0c\u4e0d\u4f1a\u5f71\u54cd\u5176\u4ed6\u8868\u3002\n* \u6240\u6709\u8868\u4f7f\u7528\u5355\u4e2a\u6587\u4ef6\uff08`1`\uff09\uff1a\u6240\u6709\u8868\u4f7f\u7528\u76f8\u540c\u7684\u4e8c\u8fdb\u5236\u65e5\u5fd7\u6587\u4ef6\u3002\u6b64\u65b9\u6cd5\u4f7f\u6587\u4ef6\u5904\u7406\u66f4\u7b80\u5355\uff0c\u56e0\u4e3a\u6587\u4ef6\u6570\u91cf\u66f4\u5c11\u3002\u7136\u800c\uff0c\u5982\u679c\u4e00\u4e2a\u8868\u4ecd\u9700\u8981\u4fdd\u5b58\u5176\u66f4\u65b0\uff0c\u8fd9\u53ef\u80fd\u4f1a\u5bfc\u81f4\u6587\u4ef6\u4fdd\u7559\u65f6\u95f4\u6bd4\u9700\u8981\u7684\u66f4\u957f\u3002\u5982\u679c\u8bb8\u591a\u8868\u9700\u8981\u540c\u65f6\u66f4\u65b0\uff0c\u6b64\u8bbe\u7f6e\u53ef\u80fd\u4f1a\u56e0\u6240\u6709\u66f4\u6539\u5fc5\u987b\u7b49\u5f85\u5199\u5165\u4e00\u4e2a\u6587\u4ef6\u800c\u53d8\u6162\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_9\n\n\n### binlog_max_log_size\n\n\n\u6b64\u8bbe\u7f6e\u63a7\u5236\u4e8c\u8fdb\u5236\u65e5\u5fd7\u6587\u4ef6\u7684\u6700\u5927\u5927\u5c0f\u3002\u5b83\u662f\u53ef\u9009\u7684\uff0c\u9ed8\u8ba4\u503c\u4e3a256 MB\u3002\n\n\u4e00\u65e6\u5f53\u524d\u4e8c\u8fdb\u5236\u65e5\u5fd7\u6587\u4ef6\u8fbe\u5230\u6b64\u5927\u5c0f\u9650\u5236\uff0c\u5c06\u5f3a\u5236\u6253\u5f00\u4e00\u4e2a\u65b0\u7684\u4e8c\u8fdb\u5236\u65e5\u5fd7\u6587\u4ef6\u3002\u8fd9\u4f1a\u5bfc\u81f4\u65e5\u5fd7\u7684\u7c92\u5ea6\u66f4\u7ec6\uff0c\u5e76\u5728\u67d0\u4e9b\u8fb9\u7f18\u5de5\u4f5c\u8d1f\u8f7d\u4e0b\u53ef\u80fd\u5bfc\u81f4\u4e8c\u8fdb\u5236\u65e5\u5fd7\u78c1\u76d8\u4f7f\u7528\u6548\u7387\u66f4\u9ad8\u3002\u503c\u4e3a0\u8868\u793a\u4e0d\u5e94\u6839\u636e\u5927\u5c0f\u91cd\u65b0\u6253\u5f00\u4e8c\u8fdb\u5236\u65e5\u5fd7\u6587\u4ef6\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_10\n\n\n### binlog_path\n\n\n\u6b64\u8bbe\u7f6e\u786e\u5b9a\u4e8c\u8fdb\u5236\u65e5\u5fd7\uff08\u4e5f\u79f0\u4e3a\u4e8b\u52a1\u65e5\u5fd7\uff09\u6587\u4ef6\u7684\u8def\u5f84\u3002\u5b83\u662f\u53ef\u9009\u7684\uff0c\u9ed8\u8ba4\u503c\u4e3a\u6784\u5efa\u65f6\u914d\u7f6e\u7684\u6570\u636e\u76ee\u5f55\uff08\u4f8b\u5982\uff0cLinux\u4e2d\u7684`/var/lib/manticore/data/binlog.*`\uff09\u3002\n\n\u4e8c\u8fdb\u5236\u65e5\u5fd7\u7528\u4e8eRT\u8868\u6570\u636e\u7684\u5d29\u6e83\u6062\u590d\uff0c\u4ee5\u53ca\u666e\u901a\u78c1\u76d8\u7d22\u5f15\u7684\u5c5e\u6027\u66f4\u65b0\uff0c\u8fd9\u4e9b\u5c5e\u6027\u5426\u5219\u5c06\u4ec5\u5b58\u50a8\u5728RAM\u4e2d\u76f4\u5230\u5237\u65b0\u3002\u5f53\u542f\u7528\u65e5\u5fd7\u8bb0\u5f55\u65f6\uff0c\u6bcf\u4e2a\u63d0\u4ea4\u5230RT\u8868\u7684\u4e8b\u52a1\u90fd\u4f1a\u88ab\u5199\u5165\u65e5\u5fd7\u6587\u4ef6\u3002\u5728\u975e\u5e72\u51c0\u5173\u95ed\u540e\u542f\u52a8\u65f6\uff0c\u65e5\u5fd7\u4f1a\u81ea\u52a8\u91cd\u653e\uff0c\u6062\u590d\u8bb0\u5f55\u7684\u66f4\u6539\u3002\n\n`binlog_path`\u6307\u4ee4\u6307\u5b9a\u4e8c\u8fdb\u5236\u65e5\u5fd7\u6587\u4ef6\u7684\u4f4d\u7f6e\u3002\u5b83\u5e94\u4ec5\u5305\u542b\u8def\u5f84\uff1b`searchd`\u4f1a\u6839\u636e\u9700\u8981\u5728\u76ee\u5f55\u4e2d\u521b\u5efa\u548c\u5220\u9664\u591a\u4e2a`binlog.*`\u6587\u4ef6\uff08\u5305\u62ec\u4e8c\u8fdb\u5236\u65e5\u5fd7\u6570\u636e\u3001\u5143\u6570\u636e\u548c\u9501\u6587\u4ef6\u7b49\uff09\u3002\n\n\u7a7a\u503c\u4f1a\u7981\u7528\u4e8c\u8fdb\u5236\u65e5\u5fd7\u8bb0\u5f55\uff0c\u8fd9\u4f1a\u63d0\u9ad8\u6027\u80fd\u4f46\u4f1a\u4f7fRT\u8868\u6570\u636e\u9762\u4e34\u98ce\u9669\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_11\n\n\n### boolean_simplify\n\n\n\u6b64\u8bbe\u7f6e\u63a7\u5236[boolean_simplify](../Searching/Options.md#boolean_simplify)\u641c\u7d22\u9009\u9879\u7684\u9ed8\u8ba4\u503c\u3002\u5b83\u662f\u53ef\u9009\u7684\uff0c\u9ed8\u8ba4\u503c\u4e3a1\uff08\u542f\u7528\uff09\u3002\n\n\u5f53\u8bbe\u7f6e\u4e3a1\u65f6\uff0c\u670d\u52a1\u5668\u5c06\u81ea\u52a8\u5e94\u7528[\u5e03\u5c14\u67e5\u8be2\u4f18\u5316](../Searching/Full_text_matching/Boolean_optimization.md)\u4ee5\u63d0\u9ad8\u67e5\u8be2\u6027\u80fd\u3002\u5f53\u8bbe\u7f6e\u4e3a0\u65f6\uff0c\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u67e5\u8be2\u5c06\u4e0d\u8fdb\u884c\u4f18\u5316\u3002\u6b64\u9ed8\u8ba4\u503c\u53ef\u4ee5\u901a\u8fc7\u4f7f\u7528\u76f8\u5e94\u7684\u641c\u7d22\u9009\u9879`boolean_simplify`\u5728\u6bcf\u4e2a\u67e5\u8be2\u7684\u57fa\u7840\u4e0a\u8986\u76d6\u3002\n\n\nCODE_BLOCK_12\n\n\n### buddy_path\n\n\n\u6b64\u8bbe\u7f6e\u786e\u5b9aManticore Buddy\u4e8c\u8fdb\u5236\u6587\u4ef6\u7684\u8def\u5f84\u3002\u5b83\u662f\u53ef\u9009\u7684\uff0c\u9ed8\u8ba4\u503c\u4e3a\u6784\u5efa\u65f6\u914d\u7f6e\u7684\u8def\u5f84\uff0c\u8be5\u8def\u5f84\u5728\u4e0d\u540c\u64cd\u4f5c\u7cfb\u7edf\u4e0a\u6709\u6240\u4e0d\u540c\u3002\u901a\u5e38\uff0c\u60a8\u4e0d\u9700\u8981\u4fee\u6539\u6b64\u8bbe\u7f6e\u3002\u4f46\u662f\uff0c\u5982\u679c\u60a8\u5e0c\u671b\u4ee5\u8c03\u8bd5\u6a21\u5f0f\u8fd0\u884cManticore Buddy\u3001\u5bf9Manticore Buddy\u8fdb\u884c\u66f4\u6539\u6216\u5b9e\u73b0\u65b0\u63d2\u4ef6\uff0c\u8fd9\u53ef\u80fd\u4f1a\u5f88\u6709\u7528\u3002\u5728\u540e\u4e00\u79cd\u60c5\u51b5\u4e0b\uff0c\u60a8\u53ef\u4ee5\u4ecehttps://github.com/manticoresoftware/manticoresearch-buddy\u514b\u9686Buddy\uff0c\u5c06\u65b0\u63d2\u4ef6\u6dfb\u52a0\u5230\u76ee\u5f55`./plugins/`\u4e2d\uff0c\u5e76\u5728\u66f4\u6539\u76ee\u5f55\u5230Buddy\u6e90\u4ee3\u7801\u540e\u8fd0\u884c`composer install --prefer-source`\u4ee5\u7b80\u5316\u5f00\u53d1\u3002\n\n\u4e3a\u4e86\u786e\u4fdd\u60a8\u53ef\u4ee5\u8fd0\u884c`composer`\uff0c\u60a8\u7684\u673a\u5668\u5fc5\u987b\u5b89\u88c5\u6709PHP 8.2\u6216\u66f4\u9ad8\u7248\u672c\uff0c\u5e76\u5b89\u88c5\u4ee5\u4e0b\u6269\u5c55\uff1a\n\nCODE_BLOCK_13\n\n\u60a8\u8fd8\u53ef\u4ee5\u9009\u62e9\u4f7f\u7528Linux amd64\u5e73\u53f0\u4e0a\u7684\u7279\u6b8a`manticore-executor-dev`\u7248\u672c\uff0c\u4f8b\u5982\uff1ahttps://github.com/manticoresoftware/executor/releases/tag/v1.0.13\n\n\u5982\u679c\u60a8\u9009\u62e9\u6b64\u65b9\u6cd5\uff0c\u8bf7\u8bb0\u4f4f\u5c06manticore executor\u7684\u5f00\u53d1\u7248\u672c\u94fe\u63a5\u5230`/usr/bin/php`\u3002\n\n\u8981\u7981\u7528Manticore Buddy\uff0c\u8bf7\u5c06\u503c\u8bbe\u7f6e\u4e3a\u7a7a\uff0c\u5982\u793a\u4f8b\u6240\u793a\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_14\n\n\n### client_timeout\n\n\n\u6b64\u8bbe\u7f6e\u786e\u5b9a\u4f7f\u7528\u6301\u4e45\u8fde\u63a5\u65f6\u5728\u8bf7\u6c42\u4e4b\u95f4\u7b49\u5f85\u7684\u6700\u5927\u65f6\u95f4\uff08\u4ee5\u79d2\u6216[special_suffixes](../Server_settings/Special_suffixes.md)\u4e3a\u5355\u4f4d\uff09\u3002\u5b83\u662f\u53ef\u9009\u7684\uff0c\u9ed8\u8ba4\u503c\u4e3a\u4e94\u5206\u949f\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_15\n\n\n### collation_libc_locale\n\n\n\u670d\u52a1\u5668libc\u533a\u57df\u8bbe\u7f6e\u3002\u53ef\u9009\uff0c\u9ed8\u8ba4\u4e3aC\u3002\n\n\u6307\u5b9a\u5f71\u54cd\u57fa\u4e8elibc\u7684\u6392\u5e8f\u89c4\u5219\u7684libc\u533a\u57df\u8bbe\u7f6e\u3002\u6709\u5173\u8be6\u7ec6\u4fe1\u606f\uff0c\u8bf7\u53c2\u9605[collations](../Searching/Collations.md)\u90e8\u5206\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_16\n\n\n### collation_server\n\n\n\u9ed8\u8ba4\u670d\u52a1\u5668\u6392\u5e8f\u89c4\u5219\u3002\u53ef\u9009\uff0c\u9ed8\u8ba4\u4e3alibc_ci\u3002\n\n\u6307\u5b9a\u7528\u4e8e\u4f20\u5165\u8bf7\u6c42\u7684\u9ed8\u8ba4\u6392\u5e8f\u89c4\u5219\u3002\u53ef\u4ee5\u5728\u6bcf\u4e2a\u67e5\u8be2\u7684\u57fa\u7840\u4e0a\u8986\u76d6\u6392\u5e8f\u89c4\u5219\u3002\u6709\u5173\u53ef\u7528\u6392\u5e8f\u89c4\u5219\u548c\u5176\u4ed6\u8be6\u7ec6\u4fe1\u606f\u7684\u5217\u8868\uff0c\u8bf7\u53c2\u9605[collations](../Searching/Collations.md)\u90e8\u5206\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_17\n\n\n### data_dir" + }, + "is_code_or_comment": false, + "model": "qwen/qwen3-14b", + "updated_at": 1773763263 + }, + "18b602872890cfcc37b6b1ed8698c3905fff4103ac2dcd84a3f46efaddc9c2b0": { + "original": "The `hostname_lookup` option defines the strategy for renewing hostnames. By default, the IP addresses of agent host names are cached at server start to avoid excessive access to DNS. However, in some cases, the IP can change dynamically (e.g. cloud hosting) and it may be desirable to not cache the IPs. Setting this option to `request` disables the caching and queries the DNS for each query. The IP addresses can also be manually renewed using the `FLUSH HOSTNAMES` command.\n\n### jobs_queue_size\n\nThe jobs_queue_size setting defines how many \"jobs\" can be in the queue at the same time. It is unlimited by default.\n\nIn most cases, a \"job\" means one query to a single local table (plain table or a disk chunk of a real-time table). For example, if you have a distributed table consisting of 2 local tables or a real-time table with 2 disk chunks, a search query to either of them will mostly put 2 jobs in the queue. Then, the thread pool (whose size is defined by [threads](../Server_settings/Searchd.md#threads) will process them. However, in some cases, if the query is too complex, more jobs can be created. Changing this setting is recommended when [max_connections](../Server_settings/Searchd.md#max_connections) and [threads](../Server_settings/Searchd.md#threads) are not enough to find a balance between the desired performance.\n\n### join_batch_size\n\nTable joins work by accumulating a batch of matches, which are the results of the query executed on the left table. This batch is then processed as a single query on the right table.\n\nThis option allows you to adjust the batch size. The default value is `1000`, and setting this option to `0` disables batching.\n\nA larger batch size may improve performance; however, for some queries, it can lead to excessive memory consumption.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_31\n\n\n### join_cache_size\n\nEach query executed on the right table is defined by specific JOIN ON conditions, which determine the result set retrieved from the right table.\n\nIf there are only a few unique JOIN ON conditions, reusing the results can be more efficient than repeatedly executing queries on the right table. To enable this, the result sets are stored in a cache.\n\nThis option allows you to configure the size of this cache. The default value is `20 MB`, and setting this option to 0 disables caching.\n\nNote that each thread maintains its own cache, so you should account for the number of threads executing queries when estimating total memory usage.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_32\n\n\n### listen_backlog\n\n\nThe listen_backlog setting determines the length of the TCP listen backlog for incoming connections. This is particularly relevant for Windows builds that process requests one by one. When the connection queue reaches its limit, new incoming connections will be refused.\nFor non-Windows builds, the default value should work fine, and there is usually no need to adjust this setting.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_33\n\n\n### kibana_version_string\n\n\nA server version string to return to Kibana or OpenSearch Dashboards. Optional \u2014 by default, it's set `7.6.0`.\n\nSome versions of Kibana and OpenSearch Dashboards expect the server to report a specific version number, and might behave differently depending on it. To workaround such issues, you can use this setting, which makes Manticore report a custom version to Kibana or OpenSearch Dashboards.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_34\n\n\n### listen\n\n\nThis setting lets you specify an IP address and port, or Unix-domain socket path, that Manticore will accept connections on.\n\nThe general syntax for `listen` is:\n\nCODE_BLOCK_35\n\nYou can specify:\n* either an IP address (or hostname) and a port number\n* or just a port number\n* or a Unix socket path (not supported on Windows)\n* or an IP address and port range\n\nIf you specify a port number but not an address, `searchd` will listen on all network interfaces. Unix path is identified by a leading slash. Port range can be set only for the replication protocol.\n\nYou can also specify a protocol handler (listener) to be used for connections on this socket. The listeners are:", + "translations": { + "russian": "\u041e\u043f\u0446\u0438\u044f `hostname_lookup` \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044e \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f hostname (\u0438\u043c\u0451\u043d \u0445\u043e\u0441\u0442\u043e\u0432). \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e IP \u0430\u0434\u0440\u0435\u0441\u0430 hostname \u0430\u0433\u0435\u043d\u0442\u043e\u0432 \u043a\u0435\u0448\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u0447\u0440\u0435\u0437\u043c\u0435\u0440\u043d\u043e\u0433\u043e \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a DNS. \u041e\u0434\u043d\u0430\u043a\u043e, \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 IP \u0430\u0434\u0440\u0435\u0441 \u043c\u043e\u0436\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u0438 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u0438 \u0432 \u043e\u0431\u043b\u0430\u043a\u0435), \u0438 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435 \u043a\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u0442\u044c IP \u0430\u0434\u0440\u0435\u0441\u0430. \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u044d\u0442\u043e\u0439 \u043e\u043f\u0446\u0438\u0438 \u0432 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 `request` \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043a\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442 DNS \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430. IP \u0430\u0434\u0440\u0435\u0441\u0430 \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u044b `FLUSH HOSTNAMES`.\n\n### jobs_queue_size\n\n\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 jobs_queue_size \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0441\u043a\u043e\u043b\u044c\u043a\u043e \"\u0437\u0430\u0434\u0430\u0447\" (jobs) \u043c\u043e\u0436\u0435\u0442 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u044d\u0442\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043d\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043e.\n\n\u0412 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \"\u0437\u0430\u0434\u0430\u0447\u0430\" \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u043e\u0434\u0438\u043d \u0437\u0430\u043f\u0440\u043e\u0441 \u043a \u043e\u0434\u043d\u043e\u0439 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 (\u043e\u0431\u044b\u0447\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0438\u043b\u0438 \u0434\u0438\u0441\u043a\u043e\u0432\u043e\u043c\u0443 chunk (\u0447\u0430\u043d\u043a\u0443) \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438). \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u043b\u0438 \u0432\u044b \u0438\u043c\u0435\u0435\u0442\u0435 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u0443\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u0443, \u0441\u043e\u0441\u0442\u043e\u044f\u0449\u0443\u044e \u0438\u0437 2 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0442\u0430\u0431\u043b\u0438\u0446, \u0438\u043b\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0441 2 \u0434\u0438\u0441\u043a\u043e\u0432\u044b\u043c\u0438 chunks (\u0447\u0430\u043d\u043a\u0430\u043c\u0438), \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 \u043a \u043b\u044e\u0431\u043e\u0439 \u0438\u0437 \u043d\u0438\u0445 \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u0442 2 \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u044c. \u0417\u0430\u0442\u0435\u043c \u043f\u0443\u043b \u043f\u043e\u0442\u043e\u043a\u043e\u0432 (thread pool), \u0440\u0430\u0437\u043c\u0435\u0440 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c [threads](../Server_settings/Searchd.md#threads), \u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0438\u0445. \u041e\u0434\u043d\u0430\u043a\u043e, \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445, \u0435\u0441\u043b\u0438 \u0437\u0430\u043f\u0440\u043e\u0441 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0441\u043b\u043e\u0436\u043d\u044b\u0439, \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u0437\u0430\u0434\u0430\u0447. \u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u043a\u043e\u0433\u0434\u0430 [max_connections](../Server_settings/Searchd.md#max_connections) \u0438 [threads](../Server_settings/Searchd.md#threads) \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u044f \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u043c\u0435\u0436\u0434\u0443 \u0436\u0435\u043b\u0430\u0435\u043c\u043e\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e.\n\n### join_batch_size\n\n\u041e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0442\u0430\u0431\u043b\u0438\u0446 (table joins) \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e\u043c \u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u0438\u044f batch (\u043f\u0430\u0447\u043a\u0438) \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043c\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u0430, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u043e\u0433\u043e \u043d\u0430 \u043b\u0435\u0432\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435. \u0417\u0430\u0442\u0435\u043c \u044d\u0442\u0430 \u043f\u0430\u0447\u043a\u0430 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0435\u0434\u0438\u043d\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u043f\u0440\u0430\u0432\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435.\n\n\u042d\u0442\u0430 \u043e\u043f\u0446\u0438\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u0430\u043c \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440 \u043f\u0430\u0447\u043a\u0438. \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u2014 `1000`, \u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u044d\u0442\u043e\u0439 \u043e\u043f\u0446\u0438\u0438 \u0432 `0` \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u0442 batch \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 (\u043f\u0430\u0447\u043a\u0438).\n\n\u0411\u043e\u043b\u044c\u0448\u0438\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u043f\u0430\u0447\u043a\u0438 \u043c\u043e\u0436\u0435\u0442 \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c; \u043e\u0434\u043d\u0430\u043a\u043e, \u0434\u043b\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a \u0447\u0440\u0435\u0437\u043c\u0435\u0440\u043d\u043e\u043c\u0443 \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u044e \u043f\u0430\u043c\u044f\u0442\u0438.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_31\n\n\n### join_cache_size\n\n\u041a\u0430\u0436\u0434\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0439 \u043d\u0430 \u043f\u0440\u0430\u0432\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u043c\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u043c\u0438 JOIN ON, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0442 \u043d\u0430\u0431\u043e\u0440 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 (result set), \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c\u044b\u0439 \u0438\u0437 \u043f\u0440\u0430\u0432\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b.\n\n\u0415\u0441\u043b\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043b\u0438\u0448\u044c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u0439 JOIN ON, \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u043c, \u0447\u0435\u043c \u043c\u043d\u043e\u0433\u043e\u043a\u0440\u0430\u0442\u043d\u043e\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043d\u0430 \u043f\u0440\u0430\u0432\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435. \u0414\u043b\u044f \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u0431\u043e\u0440\u044b \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0432 \u043a\u0435\u0448\u0435 (cache).\n\n\u042d\u0442\u0430 \u043e\u043f\u0446\u0438\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u0430\u043c \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440 \u044d\u0442\u043e\u0433\u043e \u043a\u0435\u0448\u0430. \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u2014 `20 MB`, \u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u044d\u0442\u043e\u0439 \u043e\u043f\u0446\u0438\u0438 \u0432 0 \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043a\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435.\n\n\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u043f\u043e\u0442\u043e\u043a (thread) \u0445\u0440\u0430\u043d\u0438\u0442 \u0441\u0432\u043e\u0439 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043a\u0435\u0448, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0438 \u043e\u0446\u0435\u043d\u043a\u0435 \u043e\u0431\u0449\u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0430\u043c\u044f\u0442\u0438 \u0432\u0430\u043c \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u0442\u043e\u043a\u043e\u0432, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0449\u0438\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u044b.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_32\n\n\n### listen_backlog\n\n\n\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 listen_backlog \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0434\u043b\u0438\u043d\u0443 backlog (\u0437\u0430\u0434\u043d\u0435\u0439 \u043e\u0447\u0435\u0440\u0435\u0434\u0438) TCP listen \u0434\u043b\u044f \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439. \u042d\u0442\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043e\u043a \u043f\u043e\u0434 Windows, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043e\u0434\u0438\u043d \u0437\u0430 \u0434\u0440\u0443\u0433\u0438\u043c. \u041a\u043e\u0433\u0434\u0430 \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439 \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0435\u0442 \u0441\u0432\u043e\u0435\u0433\u043e \u043f\u0440\u0435\u0434\u0435\u043b\u0430, \u043d\u043e\u0432\u044b\u0435 \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0443\u0442 \u043e\u0442\u0432\u0435\u0440\u0433\u0430\u0442\u044c\u0441\u044f.\n\u0414\u043b\u044f \u0441\u0431\u043e\u0440\u043e\u043a \u043f\u043e\u0434 \u043d\u0435-Windows \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0434\u043e\u043b\u0436\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0445\u043e\u0440\u043e\u0448\u043e, \u0438 \u043e\u0431\u044b\u0447\u043d\u043e \u043d\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c \u044d\u0442\u043e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_33\n\n\n### kibana_version_string\n\n\n\u0421\u0442\u0440\u043e\u043a\u0430 \u0432\u0435\u0440\u0441\u0438\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0434\u043b\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430 \u0432 Kibana \u0438\u043b\u0438 OpenSearch Dashboards. \u041e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u0430\u044f \u2014 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e `7.6.0`.\n\n\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 Kibana \u0438 OpenSearch Dashboards \u043e\u0436\u0438\u0434\u0430\u044e\u0442 \u043e\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u043d\u043e\u043c\u0435\u0440 \u0432\u0435\u0440\u0441\u0438\u0438 \u0438 \u043c\u043e\u0433\u0443\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043f\u043e-\u0440\u0430\u0437\u043d\u043e\u043c\u0443 \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u043d\u0435\u0433\u043e. \u0414\u043b\u044f \u043e\u0431\u0445\u043e\u0434\u0430 \u0442\u0430\u043a\u0438\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u043e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 Manticore \u0441\u043e\u043e\u0431\u0449\u0430\u0442\u044c Kibana \u0438\u043b\u0438 OpenSearch Dashboards \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_34\n\n\n### listen\n\n\n\u042d\u0442\u0430 \u043e\u043f\u0446\u0438\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u0430\u043c \u0443\u043a\u0430\u0437\u0430\u0442\u044c IP \u0430\u0434\u0440\u0435\u0441 \u0438 \u043f\u043e\u0440\u0442, \u0438\u043b\u0438 \u043f\u0443\u0442\u044c Unix-domain socket, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u044b\u043c Manticore \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f.\n\n\u041e\u0431\u0449\u0438\u0439 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u0434\u043b\u044f `listen`:\n\nCODE_BLOCK_35\n\n\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u043a\u0430\u0437\u0430\u0442\u044c:\n* \u043b\u0438\u0431\u043e IP \u0430\u0434\u0440\u0435\u0441 (\u0438\u043b\u0438 hostname (\u0438\u043c\u044f \u0445\u043e\u0441\u0442\u0430)) \u0438 \u043d\u043e\u043c\u0435\u0440 \u043f\u043e\u0440\u0442\u0430\n* \u043b\u0438\u0431\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u043e\u043c\u0435\u0440 \u043f\u043e\u0440\u0442\u0430\n* \u043b\u0438\u0431\u043e \u043f\u0443\u0442\u044c Unix socket (\u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 Windows)\n* \u043b\u0438\u0431\u043e IP \u0430\u0434\u0440\u0435\u0441 \u0438 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u043f\u043e\u0440\u0442\u043e\u0432\n\n\u0415\u0441\u043b\u0438 \u0432\u044b \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0435 \u043d\u043e\u043c\u0435\u0440 \u043f\u043e\u0440\u0442\u0430, \u043d\u043e \u043d\u0435 \u0430\u0434\u0440\u0435\u0441, `searchd` \u0431\u0443\u0434\u0435\u0442 \u0441\u043b\u0443\u0448\u0430\u0442\u044c \u043d\u0430 \u0432\u0441\u0435\u0445 \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430\u0445. Unix \u043f\u0443\u0442\u044c \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0432\u0435\u0434\u0443\u0449\u0438\u043c \u0441\u043b\u044d\u0448\u0435\u043c. \u0414\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u043f\u043e\u0440\u0442\u043e\u0432 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438.\n\n\u0412\u044b \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 (listener), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043b\u044f \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439 \u043d\u0430 \u044d\u0442\u043e\u043c socket. \u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043d\u044b\u0435 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 (listeners):", + "chinese": "`hostname_lookup` \u9009\u9879\u5b9a\u4e49\u4e86\u7eed\u8ba2\u4e3b\u673a\u540d\u7684\u7b56\u7565\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u4ee3\u7406\u4e3b\u673a\u540d\u7684 IP \u5730\u5740\u5728\u670d\u52a1\u5668\u542f\u52a8\u65f6\u4f1a\u88ab\u7f13\u5b58\uff0c\u4ee5\u907f\u514d\u5bf9 DNS \u7684\u8fc7\u5ea6\u8bbf\u95ee\u3002\u7136\u800c\uff0c\u5728\u67d0\u4e9b\u60c5\u51b5\u4e0b\uff0cIP \u53ef\u80fd\u4f1a\u52a8\u6001\u66f4\u6539\uff08\u4f8b\u5982\u4e91\u6258\u7ba1\uff09\uff0c\u6b64\u65f6\u53ef\u80fd\u4e0d\u5e0c\u671b\u7f13\u5b58 IP\u3002\u5c06\u6b64\u9009\u9879\u8bbe\u7f6e\u4e3a `request` \u4f1a\u7981\u7528\u7f13\u5b58\uff0c\u5e76\u5bf9\u6bcf\u4e2a\u67e5\u8be2\u90fd\u67e5\u8be2 DNS\u3002\u4e5f\u53ef\u4ee5\u4f7f\u7528 `FLUSH HOSTNAMES` \u547d\u4ee4\u624b\u52a8\u7eed\u8ba2 IP \u5730\u5740\u3002\n\n### jobs_queue_size\n\njobs_queue_size \u8bbe\u7f6e\u5b9a\u4e49\u4e86\u961f\u5217\u4e2d\u53ef\u4ee5\u540c\u65f6\u5b58\u5728\u7684\u201c\u4efb\u52a1\u201d\u6570\u91cf\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u662f\u65e0\u9650\u7684\u3002\n\n\u5728\u5927\u591a\u6570\u60c5\u51b5\u4e0b\uff0c\u201c\u4efb\u52a1\u201d\u610f\u5473\u7740\u5bf9\u5355\u4e2a\u672c\u5730\u8868\uff08\u666e\u901a\u8868\u6216\u5b9e\u65f6\u8868\u7684\u78c1\u76d8\u5757\uff09\u7684\u4e00\u6b21\u67e5\u8be2\u3002\u4f8b\u5982\uff0c\u5982\u679c\u4f60\u6709\u4e00\u4e2a\u7531 2 \u4e2a\u672c\u5730\u8868\u7ec4\u6210\u7684\u5206\u5e03\u5f0f\u8868\uff0c\u6216\u4e00\u4e2a\u5305\u542b 2 \u4e2a\u78c1\u76d8\u5757\u7684\u5b9e\u65f6\u8868\uff0c\u5bf9\u5176\u4e2d\u4efb\u4f55\u4e00\u4e2a\u7684\u641c\u7d22\u67e5\u8be2\u901a\u5e38\u4f1a\u5728\u961f\u5217\u4e2d\u653e\u5165 2 \u4e2a\u4efb\u52a1\u3002\u7136\u540e\uff0c\u7ebf\u7a0b\u6c60\uff08\u5176\u5927\u5c0f\u7531 [threads](../Server_settings/Searchd.md#threads) \u5b9a\u4e49\uff09\u4f1a\u5904\u7406\u5b83\u4eec\u3002\u7136\u800c\uff0c\u5728\u67d0\u4e9b\u60c5\u51b5\u4e0b\uff0c\u5982\u679c\u67e5\u8be2\u8fc7\u4e8e\u590d\u6742\uff0c\u53ef\u80fd\u4f1a\u751f\u6210\u66f4\u591a\u4efb\u52a1\u3002\u5f53 [max_connections](../Server_settings/Searchd.md#max_connections) \u548c [threads](../Server_settings/Searchd.md#threads) \u65e0\u6cd5\u5728\u671f\u671b\u7684\u6027\u80fd\u4e4b\u95f4\u8fbe\u5230\u5e73\u8861\u65f6\uff0c\u5efa\u8bae\u66f4\u6539\u6b64\u8bbe\u7f6e\u3002\n\n### join_batch_size\n\n\u8868\u8fde\u63a5\u901a\u8fc7\u7d2f\u79ef\u4e00\u6279\u5339\u914d\u9879\u6765\u5de5\u4f5c\uff0c\u8fd9\u4e9b\u5339\u914d\u9879\u662f\u5de6\u8868\u4e0a\u6267\u884c\u7684\u67e5\u8be2\u7ed3\u679c\u3002\u7136\u540e\uff0c\u8be5\u6279\u6b21\u4f5c\u4e3a\u53f3\u8868\u4e0a\u7684\u5355\u4e2a\u67e5\u8be2\u8fdb\u884c\u5904\u7406\u3002\n\n\u6b64\u9009\u9879\u5141\u8bb8\u60a8\u8c03\u6574\u6279\u6b21\u5927\u5c0f\u3002\u9ed8\u8ba4\u503c\u4e3a `1000`\uff0c\u5c06\u6b64\u9009\u9879\u8bbe\u7f6e\u4e3a `0` \u4f1a\u7981\u7528\u6279\u5904\u7406\u3002\n\n\u8f83\u5927\u7684\u6279\u6b21\u5927\u5c0f\u53ef\u80fd\u4f1a\u63d0\u9ad8\u6027\u80fd\uff1b\u7136\u800c\uff0c\u5bf9\u4e8e\u67d0\u4e9b\u67e5\u8be2\uff0c\u5b83\u53ef\u80fd\u5bfc\u81f4\u5185\u5b58\u6d88\u8017\u8fc7\u591a\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_31\n\n\n### join_cache_size\n\n\u5728\u53f3\u8868\u4e0a\u6267\u884c\u7684\u6bcf\u4e2a\u67e5\u8be2\u90fd\u7531\u7279\u5b9a\u7684 JOIN ON \u6761\u4ef6\u5b9a\u4e49\uff0c\u8fd9\u4e9b\u6761\u4ef6\u51b3\u5b9a\u4e86\u4ece\u53f3\u8868\u68c0\u7d22\u7684\u7ed3\u679c\u96c6\u3002\n\n\u5982\u679c\u53ea\u6709\u5c11\u91cf\u552f\u4e00\u7684 JOIN ON \u6761\u4ef6\uff0c\u91cd\u7528\u7ed3\u679c\u53ef\u80fd\u6bd4\u53cd\u590d\u5728\u53f3\u8868\u4e0a\u6267\u884c\u67e5\u8be2\u66f4\u9ad8\u6548\u3002\u4e3a\u6b64\uff0c\u7ed3\u679c\u96c6\u5b58\u50a8\u5728\u7f13\u5b58\u4e2d\u3002\n\n\u6b64\u9009\u9879\u5141\u8bb8\u60a8\u914d\u7f6e\u6b64\u7f13\u5b58\u7684\u5927\u5c0f\u3002\u9ed8\u8ba4\u503c\u4e3a `20 MB`\uff0c\u5c06\u6b64\u9009\u9879\u8bbe\u7f6e\u4e3a 0 \u4f1a\u7981\u7528\u7f13\u5b58\u3002\n\n\u8bf7\u6ce8\u610f\uff0c\u6bcf\u4e2a\u7ebf\u7a0b\u7ef4\u62a4\u81ea\u5df1\u7684\u7f13\u5b58\uff0c\u56e0\u6b64\u5728\u4f30\u7b97\u603b\u5185\u5b58\u4f7f\u7528\u91cf\u65f6\uff0c\u5e94\u8003\u8651\u6267\u884c\u67e5\u8be2\u7684\u7ebf\u7a0b\u6570\u91cf\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_32\n\n\n### listen_backlog\n\n\nlisten_backlog \u8bbe\u7f6e\u51b3\u5b9a\u4e86\u4f20\u5165\u8fde\u63a5\u7684 TCP \u76d1\u542c\u961f\u5217\u957f\u5ea6\u3002\u8fd9\u5bf9\u4e8e\u9010\u4e2a\u5904\u7406\u8bf7\u6c42\u7684 Windows \u6784\u5efa\u5c24\u4e3a\u91cd\u8981\u3002\u5f53\u8fde\u63a5\u961f\u5217\u8fbe\u5230\u5176\u9650\u5236\u65f6\uff0c\u65b0\u7684\u4f20\u5165\u8fde\u63a5\u5c06\u88ab\u62d2\u7edd\u3002\n\u5bf9\u4e8e\u975e Windows \u6784\u5efa\uff0c\u9ed8\u8ba4\u503c\u901a\u5e38\u53ef\u4ee5\u6b63\u5e38\u5de5\u4f5c\uff0c\u901a\u5e38\u4e0d\u9700\u8981\u8c03\u6574\u6b64\u8bbe\u7f6e\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_33\n\n\n### kibana_version_string\n\n\n\u8fd4\u56de\u7ed9 Kibana \u6216 OpenSearch Dashboards \u7684\u670d\u52a1\u5668\u7248\u672c\u5b57\u7b26\u4e32\u3002\u53ef\u9009 \u2014 \u9ed8\u8ba4\u8bbe\u7f6e\u4e3a `7.6.0`\u3002\n\n\u67d0\u4e9b\u7248\u672c\u7684 Kibana \u548c OpenSearch Dashboards \u671f\u671b\u670d\u52a1\u5668\u62a5\u544a\u7279\u5b9a\u7684\u7248\u672c\u53f7\uff0c\u5e76\u53ef\u80fd\u6839\u636e\u8be5\u7248\u672c\u53f7\u8868\u73b0\u51fa\u4e0d\u540c\u7684\u884c\u4e3a\u3002\u4e3a\u89e3\u51b3\u6b64\u7c7b\u95ee\u9898\uff0c\u60a8\u53ef\u4ee5\u4f7f\u7528\u6b64\u8bbe\u7f6e\uff0c\u4f7f Manticore \u5411 Kibana \u6216 OpenSearch Dashboards \u62a5\u544a\u81ea\u5b9a\u4e49\u7248\u672c\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_34\n\n\n### listen\n\n\n\u6b64\u8bbe\u7f6e\u5141\u8bb8\u60a8\u6307\u5b9a Manticore \u5c06\u63a5\u53d7\u8fde\u63a5\u7684 IP \u5730\u5740\u548c\u7aef\u53e3\uff0c\u6216 Unix \u57df\u5957\u63a5\u5b57\u8def\u5f84\u3002\n\n`listen` \u7684\u4e00\u822c\u8bed\u6cd5\u4e3a\uff1a\n\nCODE_BLOCK_35\n\n\u60a8\u53ef\u4ee5\u6307\u5b9a\uff1a\n* \u4e00\u4e2a IP \u5730\u5740\uff08\u6216\u4e3b\u673a\u540d\uff09\u548c\u7aef\u53e3\u53f7\n* \u4ec5\u7aef\u53e3\u53f7\n* \u6216\u4e00\u4e2a Unix \u5957\u63a5\u5b57\u8def\u5f84\uff08Windows \u4e0d\u652f\u6301\uff09\n* \u6216\u4e00\u4e2a IP \u5730\u5740\u548c\u7aef\u53e3\u8303\u56f4\n\n\u5982\u679c\u60a8\u6307\u5b9a\u4e86\u7aef\u53e3\u53f7\u4f46\u672a\u6307\u5b9a\u5730\u5740\uff0c`searchd` \u5c06\u76d1\u542c\u6240\u6709\u7f51\u7edc\u63a5\u53e3\u3002Unix \u8def\u5f84\u7531\u524d\u5bfc\u659c\u6760\u6807\u8bc6\u3002\u7aef\u53e3\u8303\u56f4\u53ea\u80fd\u4e3a\u590d\u5236\u534f\u8bae\u8bbe\u7f6e\u3002\n\n\u60a8\u8fd8\u53ef\u4ee5\u6307\u5b9a\u7528\u4e8e\u6b64\u5957\u63a5\u5b57\u8fde\u63a5\u7684\u534f\u8bae\u5904\u7406\u7a0b\u5e8f\uff08\u76d1\u542c\u5668\uff09\u3002\u76d1\u542c\u5668\u5305\u62ec\uff1a" + }, + "is_code_or_comment": false, + "model": "qwen/qwen3-14b", + "updated_at": 1773763265 + }, + "ed9a27622e506e93991817eb0db330a87900736c9028550f69ad44f5099b1f31": { + "original": "When performing substring searches against tables built with `dict = keywords` enabled, a single wildcard may potentially result in thousands or even millions of matched keywords. This directive allows you to increase the limit of how many keywords will merge together to speed up matching but uses more memory in the search.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_26\n\n\n### expansion_phrase_limit\n\n\nThis setting controls the maximum number of alternative phrase variants generated due to `OR` operators inside `PHRASE`, `PROXIMITY`, and `QUORUM` operators. It is optional, with a default value of 1024.\n\nWhen using the `|` (OR) operator inside phrase-like operator, the total number of expanded combinations may grow exponentially depending on the number of alternatives specified. This setting helps prevent excessive query expansion by capping the number of permutations considered during query processing.\n\nIf the number of generated variants exceeds this limit, the query will either:\n\n- fail with an error (default behavior)\n- return partial results with a warning, if `expansion_phrase_warning` is enabled\n\n\n##### Example:\n\n\n\nCODE_BLOCK_27\n\n\n### expansion_phrase_warning\n\n\nThis setting controls the behavior when the query expansion limit defined by `expansion_phrase_limit` is exceeded.\n\nBy default, the query will fail with an error message. When `expansion_phrase_warning` is set to 1, the search continues using a partial transformation of the phrase (up to the configured limit), and the server returns a warning message to the user along with the result set. This allows queries that are too complex for full expansion to still return partial results without complete failure.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_28\n\n\n### grouping_in_utc\n\nThis setting specifies whether timed grouping in API and SQL will be calculated in the local timezone or in UTC. It is optional, with a default value of 0 (meaning 'local timezone').\n\nBy default, all 'group by time' expressions (like group by day, week, month, and year in API, also group by day, month, year, yearmonth, yearmonthday in SQL) are done using local time. For example, if you have documents with attributes timed `13:00 utc` and `15:00 utc`, in the case of grouping, they both will fall into facility groups according to your local timezone setting. If you live in `utc`, it will be one day, but if you live in `utc+10`, then these documents will be matched into different `group by day` facility groups (since 13:00 utc in UTC+10 timezone is 23:00 local time, but 15:00 is 01:00 of the next day). Sometimes such behavior is unacceptable, and it is desirable to make time grouping not dependent on timezone. You can run the server with a defined global TZ environment variable, but it will affect not only grouping but also timestamping in the logs, which may be undesirable as well. Switching 'on' this option (either in config or using [SET global](../Server_settings/Setting_variables_online.md#SET) statement in SQL) will cause all time grouping expressions to be calculated in UTC, leaving the rest of time-depentend functions (i.e. logging of the server) in local TZ.\n\n### timezone\n\nThis setting specifies the timezone to be used by date/time-related functions. By default, the local timezone is used, but you can specify a different timezone in IANA format (e.g., `Europe/Amsterdam`).\n\nNote that this setting has no impact on logging, which always operates in the local timezone.\n\nAlso, note that if `grouping_in_utc` is used, the 'group by time' function will still use UTC, while other date/time-related functions will use the specified timezone. Overall, it is not recommended to mix `grouping_in_utc` and `timezone`.\n\nYou can configure this option either in the config or by using the [SET global](../Server_settings/Setting_variables_online.md#SET) statement in SQL.\n\n### ha_period_karma\n\n\nThis setting specifies the agent mirror statistics window size, in seconds (or [special_suffixes](../Server_settings/Special_suffixes.md)). It is optional, with a default value of 60 seconds.\n\nFor a distributed table with agent mirrors in it (see more in [agent](../Creating_a_table/Creating_a_distributed_table/Creating_a_local_distributed_table.md), the master tracks several different per-mirror counters. These counters are then used for failover and balancing (the master picks the best mirror to use based on the counters). Counters are accumulated in blocks of `ha_period_karma` seconds.\n\nAfter beginning a new block, the master may still use the accumulated values from the previous one until the new one is half full. As a result, any previous history stops affecting the mirror choice after 1.5 times ha_period_karma seconds at most.\n\nEven though at most two blocks are used for mirror selection, up to 15 last blocks are stored for instrumentation purposes. These blocks can be inspected using the [SHOW AGENT STATUS](../Node_info_and_management/Node_status.md#SHOW-AGENT-STATUS) statement.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_29\n\n\n### ha_ping_interval\n\n\nThis setting configures the interval between agent mirror pings, in milliseconds (or [special_suffixes](../Server_settings/Special_suffixes.md)). It is optional, with a default value of 1000 milliseconds.\n\nFor a distributed table with agent mirrors in it (see more in [agent](../Creating_a_table/Creating_a_distributed_table/Creating_a_local_distributed_table.md)), the master sends all mirrors a ping command during idle periods. This is to track the current agent status (alive or dead, network roundtrip, etc). The interval between such pings is defined by this directive. To disable pings, set ha_ping_interval to 0.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_30\n\n\n### hostname_lookup", + "translations": { + "russian": "\u041f\u0440\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u043f\u043e\u0438\u0441\u043a\u0430 \u043f\u043e\u0434\u0441\u0442\u0440\u043e\u043a \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u0445, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u0432\u043a\u043b\u044e\u0447\u0451\u043d\u043d\u044b\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c `dict = keywords`, \u043e\u0434\u0438\u043d \u0441\u0438\u043c\u0432\u043e\u043b \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u044e \u0441 \u0442\u044b\u0441\u044f\u0447\u0430\u043c\u0438 \u0438\u043b\u0438 \u0434\u0430\u0436\u0435 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430\u043c\u0438 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0441\u043b\u043e\u0432. \u042d\u0442\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u043b\u0438\u043c\u0438\u0442 \u043d\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0441\u043b\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u044b \u0434\u043b\u044f \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u044f \u043f\u043e\u0438\u0441\u043a\u0430, \u043d\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u0430\u043c\u044f\u0442\u0438.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_26\n\n\n### expansion_phrase_limit\n\n\n\u042d\u0442\u043e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0444\u0440\u0430\u0437, \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c\u044b\u0445 \u0438\u0437-\u0437\u0430 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432 `OR` \u0432\u043d\u0443\u0442\u0440\u0438 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432 `PHRASE`, `PROXIMITY` \u0438 `QUORUM`. \u041e\u043d \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u2014 1024.\n\n\u041f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 `|` (\u0418\u041b\u0418) \u0432\u043d\u0443\u0442\u0440\u0438 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432, \u043f\u043e\u0445\u043e\u0436\u0438\u0445 \u043d\u0430 \u0444\u0440\u0430\u0437\u0443, \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0445 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0439 \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0441\u0442\u0438 \u044d\u043a\u0441\u043f\u043e\u043d\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0447\u0438\u0441\u043b\u0430 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0445 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432. \u042d\u0442\u043e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0442\u0438\u0442\u044c \u0447\u0440\u0435\u0437\u043c\u0435\u0440\u043d\u043e\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u0430, \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u044f \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u043a, \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u043f\u0440\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u0430.\n\n\u0415\u0441\u043b\u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u0435\u0442 \u044d\u0442\u043e\u0442 \u043b\u0438\u043c\u0438\u0442, \u0437\u0430\u043f\u0440\u043e\u0441 \u043b\u0438\u0431\u043e:\n\n- \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u0441\u044f \u0441 \u043e\u0448\u0438\u0431\u043a\u043e\u0439 (\u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e)\n- \u0432\u0435\u0440\u043d\u0451\u0442 \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u044b\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0441 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435\u043c, \u0435\u0441\u043b\u0438 \u0432\u043a\u043b\u044e\u0447\u0451\u043d \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 `expansion_phrase_warning`\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_27\n\n\n### expansion_phrase_warning\n\n\n\u042d\u0442\u043e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435\u043c \u043f\u0440\u0438 \u043f\u0440\u0435\u0432\u044b\u0448\u0435\u043d\u0438\u0438 \u043b\u0438\u043c\u0438\u0442\u0430 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u0430, \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c `expansion_phrase_limit`.\n\n\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0437\u0430\u043f\u0440\u043e\u0441 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u0441\u044f \u0441 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435\u043c \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0435. \u041a\u043e\u0433\u0434\u0430 `expansion_phrase_warning` \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u0432 1, \u043f\u043e\u0438\u0441\u043a \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442\u0441\u044f \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e\u0433\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0444\u0440\u0430\u0437\u044b (\u0432\u043f\u043b\u043e\u0442\u044c \u0434\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0433\u043e \u043b\u0438\u043c\u0438\u0442\u0430), \u0438 \u0441\u0435\u0440\u0432\u0435\u0440 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0430\u044e\u0449\u0435\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u043d\u0430\u0431\u043e\u0440\u043e\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c, \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0441\u043b\u043e\u0436\u043d\u044b\u043c \u0434\u043b\u044f \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f, \u0432\u0441\u0451 \u0436\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u044b\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0431\u0435\u0437 \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u0441\u0431\u043e\u044f.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_28\n\n\n### grouping_in_utc\n\n\u042d\u0442\u043e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442, \u0431\u0443\u0434\u0435\u0442 \u043b\u0438 \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0430 \u043f\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0432 API \u0438 SQL \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u043c \u0447\u0430\u0441\u043e\u0432\u043e\u043c \u043f\u043e\u044f\u0441\u0435 \u0438\u043b\u0438 \u0432 UTC. \u041e\u043d \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u2014 0 (\u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 '\u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0447\u0430\u0441\u043e\u0432\u043e\u0439 \u043f\u043e\u044f\u0441').\n\n\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0432\u0441\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f 'group by time' (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0430 \u043f\u043e \u0434\u043d\u044f\u043c, \u043d\u0435\u0434\u0435\u043b\u044f\u043c, \u043c\u0435\u0441\u044f\u0446\u0430\u043c \u0438 \u0433\u043e\u0434\u0430\u043c \u0432 API, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u043e \u0434\u043d\u044f\u043c, \u043c\u0435\u0441\u044f\u0446\u0430\u043c, \u0433\u043e\u0434\u0430\u043c, yearmonth, yearmonthday \u0432 SQL) \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b \u0441 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430\u043c\u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 `13:00 utc` \u0438 `15:00 utc`, \u043f\u0440\u0438 \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0435 \u043e\u043d\u0438 \u043e\u0431\u0430 \u043f\u043e\u043f\u0430\u0434\u0443\u0442 \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0433\u0440\u0443\u043f\u043f\u044b \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u043e\u0439 \u0432\u0430\u0448\u0435\u0433\u043e \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0447\u0430\u0441\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u044f\u0441\u0430. \u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0435\u0441\u044c \u0432 `utc`, \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043e\u0434\u0438\u043d \u0434\u0435\u043d\u044c, \u043d\u043e \u0435\u0441\u043b\u0438 \u0432\u044b \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0435\u0441\u044c \u0432 `utc+10`, \u0442\u043e \u044d\u0442\u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u0441 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0433\u0440\u0443\u043f\u043f\u0430\u043c\u0438 `group by day` (\u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 13:00 utc \u0432 \u0447\u0430\u0441\u043e\u0432\u043e\u043c \u043f\u043e\u044f\u0441\u0435 UTC+10 \u2014 \u044d\u0442\u043e 23:00 \u043c\u0435\u0441\u0442\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0430 15:00 \u2014 01:00 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0434\u043d\u044f). \u0418\u043d\u043e\u0433\u0434\u0430 \u0442\u0430\u043a\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043d\u0435\u043f\u0440\u0438\u0435\u043c\u043b\u0435\u043c\u043e, \u0438 \u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0443 \u043f\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0439 \u043e\u0442 \u0447\u0430\u0441\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u044f\u0441\u0430. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0441\u0435\u0440\u0432\u0435\u0440 \u0441 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0439 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f TZ, \u043d\u043e \u044d\u0442\u043e \u043f\u043e\u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0443, \u043d\u043e \u0438 \u043d\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043c\u0435\u0442\u043a\u0438 \u0432 \u043b\u043e\u0433\u0430\u0445, \u0447\u0442\u043e \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0435\u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e. \u0412\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0439 \u043e\u043f\u0446\u0438\u0438 (\u043b\u0438\u0431\u043e \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438, \u043b\u0438\u0431\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 [SET global](../Server_settings/Setting_variables_online.md#SET) \u0432 SQL) \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u0442 \u043a \u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u0432\u0441\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0438 \u043f\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0432 UTC, \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044f \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0437\u0430\u0432\u0438\u0441\u044f\u0449\u0438\u0435 \u043e\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u0430) \u0432 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u043c \u0447\u0430\u0441\u043e\u0432\u043e\u043c \u043f\u043e\u044f\u0441\u0435.\n\n### timezone\n\n\u042d\u0442\u043e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0447\u0430\u0441\u043e\u0432\u043e\u0439 \u043f\u043e\u044f\u0441, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u043c\u0438 \u0441 \u0434\u0430\u0442\u043e\u0439/\u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0447\u0430\u0441\u043e\u0432\u043e\u0439 \u043f\u043e\u044f\u0441, \u043d\u043e \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u043e\u0439 \u0447\u0430\u0441\u043e\u0432\u043e\u0439 \u043f\u043e\u044f\u0441 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 IANA (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, `Europe/Amsterdam`).\n\n\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u044d\u0442\u043e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043d\u0435 \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u043c \u0447\u0430\u0441\u043e\u0432\u043e\u043c \u043f\u043e\u044f\u0441\u0435.\n\n\u0422\u0430\u043a\u0436\u0435 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f `grouping_in_utc`, \u0444\u0443\u043d\u043a\u0446\u0438\u044f 'group by time' \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c UTC, \u0432 \u0442\u043e \u0432\u0440\u0435\u043c\u044f \u043a\u0430\u043a \u0434\u0440\u0443\u0433\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 \u0434\u0430\u0442\u043e\u0439/\u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c, \u0431\u0443\u0434\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0439 \u0447\u0430\u0441\u043e\u0432\u043e\u0439 \u043f\u043e\u044f\u0441. \u0412 \u0446\u0435\u043b\u043e\u043c, \u043d\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0441\u043c\u0435\u0448\u0438\u0432\u0430\u0442\u044c `grouping_in_utc` \u0438 `timezone`.\n\n\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u044d\u0442\u0443 \u043e\u043f\u0446\u0438\u044e \u043b\u0438\u0431\u043e \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438, \u043b\u0438\u0431\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 [SET global](../Server_settings/Setting_variables_online.md#SET) \u0432 SQL.\n\n### ha_period_karma\n\n\n\u042d\u0442\u043e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0440 \u043e\u043a\u043d\u0430 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438 \u0437\u0435\u0440\u043a\u0430\u043b \u0430\u0433\u0435\u043d\u0442\u0430 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0430\u0445 (\u0438\u043b\u0438 [\u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u0443\u0444\u0444\u0438\u043a\u0441\u0430\u0445](../Server_settings/Special_suffixes.md)). \u041e\u043d \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u2014 60 \u0441\u0435\u043a\u0443\u043d\u0434.\n\n\u0414\u043b\u044f \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0441 \u0437\u0435\u0440\u043a\u0430\u043b\u0430\u043c\u0438 \u0430\u0433\u0435\u043d\u0442\u043e\u0432 (\u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0441\u043c. \u0432 [agent](../Creating_a_table/Creating_a_distributed_table/Creating_a_local_distributed_table.md)), \u043c\u0430\u0441\u0442\u0435\u0440 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0441\u0447\u0451\u0442\u0447\u0438\u043a\u043e\u0432 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0437\u0435\u0440\u043a\u0430\u043b\u0430. \u0417\u0430\u0442\u0435\u043c \u044d\u0442\u0438 \u0441\u0447\u0451\u0442\u0447\u0438\u043a\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0434\u043b\u044f \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0441\u0442\u0438 \u0438 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u043a\u0438 (\u043c\u0430\u0441\u0442\u0435\u0440 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u043b\u0443\u0447\u0448\u0435\u0435 \u0437\u0435\u0440\u043a\u0430\u043b\u043e \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0441\u0447\u0451\u0442\u0447\u0438\u043a\u043e\u0432). \u0421\u0447\u0451\u0442\u0447\u0438\u043a\u0438 \u043d\u0430\u043a\u0430\u043f\u043b\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0431\u043b\u043e\u043a\u0430\u043c\u0438 \u043f\u043e `ha_period_karma` \u0441\u0435\u043a\u0443\u043d\u0434.\n\n\u041f\u043e\u0441\u043b\u0435 \u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u043e\u0432\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430 \u043c\u0430\u0441\u0442\u0435\u0440 \u0432\u0441\u0451 \u0435\u0449\u0451 \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438\u0437 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u0431\u043b\u043e\u043a\u0430, \u043f\u043e\u043a\u0430 \u043d\u043e\u0432\u044b\u0439 \u043d\u0435 \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u0441\u044f \u043d\u0430\u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0443. \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043b\u044e\u0431\u0430\u044f \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0430\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0451\u0442 \u0432\u043b\u0438\u044f\u0442\u044c \u043d\u0430 \u0432\u044b\u0431\u043e\u0440 \u0437\u0435\u0440\u043a\u0430\u043b\u0430 \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u0447\u0435\u0440\u0435\u0437 1,5 \u0440\u0430\u0437\u0430 \u043e\u0442 ha_period_karma \u0441\u0435\u043a\u0443\u043d\u0434.\n\n\u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u0434\u043b\u044f \u0432\u044b\u0431\u043e\u0440\u0430 \u0437\u0435\u0440\u043a\u0430\u043b\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u0434\u0432\u0430 \u0431\u043b\u043e\u043a\u0430, \u0434\u043b\u044f \u0446\u0435\u043b\u0435\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0434\u043e 15 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u0431\u043b\u043e\u043a\u043e\u0432. \u042d\u0442\u0438 \u0431\u043b\u043e\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 [SHOW AGENT STATUS](../Node_info_and_management/Node_status.md#SHOW-AGENT-STATUS).\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_29\n\n\n### ha_ping_interval\n\n\n\u042d\u0442\u043e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u043c\u0435\u0436\u0434\u0443 \u043f\u0438\u043d\u0433\u0430\u043c\u0438 \u0437\u0435\u0440\u043a\u0430\u043b \u0430\u0433\u0435\u043d\u0442\u0430 \u0432 \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u0430\u0445 (\u0438\u043b\u0438 [\u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u0443\u0444\u0444\u0438\u043a\u0441\u0430\u0445](../Server_settings/Special_suffixes.md)). \u041e\u043d \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u2014 1000 \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434.\n\n\u0414\u043b\u044f \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0441 \u0437\u0435\u0440\u043a\u0430\u043b\u0430\u043c\u0438 \u0430\u0433\u0435\u043d\u0442\u043e\u0432 (\u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0441\u043c. \u0432 [agent](../Creating_a_table/Creating_a_distributed_table/Creating_a_local_distributed_table.md)), \u043c\u0430\u0441\u0442\u0435\u0440 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0432\u0441\u0435\u043c \u0437\u0435\u0440\u043a\u0430\u043b\u0430\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u0443 ping \u0432 \u043f\u0435\u0440\u0438\u043e\u0434\u044b \u043f\u0440\u043e\u0441\u0442\u043e\u044f. \u042d\u0442\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0434\u043b\u044f \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0441\u0442\u0430\u0442\u0443\u0441\u0430 \u0430\u0433\u0435\u043d\u0442\u0430 (\u0436\u0438\u0432 \u0438\u043b\u0438 \u043c\u0451\u0440\u0442\u0432, \u0432\u0440\u0435\u043c\u044f \u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e \u043e\u0431\u043e\u0440\u043e\u0442\u0430 \u0438 \u0442.\u0434.). \u0418\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u043c\u0435\u0436\u0434\u0443 \u0442\u0430\u043a\u0438\u043c\u0438 \u043f\u0438\u043d\u0433\u0430\u043c\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u044d\u0442\u043e\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u043e\u0439. \u0427\u0442\u043e\u0431\u044b \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043f\u0438\u043d\u0433\u0438, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 ha_ping_interval \u0432 0.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_30\n\n\n### hostname_lookup", + "chinese": "\u5f53\u5bf9\u4f7f\u7528 `dict = keywords` \u542f\u7528\u7684\u8868\u6267\u884c\u5b50\u5b57\u7b26\u4e32\u641c\u7d22\u65f6\uff0c\u5355\u4e2a\u901a\u914d\u7b26\u53ef\u80fd\u4f1a\u5bfc\u81f4\u5339\u914d\u6570\u5343\u751a\u81f3\u6570\u767e\u4e07\u4e2a\u5173\u952e\u8bcd\u3002\u6b64\u6307\u4ee4\u5141\u8bb8\u60a8\u589e\u52a0\u5408\u5e76\u7684\u5173\u952e\u8bcd\u6570\u91cf\u4e0a\u9650\u4ee5\u52a0\u5feb\u5339\u914d\u901f\u5ea6\uff0c\u4f46\u4f1a\u4f7f\u7528\u66f4\u591a\u5185\u5b58\u8fdb\u884c\u641c\u7d22\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_26\n\n\n### expansion_phrase_limit\n\n\n\u6b64\u8bbe\u7f6e\u63a7\u5236\u7531\u4e8e `PHRASE`\u3001`PROXIMITY` \u548c `QUORUM` \u64cd\u4f5c\u7b26\u5185\u90e8\u7684 `OR` \u64cd\u4f5c\u7b26\u800c\u751f\u6210\u7684\u66ff\u4ee3\u77ed\u8bed\u53d8\u4f53\u7684\u6700\u5927\u6570\u91cf\u3002\u5b83\u662f\u53ef\u9009\u7684\uff0c\u9ed8\u8ba4\u503c\u4e3a 1024\u3002\n\n\u5728\u77ed\u8bed\u7c7b\u64cd\u4f5c\u7b26\u5185\u90e8\u4f7f\u7528 `|`\uff08OR\uff09\u64cd\u4f5c\u7b26\u65f6\uff0c\u751f\u6210\u7684\u6269\u5c55\u7ec4\u5408\u603b\u6570\u53ef\u80fd\u4f1a\u6839\u636e\u6307\u5b9a\u7684\u66ff\u4ee3\u9879\u6570\u91cf\u5448\u6307\u6570\u7ea7\u589e\u957f\u3002\u6b64\u8bbe\u7f6e\u901a\u8fc7\u5728\u67e5\u8be2\u5904\u7406\u8fc7\u7a0b\u4e2d\u9650\u5236\u8003\u8651\u7684\u6392\u5217\u6570\uff0c\u6709\u52a9\u4e8e\u9632\u6b62\u67e5\u8be2\u6269\u5c55\u8fc7\u591a\u3002\n\n\u5982\u679c\u751f\u6210\u7684\u53d8\u4f53\u6570\u91cf\u8d85\u8fc7\u6b64\u9650\u5236\uff0c\u67e5\u8be2\u5c06\uff1a\n\n- \u9ed8\u8ba4\u60c5\u51b5\u4e0b\u4ee5\u9519\u8bef\u5931\u8d25\n- \u5982\u679c\u542f\u7528\u4e86 `expansion_phrase_warning`\uff0c\u5219\u8fd4\u56de\u90e8\u5206\u7ed3\u679c\u5e76\u9644\u5e26\u8b66\u544a\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_27\n\n\n### expansion_phrase_warning\n\n\n\u6b64\u8bbe\u7f6e\u63a7\u5236\u5f53\u7531 `expansion_phrase_limit` \u5b9a\u4e49\u7684\u67e5\u8be2\u6269\u5c55\u9650\u5236\u88ab\u8d85\u8fc7\u65f6\u7684\u884c\u4e3a\u3002\n\n\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u67e5\u8be2\u5c06\u4ee5\u9519\u8bef\u6d88\u606f\u5931\u8d25\u3002\u5f53 `expansion_phrase_warning` \u8bbe\u7f6e\u4e3a 1 \u65f6\uff0c\u641c\u7d22\u5c06\u7ee7\u7eed\u4f7f\u7528\u77ed\u8bed\u7684\u90e8\u5206\u8f6c\u6362\uff08\u6700\u591a\u8fbe\u5230\u914d\u7f6e\u7684\u9650\u5236\uff09\uff0c\u670d\u52a1\u5668\u5c06\u5411\u7528\u6237\u8fd4\u56de\u8b66\u544a\u6d88\u606f\u548c\u7ed3\u679c\u96c6\u3002\u8fd9\u5141\u8bb8\u8fc7\u4e8e\u590d\u6742\u65e0\u6cd5\u5b8c\u5168\u6269\u5c55\u7684\u67e5\u8be2\u4ecd\u8fd4\u56de\u90e8\u5206\u7ed3\u679c\uff0c\u800c\u4e0d\u4f1a\u5b8c\u5168\u5931\u8d25\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_28\n\n\n### grouping_in_utc\n\n\u6b64\u8bbe\u7f6e\u6307\u5b9a API \u548c SQL \u4e2d\u7684\u65f6\u95f4\u5206\u7ec4\u662f\u5426\u4ee5\u672c\u5730\u65f6\u533a\u6216 UTC \u8ba1\u7b97\u3002\u5b83\u662f\u53ef\u9009\u7684\uff0c\u9ed8\u8ba4\u503c\u4e3a 0\uff08\u8868\u793a\u201c\u672c\u5730\u65f6\u533a\u201d\uff09\u3002\n\n\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u6240\u6709\u201c\u6309\u65f6\u95f4\u5206\u7ec4\u201d\u8868\u8fbe\u5f0f\uff08\u5982 API \u4e2d\u7684\u6309\u5929\u3001\u5468\u3001\u6708\u3001\u5e74\u5206\u7ec4\uff0c\u4ee5\u53ca SQL \u4e2d\u7684\u6309\u5929\u3001\u6708\u3001\u5e74\u3001\u5e74\u6708\u3001\u5e74\u6708\u65e5\u5206\u7ec4\uff09\u5747\u4f7f\u7528\u672c\u5730\u65f6\u95f4\u3002\u4f8b\u5982\uff0c\u5982\u679c\u60a8\u6709\u5c5e\u6027\u65f6\u95f4\u4e3a `13:00 utc` \u548c `15:00 utc` \u7684\u6587\u6863\uff0c\u5728\u5206\u7ec4\u60c5\u51b5\u4e0b\uff0c\u5b83\u4eec\u5c06\u6839\u636e\u60a8\u7684\u672c\u5730\u65f6\u533a\u8bbe\u7f6e\u5f52\u5165\u4e0d\u540c\u7684\u8bbe\u65bd\u7ec4\u3002\u5982\u679c\u60a8\u4f4d\u4e8e `utc`\uff0c\u5219\u4e3a\u540c\u4e00\u5929\uff1b\u4f46\u5982\u679c\u60a8\u4f4d\u4e8e `utc+10`\uff0c\u5219\u8fd9\u4e9b\u6587\u6863\u5c06\u88ab\u5f52\u5165\u4e0d\u540c\u7684 `\u6309\u5929\u5206\u7ec4` \u8bbe\u65bd\u7ec4\uff08\u56e0\u4e3a UTC+10 \u65f6\u533a\u7684 13:00 utc \u662f 23:00 \u672c\u5730\u65f6\u95f4\uff0c\u800c 15:00 \u662f\u7b2c\u4e8c\u5929\u7684 01:00\uff09\u3002\u6709\u65f6\u8fd9\u79cd\u884c\u4e3a\u4e0d\u53ef\u63a5\u53d7\uff0c\u5e0c\u671b\u65f6\u95f4\u5206\u7ec4\u4e0d\u4f9d\u8d56\u4e8e\u65f6\u533a\u3002\u60a8\u53ef\u4ee5\u4f7f\u7528\u5b9a\u4e49\u7684\u5168\u5c40 TZ \u73af\u5883\u53d8\u91cf\u8fd0\u884c\u670d\u52a1\u5668\uff0c\u4f46\u8fd9\u4f1a\u5f71\u54cd\u5206\u7ec4\u4ee5\u5916\u7684\u5176\u4ed6\u529f\u80fd\uff08\u5982\u65e5\u5fd7\u4e2d\u7684\u65f6\u95f4\u6233\uff09\uff0c\u8fd9\u53ef\u80fd\u4e5f\u4e0d\u7406\u60f3\u3002\u901a\u8fc7\u5728\u914d\u7f6e\u4e2d\u542f\u7528\u6b64\u9009\u9879\uff08\u6216\u5728 SQL \u4e2d\u4f7f\u7528 [SET global](../Server_settings/Setting_variables_online.md#SET) \u8bed\u53e5\uff09\u5c06\u5bfc\u81f4\u6240\u6709\u65f6\u95f4\u5206\u7ec4\u8868\u8fbe\u5f0f\u4ee5 UTC \u8ba1\u7b97\uff0c\u800c\u5176\u4f59\u65f6\u95f4\u76f8\u5173\u51fd\u6570\uff08\u5373\u670d\u52a1\u5668\u65e5\u5fd7\uff09\u4ecd\u4f7f\u7528\u672c\u5730\u65f6\u533a\u3002\n\n### timezone\n\n\u6b64\u8bbe\u7f6e\u6307\u5b9a\u4e0e\u65e5\u671f/\u65f6\u95f4\u76f8\u5173\u7684\u51fd\u6570\u4f7f\u7528\u7684\u65f6\u533a\u3002\u9ed8\u8ba4\u4f7f\u7528\u672c\u5730\u65f6\u533a\uff0c\u4f46\u60a8\u53ef\u4ee5\u6307\u5b9a IANA \u683c\u5f0f\u7684\u4e0d\u540c\u65f6\u533a\uff08\u4f8b\u5982 `Europe/Amsterdam`\uff09\u3002\n\n\u8bf7\u6ce8\u610f\uff0c\u6b64\u8bbe\u7f6e\u5bf9\u65e5\u5fd7\u65e0\u5f71\u54cd\uff0c\u65e5\u5fd7\u59cb\u7ec8\u4ee5\u672c\u5730\u65f6\u533a\u8fd0\u884c\u3002\n\n\u53e6\u5916\u8bf7\u6ce8\u610f\uff0c\u5982\u679c\u4f7f\u7528\u4e86 `grouping_in_utc`\uff0c\u5219\u201c\u6309\u65f6\u95f4\u5206\u7ec4\u201d\u51fd\u6570\u4ecd\u5c06\u4f7f\u7528 UTC\uff0c\u800c\u5176\u4ed6\u65e5\u671f/\u65f6\u95f4\u76f8\u5173\u51fd\u6570\u5c06\u4f7f\u7528\u6307\u5b9a\u7684\u65f6\u533a\u3002\u603b\u4f53\u800c\u8a00\uff0c\u4e0d\u5efa\u8bae\u5c06 `grouping_in_utc` \u4e0e `timezone` \u6df7\u5408\u4f7f\u7528\u3002\n\n\u60a8\u53ef\u4ee5\u5728\u914d\u7f6e\u4e2d\u6216\u901a\u8fc7\u5728 SQL \u4e2d\u4f7f\u7528 [SET global](../Server_settings/Setting_variables_online.md#SET) \u8bed\u53e5\u914d\u7f6e\u6b64\u9009\u9879\u3002\n\n### ha_period_karma\n\n\n\u6b64\u8bbe\u7f6e\u6307\u5b9a\u4ee3\u7406\u955c\u50cf\u7edf\u8ba1\u7a97\u53e3\u5927\u5c0f\uff0c\u4ee5\u79d2\u4e3a\u5355\u4f4d\uff08\u6216 [special_suffixes](../Server_settings/Special_suffixes.md)\uff09\u3002\u5b83\u662f\u53ef\u9009\u7684\uff0c\u9ed8\u8ba4\u503c\u4e3a 60 \u79d2\u3002\n\n\u5bf9\u4e8e\u5305\u542b\u4ee3\u7406\u955c\u50cf\u7684\u5206\u5e03\u5f0f\u8868\uff08\u66f4\u591a\u4fe1\u606f\u8bf7\u53c2\u89c1 [agent](../Creating_a_table/Creating_a_distributed_table/Creating_a_local_distributed_table.md)\uff09\uff0c\u4e3b\u8282\u70b9\u4f1a\u8ddf\u8e2a\u6bcf\u4e2a\u955c\u50cf\u7684\u591a\u4e2a\u4e0d\u540c\u8ba1\u6570\u5668\u3002\u8fd9\u4e9b\u8ba1\u6570\u5668\u968f\u540e\u7528\u4e8e\u6545\u969c\u8f6c\u79fb\u548c\u5e73\u8861\uff08\u4e3b\u8282\u70b9\u6839\u636e\u8ba1\u6570\u5668\u9009\u62e9\u6700\u4f73\u955c\u50cf\u4f7f\u7528\uff09\u3002\u8ba1\u6570\u5668\u4ee5 `ha_period_karma` \u79d2\u4e3a\u5355\u4f4d\u5206\u5757\u7d2f\u79ef\u3002\n\n\u5f00\u59cb\u65b0\u7684\u5206\u5757\u540e\uff0c\u4e3b\u8282\u70b9\u4ecd\u53ef\u80fd\u4f7f\u7528\u524d\u4e00\u4e2a\u5206\u5757\u7684\u7d2f\u79ef\u503c\uff0c\u76f4\u5230\u65b0\u5206\u5757\u586b\u5145\u4e00\u534a\u3002\u56e0\u6b64\uff0c\u4efb\u4f55\u4e4b\u524d\u7684\u8bb0\u5f55\u6700\u591a\u5728 1.5 \u500d `ha_period_karma` \u79d2\u540e\u5c06\u4e0d\u518d\u5f71\u54cd\u955c\u50cf\u9009\u62e9\u3002\n\n\u5c3d\u7ba1\u6700\u591a\u4f7f\u7528\u4e24\u4e2a\u5206\u5757\u8fdb\u884c\u955c\u50cf\u9009\u62e9\uff0c\u4f46\u6700\u591a\u5b58\u50a8\u6700\u8fd1\u7684 15 \u4e2a\u5206\u5757\u7528\u4e8e\u76d1\u63a7\u76ee\u7684\u3002\u8fd9\u4e9b\u5206\u5757\u53ef\u4ee5\u901a\u8fc7 [SHOW AGENT STATUS](../Node_info_and_management/Node_status.md#SHOW-AGENT-STATUS) \u8bed\u53e5\u8fdb\u884c\u68c0\u67e5\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_29\n\n\n### ha_ping_interval\n\n\n\u6b64\u8bbe\u7f6e\u914d\u7f6e\u4ee3\u7406\u955c\u50cf ping \u95f4\u9694\uff0c\u4ee5\u6beb\u79d2\u4e3a\u5355\u4f4d\uff08\u6216 [special_suffixes](../Server_settings/Special_suffixes.md)\uff09\u3002\u5b83\u662f\u53ef\u9009\u7684\uff0c\u9ed8\u8ba4\u503c\u4e3a 1000 \u6beb\u79d2\u3002\n\n\u5bf9\u4e8e\u5305\u542b\u4ee3\u7406\u955c\u50cf\u7684\u5206\u5e03\u5f0f\u8868\uff08\u66f4\u591a\u4fe1\u606f\u8bf7\u53c2\u89c1 [agent](../Creating_a_table/Creating_a_distributed_table/Creating_a_local_distributed_table.md)\uff09\uff0c\u4e3b\u8282\u70b9\u5728\u7a7a\u95f2\u671f\u95f4\u4f1a\u5411\u6240\u6709\u955c\u50cf\u53d1\u9001 ping \u547d\u4ee4\u3002\u8fd9\u662f\u4e3a\u4e86\u8ddf\u8e2a\u5f53\u524d\u4ee3\u7406\u72b6\u6001\uff08\u5b58\u6d3b\u6216\u6b7b\u4ea1\u3001\u7f51\u7edc\u5f80\u8fd4\u65f6\u95f4\u7b49\uff09\u3002\u6b64\u7c7b ping \u7684\u95f4\u9694\u7531\u6b64\u6307\u4ee4\u5b9a\u4e49\u3002\u8981\u7981\u7528 ping\uff0c\u8bf7\u5c06 ha_ping_interval \u8bbe\u7f6e\u4e3a 0\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_30\n\n\n### hostname_lookup" + }, + "is_code_or_comment": false, + "model": "qwen/qwen3-14b", + "updated_at": 1773763272 + }, + "f970f55e3bc5b7fd2e278d69ff26b89ca65b0b4dcb15eaa800701d91b9afc5fb": { + "original": "This option specifies the size of the block cache used by secondary indexes. It is optional, with a default of 8 MB. When secondary indexes work with filters that contain many values (e.g., IN() filters), they read and process metadata blocks for these values.\nIn joined queries, this process is repeated for each batch of rows from the left table, and each batch may reread the same metadata within a single joined query. This can severely affect performance. The metadata block cache keeps these blocks in memory so they\ncan be reused by subsequent batches.\n\nThe cache is only used in joined queries and has no effect on non-joined queries. Note that the cache size limit applies per attribute and per secondary index. Each attribute within each disk chunk operates within this limit. In the worst case, the total memory\nusage can be estimated by multiplying the limit by the number of disk chunks and the number of attributes used in joined queries.\n\nSetting `secondary_index_block_cache = 0` disables the cache.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_67\n\n\n\n### secondary_indexes\n\n\nThis option enables/disables the use of secondary indexes for search queries. It is optional, and the default is 1 (enabled). Note that you don't need to enable it for indexing as it is always enabled as long as the [Manticore Columnar Library](https://github.com/manticoresoftware/columnar) is installed. The latter is also required for using the indexes when searching. There are three modes available:\n\n* `0`: Disable the use of secondary indexes on search. They can be enabled for individual queries using [analyzer hints](../Searching/Options.md#Query-optimizer-hints)\n* `1`: Enable the use of secondary indexes on search. They can be disabled for individual queries using [analyzer hints](../Searching/Options.md#Query-optimizer-hints)\n* `force`: Same as enable, but any errors during the loading of secondary indexes will be reported, and the whole index will not be loaded into the daemon.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_68\n\n\n\n### server_id\n\n\nInteger number that serves as a server identifier used as a seed to generate a unique short UUID for nodes that are part of a replication cluster. The server_id must be unique across the nodes of a cluster and in the range from 0 to 127. If server_id is not set, it is calculated as a hash of the MAC address and the path to the PID file or a random number will be used as a seed for the short UUID.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_69\n\n\n### shutdown_timeout\n\n\n`searchd --stopwait` waiting time, in seconds (or [special_suffixes](../Server_settings/Special_suffixes.md)). Optional, default is 60 seconds.\n\nWhen you run `searchd --stopwait` your server needs to perform some activities before stopping, such as finishing queries, flushing RT RAM chunks, flushing attributes, and updating the binlog. These tasks require some time. `searchd --stopwait` will wait up to `shutdown_time` seconds for the server to finish its jobs. The suitable time depends on your table size and load.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_70\n\n\n### shutdown_token\n\nSHA1 hash of the password required to invoke the 'shutdown' command from a VIP Manticore SQL connection. Without it,[debug](../Reporting_bugs.md#DEBUG) 'shutdown' subcommand will never cause the server to stop. Note that such simple hashing should not be considered strong protection, as we don't use a salted hash or any kind of modern hash function. It is intended as a fool-proof measure for housekeeping daemons in a local network.\n\n### skiplist_cache_size\n\n\nThis setting specifies the maximum size of the in-memory cache for decompressed skiplists. Optional, the default is 64M.\n\nSkiplists are used to speed up seeking in large doclists. Caching them avoids repeatedly decompressing the same skiplist data across queries. Set this option to `0` to disable caching.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_71\n\n\n### snippets_file_prefix\n\n\nA prefix to prepend to the local file names when generating snippets. Optional, default is the current working folder.\n\nThis prefix can be used in distributed snippets generation along with `load_files` or `load_files_scattered` options.\n\nNote that this is a prefix and **not** a path! This means that if a prefix is set to \"server1\" and the request refers to \"file23\", `searchd` will attempt to open \"server1file23\" (all of that without quotes). So, if you need it to be a path, you have to include the trailing slash.\n\nAfter constructing the final file path, the server unwinds all relative dirs and compares the final result with the value of `snippet_file_prefix`. If the result does not begin with the prefix, such a file will be rejected with an error message.\n\nFor example, if you set it to `/mnt/data` and someone calls snippet generation with the file `../../../etc/passwd` as the source, they will get the error message:\n\n`File '/mnt/data/../../../etc/passwd' escapes '/mnt/data/' scope`\n\ninstead of the content of the file.\n\nAlso, with a non-set parameter and reading `/etc/passwd`, it will actually read /daemon/working/folder/etc/passwd since the default for the parameter is the server's working folder.\n\nNote also that this is a local option; it does not affect the agents in any way. So you can safely set a prefix on a master server. The requests routed to the agents will not be affected by the master's setting. They will, however, be affected by the agent's own settings.\n\nThis might be useful, for instance, when the document storage locations (whether local storage or NAS mountpoints) are inconsistent across the servers.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_72\n", + "translations": { + "russian": "\u042d\u0442\u0430 \u043e\u043f\u0446\u0438\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0440 \u0431\u043b\u043e\u043a\u0430 \u043a\u044d\u0448\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u0433\u043e \u0432\u0442\u043e\u0440\u0438\u0447\u043d\u044b\u043c\u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c\u0438. \u041e\u043d\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0439 \u0438 \u0438\u043c\u0435\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0440\u0430\u0432\u043d\u043e\u0435 8 MB. \u041a\u043e\u0433\u0434\u0430 \u0432\u0442\u043e\u0440\u0438\u0447\u043d\u044b\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0441 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u043c\u0438, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u043c\u0438 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0444\u0438\u043b\u044c\u0442\u0440\u044b IN()), \u043e\u043d\u0438 \u0447\u0438\u0442\u0430\u044e\u0442 \u0438 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0442 \u0431\u043b\u043e\u043a\u0438 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u044d\u0442\u0438\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439.\n\u0412 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0451\u043d\u043d\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u0445 \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430 \u0441\u0442\u0440\u043e\u043a \u0438\u0437 \u043b\u0435\u0432\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u0438 \u043a\u0430\u0436\u0434\u044b\u0439 \u0431\u043b\u043e\u043a \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u0447\u0438\u0442\u0430\u0442\u044c \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0435 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u0432\u043d\u0443\u0442\u0440\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0451\u043d\u043d\u043e\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430. \u042d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043f\u043e\u0432\u043b\u0438\u044f\u0442\u044c \u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c. \u041a\u044d\u0448 \u0431\u043b\u043e\u043a\u0430 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u044d\u0442\u0438 \u0431\u043b\u043e\u043a\u0438 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438, \u0447\u0442\u043e\u0431\u044b\n\u043e\u043d\u0438 \u043c\u043e\u0433\u043b\u0438 \u0431\u044b\u0442\u044c \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u044b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c\u0438 \u0431\u043b\u043e\u043a\u0430\u043c\u0438.\n\n\u041a\u044d\u0448 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0451\u043d\u043d\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u0445 \u0438 \u043d\u0435 \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u043d\u0435 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0451\u043d\u043d\u044b\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b. \u0423\u0447\u0442\u0438\u0442\u0435, \u0447\u0442\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u043a\u044d\u0448\u0430 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043a \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0443 \u0438 \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0432\u0442\u043e\u0440\u0438\u0447\u043d\u043e\u043c\u0443 \u0438\u043d\u0434\u0435\u043a\u0441\u0443. \u041a\u0430\u0436\u0434\u044b\u0439 \u0430\u0442\u0440\u0438\u0431\u0443\u0442 \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0434\u0438\u0441\u043a\u043e\u0432\u043e\u0433\u043e \u0447\u0430\u043d\u043a\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 \u044d\u0442\u043e\u0433\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f. \u0412 \u0445\u0443\u0434\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u0431\u0449\u0435\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0430\u043c\u044f\u0442\u0438\n\u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043e\u0446\u0435\u043d\u0435\u043d\u043e \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435\u043c \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u043d\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u0438\u0441\u043a\u043e\u0432\u044b\u0445 \u0447\u0430\u043d\u043a\u043e\u0432 \u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0432 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0451\u043d\u043d\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u0445.\n\n\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 `secondary_index_block_cache = 0` \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043a\u044d\u0448.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_67\n\n\n\n### secondary_indexes\n\n\n\u042d\u0442\u0430 \u043e\u043f\u0446\u0438\u044f \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442/\u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u0442\u043e\u0440\u0438\u0447\u043d\u044b\u0445 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432. \u041e\u043d\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0439 \u0438 \u0438\u043c\u0435\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0440\u0430\u0432\u043d\u043e\u0435 1 (\u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0430). \u0423\u0447\u0442\u0438\u0442\u0435, \u0447\u0442\u043e \u0435\u0451 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0434\u043b\u044f \u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043e\u043d\u0430 \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u043f\u0440\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 [Manticore Columnar Library](https://github.com/manticoresoftware/columnar). \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0442\u0430\u043a\u0436\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u043f\u0440\u0438 \u043f\u043e\u0438\u0441\u043a\u0435. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0442\u0440\u0438 \u0440\u0435\u0436\u0438\u043c\u0430:\n\n* `0`: \u041e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u0442\u043e\u0440\u0438\u0447\u043d\u044b\u0445 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u0432 \u043f\u043e\u0438\u0441\u043a\u0435. \u0418\u0445 \u043c\u043e\u0436\u043d\u043e \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0434\u043b\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e [\u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u043d\u044b\u0445 \u0445\u0438\u043d\u0442\u043e\u0432](../Searching/Options.md#Query-optimizer-hints)\n* `1`: \u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u0442\u043e\u0440\u0438\u0447\u043d\u044b\u0445 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u0432 \u043f\u043e\u0438\u0441\u043a\u0435. \u0418\u0445 \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0434\u043b\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e [\u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u043d\u044b\u0445 \u0445\u0438\u043d\u0442\u043e\u0432](../Searching/Options.md#Query-optimizer-hints)\n* `force`: \u0422\u043e \u0436\u0435, \u0447\u0442\u043e \u0438 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c, \u043d\u043e \u043b\u044e\u0431\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0432\u0442\u043e\u0440\u0438\u0447\u043d\u044b\u0445 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u044b, \u0438 \u0432\u0435\u0441\u044c \u0438\u043d\u0434\u0435\u043a\u0441 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d \u0432 \u0434\u0435\u043c\u043e\u043d.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_68\n\n\n\n### server_id\n\n\n\u0426\u0435\u043b\u043e\u0435 \u0447\u0438\u0441\u043b\u043e, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0441\u043b\u0443\u0436\u0438\u0442 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0437\u0435\u0440\u043d\u043e \u0434\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0433\u043e UUID \u0434\u043b\u044f \u0443\u0437\u043b\u043e\u0432, \u044f\u0432\u043b\u044f\u044e\u0449\u0438\u0445\u0441\u044f \u0447\u0430\u0441\u0442\u044c\u044e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438. server_id \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u043c \u0441\u0440\u0435\u0434\u0438 \u0443\u0437\u043b\u043e\u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0438 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0432 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435 \u043e\u0442 0 \u0434\u043e 127. \u0415\u0441\u043b\u0438 server_id \u043d\u0435 \u0437\u0430\u0434\u0430\u043d, \u043e\u043d \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0445\u044d\u0448 MAC \u0430\u0434\u0440\u0435\u0441\u0430 \u0438 \u043f\u0443\u0442\u0438 \u043a PID \u0444\u0430\u0439\u043b\u0443, \u0438\u043b\u0438 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u0437\u0435\u0440\u043d\u043e \u0434\u043b\u044f \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0433\u043e UUID.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_69\n\n\n### shutdown_timeout\n\n\n\u0412\u0440\u0435\u043c\u044f \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f \u0434\u043b\u044f `searchd --stopwait` \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0430\u0445 (\u0438\u043b\u0438 [\u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0443\u0444\u0444\u0438\u043a\u0441\u044b](../Server_settings/Special_suffixes.md)). \u041e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 60 \u0441\u0435\u043a\u0443\u043d\u0434.\n\n\u041a\u043e\u0433\u0434\u0430 \u0432\u044b \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0435 `searchd --stopwait`, \u0432\u0430\u0448 \u0441\u0435\u0440\u0432\u0435\u0440 \u0434\u043e\u043b\u0436\u0435\u043d \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u0435\u0440\u0435\u0434 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432, flush RT RAM \u0447\u0430\u043d\u043a\u043e\u0432, flush \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u0438 update \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0433\u043e \u043b\u043e\u0433\u0430. \u042d\u0442\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 \u0442\u0440\u0435\u0431\u0443\u044e\u0442 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438. `searchd --stopwait` \u0431\u0443\u0434\u0435\u0442 \u043e\u0436\u0438\u0434\u0430\u0442\u044c \u0434\u043e `shutdown_time` \u0441\u0435\u043a\u0443\u043d\u0434, \u0447\u0442\u043e\u0431\u044b \u0441\u0435\u0440\u0432\u0435\u0440 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u043b \u0441\u0432\u043e\u0438 \u0437\u0430\u0434\u0430\u0447\u0438. \u041f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0432\u0430\u0448\u0435\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0438 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_70\n\n\n### shutdown_token\n\nSHA1 \u0445\u044d\u0448 \u043f\u0430\u0440\u043e\u043b\u044f, \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0439 \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u044b 'shutdown' \u0438\u0437 VIP Manticore SQL \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f. \u0411\u0435\u0437 \u043d\u0435\u0433\u043e,[debug](../Reporting_bugs.md#DEBUG) \u0441\u0443\u0431\u043a\u043e\u043c\u0430\u043d\u0434\u0430 'shutdown' \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u0442 \u043a \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u0430. \u0423\u0447\u0442\u0438\u0442\u0435, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u0445\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0435 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0441\u0438\u043b\u044c\u043d\u043e\u0439 \u0437\u0430\u0449\u0438\u0442\u043e\u0439, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043c\u044b \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c salted \u0445\u044d\u0448 \u0438\u043b\u0438 \u043a\u0430\u043a\u043e\u0439-\u043b\u0438\u0431\u043e \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u0445\u044d\u0448 \u0444\u0443\u043d\u043a\u0446\u0438\u044f. \u042d\u0442\u043e \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043e \u043a\u0430\u043a fool-proof \u043c\u0435\u0440a \u0434\u043b\u044f housekeeping \u0434\u0435\u043c\u043e\u043d\u043e\u0432 \u0432 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0435\u0442\u0438.\n\n### skiplist_cache_size\n\n\n\u042d\u0442\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 in-memory \u043a\u044d\u0448\u0430 \u0434\u043b\u044f decompressed skiplists. \u041e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 64M.\n\nSkiplists \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0434\u043b\u044f \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u0432 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 doclists. \u041a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438\u0445 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0437\u0431\u0435\u0433\u0430\u0442\u044c \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0433\u043e decompress \u0442\u043e\u0433\u043e \u0436\u0435 skiplist \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u0445. \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u044d\u0442\u043e\u0439 \u043e\u043f\u0446\u0438\u0438 \u0432 `0` \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_71\n\n\n### snippets_file_prefix\n\n\n\u041f\u0440\u0435\u0444\u0438\u043a\u0441, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0439 \u043a \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u043c \u0438\u043c\u0435\u043d\u0430\u043c \u0444\u0430\u0439\u043b\u043e\u0432 \u043f\u0440\u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 snippet\u043e\u0432. \u041e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0440\u0430\u0431\u043e\u0447\u0435\u0439 \u043f\u0430\u043f\u043a\u043e\u0439.\n\n\u042d\u0442\u043e\u0442 \u043f\u0440\u0435\u0444\u0438\u043a\u0441 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0439 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 snippet\u043e\u0432 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u043e\u043f\u0446\u0438\u044f\u043c\u0438 `load_files` \u0438\u043b\u0438 `load_files_scattered`.\n\n\u0423\u0447\u0442\u0438\u0442\u0435, \u0447\u0442\u043e \u044d\u0442\u043e \u043f\u0440\u0435\u0444\u0438\u043a\u0441 \u0438 **\u043d\u0435** \u043f\u0443\u0442\u044c! \u042d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u043f\u0440\u0435\u0444\u0438\u043a\u0441 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u0432 \"server1\" \u0438 \u0437\u0430\u043f\u0440\u043e\u0441 \u0441\u0441\u044b\u043b\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \"file23\", `searchd` \u043f\u043e\u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f \u043e\u0442\u043a\u0440\u044b\u0442\u044c \"server1file23\" (\u0432\u0441\u0435 \u044d\u0442\u043e \u0431\u0435\u0437 \u043a\u0430\u0432\u044b\u0447\u0435\u043a). \u0422\u0430\u043a \u0447\u0442\u043e, \u0435\u0441\u043b\u0438 \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u044d\u0442\u043e \u0431\u044b\u043b \u043f\u0443\u0442\u044c, \u0432\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c trailing slash.\n\n\u041f\u043e\u0441\u043b\u0435 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0443\u0442\u0438 \u043a \u0444\u0430\u0439\u043b\u0443 \u0441\u0435\u0440\u0432\u0435\u0440 \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u0442 \u0432\u0441\u0435 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0438 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u0442 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c `snippet_file_prefix`. \u0415\u0441\u043b\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043d\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441 \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u0430, \u0442\u0430\u043a\u043e\u0439 \u0444\u0430\u0439\u043b \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u043a\u043b\u043e\u043d\u0451\u043d \u0441 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435\u043c \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0435.\n\n\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u043b\u0438 \u0432\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438 \u0435\u0433\u043e \u0432 `/mnt/data` \u0438 \u043a\u0442\u043e-\u0442\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044e snippet\u043e\u0432 \u0441 \u0444\u0430\u0439\u043b\u043e\u043c `../../../etc/passwd` \u043a\u0430\u043a \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u043c, \u043e\u043d \u043f\u043e\u043b\u0443\u0447\u0438\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0435:\n\n`\u0424\u0430\u0439\u043b '/mnt/data/../../../etc/passwd' \u043f\u043e\u043a\u0438\u0434\u0430\u0435\u0442 \u043e\u0431\u043b\u0430\u0441\u0442\u044c '/mnt/data/'`\n\n\u0432\u043c\u0435\u0441\u0442\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430.\n\n\u0422\u0430\u043a\u0436\u0435, \u043f\u0440\u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u0438 \u0447\u0442\u0435\u043d\u0438\u0438 `/etc/passwd`, \u043e\u043d \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0431\u0443\u0434\u0435\u0442 \u0447\u0438\u0442\u0430\u0442\u044c /daemon/working/folder/etc/passwd, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0434\u043b\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0440\u0430\u0431\u043e\u0447\u0430\u044f \u043f\u0430\u043f\u043a\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430.\n\n\u0423\u0447\u0442\u0438\u0442\u0435 \u0442\u0430\u043a\u0436\u0435, \u0447\u0442\u043e \u044d\u0442\u043e \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u0430\u044f \u043e\u043f\u0446\u0438\u044f; \u043e\u043d\u0430 \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u0430\u0433\u0435\u043d\u0442\u043e\u0432. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u0440\u0435\u0444\u0438\u043a\u0441 \u043d\u0430 \u0433\u043b\u0430\u0432\u043d\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435. \u0417\u0430\u043f\u0440\u043e\u0441\u044b, \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u043d\u0430 \u0430\u0433\u0435\u043d\u0442\u044b, \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u0434\u0432\u0435\u0440\u0433\u043d\u0443\u0442\u044b \u0432\u043b\u0438\u044f\u043d\u0438\u044e \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u0433\u043b\u0430\u0432\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430. \u041e\u0434\u043d\u0430\u043a\u043e, \u043e\u043d\u0438 \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u0434\u0432\u0435\u0440\u0433\u043d\u0443\u0442\u044b \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c \u0430\u0433\u0435\u043d\u0442\u0430.\n\n\u042d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u043e, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u043e\u0433\u0434\u0430 \u043c\u0435\u0441\u0442\u0430 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 (\u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 \u0438\u043b\u0438 NAS mountpoints) \u043d\u0435 \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u044b \u043c\u0435\u0436\u0434\u0443 \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u043c\u0438.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_72\n", + "chinese": "\u6b64\u9009\u9879\u6307\u5b9a\u7528\u4e8e\u4e8c\u7ea7\u7d22\u5f15\u7684\u5757\u7f13\u5b58\u5927\u5c0f\u3002\u5b83\u662f\u53ef\u9009\u7684\uff0c\u9ed8\u8ba4\u503c\u4e3a8 MB\u3002\u5f53\u4e8c\u7ea7\u7d22\u5f15\u4e0e\u5305\u542b\u8bb8\u591a\u503c\u7684\u8fc7\u6ee4\u5668\uff08\u4f8b\u5982\uff0cIN() \u8fc7\u6ee4\u5668\uff09\u4e00\u8d77\u5de5\u4f5c\u65f6\uff0c\u5b83\u4eec\u4f1a\u8bfb\u53d6\u548c\u5904\u7406\u8fd9\u4e9b\u503c\u7684\u5143\u6570\u636e\u5757\u3002\n\u5728\u8fde\u63a5\u67e5\u8be2\u4e2d\uff0c\u6b64\u8fc7\u7a0b\u4f1a\u9488\u5bf9\u5de6\u8868\u7684\u6bcf\u4e00\u884c\u6279\u6b21\u91cd\u590d\u8fdb\u884c\uff0c\u6bcf\u4e2a\u6279\u6b21\u53ef\u80fd\u4f1a\u5728\u5355\u4e2a\u8fde\u63a5\u67e5\u8be2\u4e2d\u91cd\u65b0\u8bfb\u53d6\u76f8\u540c\u7684\u5143\u6570\u636e\u3002\u8fd9\u53ef\u80fd\u4f1a\u4e25\u91cd\u5f71\u54cd\u6027\u80fd\u3002\u5143\u6570\u636e\u5757\u7f13\u5b58\u5c06\u8fd9\u4e9b\u5757\u4fdd\u7559\u5728\u5185\u5b58\u4e2d\uff0c\u4ee5\u4fbf\u540e\u7eed\u6279\u6b21\u53ef\u4ee5\u91cd\u590d\u4f7f\u7528\u3002\n\u7f13\u5b58\u4ec5\u5728\u8fde\u63a5\u67e5\u8be2\u4e2d\u4f7f\u7528\uff0c\u5bf9\u975e\u8fde\u63a5\u67e5\u8be2\u6ca1\u6709\u5f71\u54cd\u3002\u8bf7\u6ce8\u610f\uff0c\u7f13\u5b58\u5927\u5c0f\u9650\u5236\u662f\u6309\u5c5e\u6027\u548c\u6bcf\u4e2a\u4e8c\u7ea7\u7d22\u5f15\u5206\u522b\u5e94\u7528\u7684\u3002\u6bcf\u4e2a\u78c1\u76d8\u5757\u4e2d\u7684\u6bcf\u4e2a\u5c5e\u6027\u90fd\u5728\u6b64\u9650\u5236\u5185\u8fd0\u884c\u3002\u5728\u6700\u574f\u60c5\u51b5\u4e0b\uff0c\u603b\u5185\u5b58\u4f7f\u7528\u91cf\u53ef\u4ee5\u901a\u8fc7\u5c06\u9650\u5236\u4e58\u4ee5\u78c1\u76d8\u5757\u7684\u6570\u91cf\u548c\u8fde\u63a5\u67e5\u8be2\u4e2d\u4f7f\u7528\u7684\u5c5e\u6027\u6570\u91cf\u6765\u4f30\u7b97\u3002\n\n\u8bbe\u7f6e `secondary_index_block_cache = 0` \u4f1a\u7981\u7528\u7f13\u5b58\u3002\n##### \u793a\u4f8b\uff1a\n\nCODE_BLOCK_67\n\n\n### secondary_indexes\n\n\n\n\u6b64\u9009\u9879\u542f\u7528\u6216\u7981\u7528\u641c\u7d22\u67e5\u8be2\u4e2d\u4f7f\u7528\u4e8c\u7ea7\u7d22\u5f15\u3002\u5b83\u662f\u53ef\u9009\u7684\uff0c\u9ed8\u8ba4\u503c\u4e3a1\uff08\u542f\u7528\uff09\u3002\u8bf7\u6ce8\u610f\uff0c\u5bf9\u4e8e\u7d22\u5f15\u64cd\u4f5c\u4e0d\u9700\u8981\u542f\u7528\u5b83\uff0c\u53ea\u8981\u5b89\u88c5\u4e86 [Manticore Columnar Library](https://github.com/manticoresoftware/columnar)\uff0c\u5b83\u5c31\u59cb\u7ec8\u5904\u4e8e\u542f\u7528\u72b6\u6001\u3002\u540e\u8005\u4e5f\u662f\u5728\u641c\u7d22\u65f6\u4f7f\u7528\u7d22\u5f15\u6240\u5fc5\u9700\u7684\u3002\u6709\u4e09\u79cd\u6a21\u5f0f\u53ef\u7528\uff1a\n\n\n\n`0`\uff1a\u5728\u641c\u7d22\u4e2d\u7981\u7528\u4e8c\u7ea7\u7d22\u5f15\u3002\u53ef\u4ee5\u4f7f\u7528 [analyzer hints](../Searching/Options.md#Query-optimizer-hints) \u4e3a\u5355\u4e2a\u67e5\u8be2\u542f\u7528\u5b83\u4eec\n\n\n`1`\uff1a\u5728\u641c\u7d22\u4e2d\u542f\u7528\u4e8c\u7ea7\u7d22\u5f15\u3002\u53ef\u4ee5\u4f7f\u7528 [analyzer hints](https://github.com/manticoresoftware/columnar) \u4e3a\u5355\u4e2a\u67e5\u8be2\u7981\u7528\u5b83\u4eec\n\n* `force`\uff1a\u4e0e\u542f\u7528\u76f8\u540c\uff0c\u4f46\u5728\u52a0\u8f7d\u4e8c\u7ea7\u7d22\u5f15\u65f6\u53d1\u751f\u7684\u4efb\u4f55\u9519\u8bef\u90fd\u4f1a\u88ab\u62a5\u544a\uff0c\u5e76\u4e14\u6574\u4e2a\u7d22\u5f15\u4e0d\u4f1a\u88ab\u52a0\u8f7d\u5230\u5b88\u62a4\u8fdb\u7a0b\u4e2d\u3002\n* ##### \u793a\u4f8b\uff1a\n* CODE_BLOCK_68\n\n\n### server_id\n\n\n\n\u7528\u4f5c\u670d\u52a1\u5668\u6807\u8bc6\u7b26\u7684\u6574\u6570\uff0c\u7528\u4e8e\u751f\u6210\u5c5e\u4e8e\u590d\u5236\u96c6\u7fa4\u8282\u70b9\u7684\u552f\u4e00\u77edUUID\u7684\u79cd\u5b50\u3002server_id\u5fc5\u987b\u5728\u96c6\u7fa4\u7684\u8282\u70b9\u4e4b\u95f4\u552f\u4e00\uff0c\u5e76\u4e14\u8303\u56f4\u57280\u5230127\u4e4b\u95f4\u3002\u5982\u679c\u672a\u8bbe\u7f6eserver_id\uff0c\u5219\u4f1a\u5c06\u5176\u8ba1\u7b97\u4e3aMAC\u5730\u5740\u548cPID\u6587\u4ef6\u8def\u5f84\u7684\u54c8\u5e0c\u503c\uff0c\u6216\u8005\u4f7f\u7528\u968f\u673a\u6570\u4f5c\u4e3a\u77edUUID\u7684\u79cd\u5b50\u3002\n\n\n\n##### \u793a\u4f8b\uff1a\n\n\nCODE_BLOCK_69\n\n\n### shutdown_timeout\n\n\n\n`searchd --stopwait` \u7b49\u5f85\u65f6\u95f4\uff0c\u4ee5\u79d2\u4e3a\u5355\u4f4d\uff08\u6216 [special_suffixes](../Server_settings/Special_suffixes.md)\uff09\u3002\u53ef\u9009\uff0c\u9ed8\u8ba4\u4e3a60\u79d2\u3002\n\n\n\u5f53\u4f60\u8fd0\u884c `searchd --stopwait` \u65f6\uff0c\u670d\u52a1\u5668\u9700\u8981\u5728\u505c\u6b62\u524d\u6267\u884c\u4e00\u4e9b\u6d3b\u52a8\uff0c\u4f8b\u5982\u5b8c\u6210\u67e5\u8be2\u3001\u5237\u65b0RT RAM\u5757\u3001\u5237\u65b0\u5c5e\u6027\u548c\u66f4\u65b0binlog\u3002\u8fd9\u4e9b\u4efb\u52a1\u9700\u8981\u4e00\u4e9b\u65f6\u95f4\u3002`searchd --stopwait` \u5c06\u7b49\u5f85\u6700\u591a `shutdown_time` \u79d2\uff0c\u76f4\u5230\u670d\u52a1\u5668\u5b8c\u6210\u5176\u4efb\u52a1\u3002\u5408\u9002\u7684\u65f6\u95f4\u53d6\u51b3\u4e8e\u4f60\u7684\u8868\u5927\u5c0f\u548c\u8d1f\u8f7d\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\nCODE_BLOCK_70\n\n\n### shutdown_token\n\n\n\n\u7528\u4e8e\u4eceVIP Manticore SQL\u8fde\u63a5\u8c03\u7528 'shutdown' \u547d\u4ee4\u7684\u5bc6\u7801\u7684SHA1\u54c8\u5e0c\u3002\u6ca1\u6709\u5b83\uff0c[debug](../Reporting_bugs.md#DEBUG) 'shutdown' \u5b50\u547d\u4ee4\u5c06\u6c38\u8fdc\u4e0d\u4f1a\u5bfc\u81f4\u670d\u52a1\u5668\u505c\u6b62\u3002\u8bf7\u6ce8\u610f\uff0c\u8fd9\u79cd\u7b80\u5355\u7684\u54c8\u5e0c\u4e0d\u5e94\u88ab\u89c6\u4e3a\u5f3a\u4fdd\u62a4\uff0c\u56e0\u4e3a\u6211\u4eec\u6ca1\u6709\u4f7f\u7528\u52a0\u76d0\u54c8\u5e0c\u6216\u4efb\u4f55\u73b0\u4ee3\u54c8\u5e0c\u51fd\u6570\u3002\u5b83\u65e8\u5728\u4f5c\u4e3a\u672c\u5730\u7f51\u7edc\u4e2d\u7ef4\u62a4\u5b88\u62a4\u8fdb\u7a0b\u7684\u9632\u5446\u63aa\u65bd\u3002\n\n\n### skiplist_cache_size\n\n\u6b64\u8bbe\u7f6e\u6307\u5b9a\u89e3\u538b\u8df3\u5217\u8868\u7684\u5185\u5b58\u7f13\u5b58\u6700\u5927\u5927\u5c0f\u3002\u53ef\u9009\uff0c\u9ed8\u8ba4\u503c\u4e3a64M\u3002\n\n\u8df3\u5217\u8868\u7528\u4e8e\u52a0\u5feb\u5927\u578b\u6587\u6863\u5217\u8868\u4e2d\u7684\u67e5\u627e\u901f\u5ea6\u3002\u7f13\u5b58\u5b83\u4eec\u53ef\u4ee5\u907f\u514d\u5728\u67e5\u8be2\u4e2d\u53cd\u590d\u89e3\u538b\u76f8\u540c\u7684\u8df3\u5217\u8868\u6570\u636e\u3002\u5c06\u6b64\u9009\u9879\u8bbe\u7f6e\u4e3a `0` \u4ee5\u7981\u7528\u7f13\u5b58\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\nCODE_BLOCK_71\n\n\n### snippets_file_prefix\n\n\n\n\u751f\u6210\u7247\u6bb5\u65f6\u6dfb\u52a0\u5230\u672c\u5730\u6587\u4ef6\u540d\u524d\u7684\u524d\u7f00\u3002\u53ef\u9009\uff0c\u9ed8\u8ba4\u503c\u4e3a\u5f53\u524d\u5de5\u4f5c\u76ee\u5f55\u3002\n\n\n\u6b64\u524d\u7f00\u53ef\u4ee5\u4e0e `load_files` \u6216 `load_files_scattered` \u9009\u9879\u4e00\u8d77\u7528\u4e8e\u5206\u5e03\u5f0f\u7247\u6bb5\u751f\u6210\u3002\n\n\n\u8bf7\u6ce8\u610f\uff0c\u8fd9\u662f\u4e00\u4e2a\u524d\u7f00\uff0c**\u4e0d\u662f**\u8def\u5f84\uff01\u8fd9\u610f\u5473\u7740\u5982\u679c\u524d\u7f00\u8bbe\u7f6e\u4e3a \"server1\"\uff0c\u800c\u8bf7\u6c42\u5f15\u7528 \"file23\"\uff0c`searchd` \u5c06\u5c1d\u8bd5\u6253\u5f00 \"server1file23\"\uff08\u5168\u90e8\u4e0d\u5e26\u5f15\u53f7\uff09\u3002\u56e0\u6b64\uff0c\u5982\u679c\u4f60\u9700\u8981\u5b83\u4f5c\u4e3a\u8def\u5f84\uff0c\u5fc5\u987b\u5305\u542b\u672b\u5c3e\u7684\u659c\u6760\u3002\n\n\u5728\u6784\u5efa\u6700\u7ec8\u6587\u4ef6\u8def\u5f84\u540e\uff0c\u670d\u52a1\u5668\u4f1a\u89e3\u9664\u6240\u6709\u76f8\u5bf9\u76ee\u5f55\uff0c\u5e76\u5c06\u6700\u7ec8\u7ed3\u679c\u4e0e `snippet_file_prefix` \u7684\u503c\u8fdb\u884c\u6bd4\u8f83\u3002\u5982\u679c\u7ed3\u679c\u4e0d\u4ee5\u8be5\u524d\u7f00\u5f00\u5934\uff0c\u6b64\u7c7b\u6587\u4ef6\u5c06\u88ab\u62d2\u7edd\u5e76\u663e\u793a\u9519\u8bef\u6d88\u606f\u3002\n\n\u4f8b\u5982\uff0c\u5982\u679c\u4f60\u5c06\u5176\u8bbe\u7f6e\u4e3a `/mnt/data`\uff0c\u800c\u6709\u4eba\u4f7f\u7528 `../../../etc/passwd` \u4f5c\u4e3a\u6e90\u6587\u4ef6\u8c03\u7528\u7247\u6bb5\u751f\u6210\uff0c\u4ed6\u4eec\u5c06\u6536\u5230\u9519\u8bef\u6d88\u606f\uff1a\n\n`File '/mnt/data/../../../etc/passwd' escapes '/mnt/data/' scope`\n\n\u800c\u4e0d\u662f\u6587\u4ef6\u5185\u5bb9\u3002\n\n\u53e6\u5916\uff0c\u5982\u679c\u53c2\u6570\u672a\u8bbe\u7f6e\u4e14\u8bfb\u53d6 `/etc/passwd`\uff0c\u5b83\u5b9e\u9645\u4e0a\u4f1a\u8bfb\u53d6 `/daemon/working/folder/etc/passwd`\uff0c\u56e0\u4e3a\u8be5\u53c2\u6570\u7684\u9ed8\u8ba4\u503c\u662f\u670d\u52a1\u5668\u7684\u5de5\u4f5c\u76ee\u5f55\u3002\n\n\u8fd8\u8981\u6ce8\u610f\uff0c\u8fd9\u662f\u4e00\u4e2a\u672c\u5730\u9009\u9879\uff1b\u5b83\u4e0d\u4f1a\u4ee5\u4efb\u4f55\u65b9\u5f0f\u5f71\u54cd\u4ee3\u7406\u3002\u56e0\u6b64\uff0c\u4f60\u53ef\u4ee5\u5728\u4e3b\u670d\u52a1\u5668\u4e0a\u5b89\u5168\u5730\u8bbe\u7f6e\u4e00\u4e2a\u524d\u7f00\u3002\u8def\u7531\u5230\u4ee3\u7406\u7684\u8bf7\u6c42\u4e0d\u4f1a\u53d7\u5230\u4e3b\u670d\u52a1\u5668\u8bbe\u7f6e\u7684\u5f71\u54cd\u3002\u4f46\u662f\uff0c\u5b83\u4eec\u4f1a\u53d7\u5230\u4ee3\u7406\u81ea\u8eab\u7684\u8bbe\u7f6e\u5f71\u54cd\u3002\n\n\u8fd9\u5728\u6587\u6863\u5b58\u50a8\u4f4d\u7f6e\uff08\u65e0\u8bba\u662f\u672c\u5730\u5b58\u50a8\u8fd8\u662fNAS\u6302\u8f7d\u70b9\uff09\u5728\u670d\u52a1\u5668\u4e4b\u95f4\u4e0d\u4e00\u81f4\u65f6\u53ef\u80fd\u4f1a\u5f88\u6709\u7528\u3002\n\n##### \u793a\u4f8b\uff1a\n\nCODE_BLOCK_72\n\n\n##### Example:\n\n\n\nCODE_BLOCK_72\n" + }, + "is_code_or_comment": false, + "model": "qwen/qwen3-14b", + "updated_at": 1773763270 + }, + "2453ca78299650e35db99f23fd4021f0238b3fac800ea3fdbd720f84cde761af": { + "original": "\n##### Example:\n\n\n\nCODE_BLOCK_49\n\n\n### optimize_cutoff\n\n\nSets the default table compaction threshold. Read more here - [Number of optimized disk chunks](../Securing_and_compacting_a_table/Compacting_a_table.md#Number-of-optimized-disk-chunks). This setting can be overridden with the per-query option [cutoff](../Securing_and_compacting_a_table/Compacting_a_table.md#Number-of-optimized-disk-chunks). It can also be changed dynamically via [SET GLOBAL](../Server_settings/Setting_variables_online.md#SET).\n\n\n##### Example:\n\n\n\nCODE_BLOCK_50\n\n\n### persistent_connections_limit\n\n\nThis setting determines the maximum number of simultaneous persistent connections to remote [persistent agents](../Creating_a_table/Creating_a_distributed_table/Creating_a_local_distributed_table.md). Each time an agent defined under `agent_persistent` is connected, we try to reuse an existing connection (if any), or connect and save the connection for future use. However, in some cases, it makes sense to limit the number of such persistent connections. This directive defines the limit. It affects the number of connections to each agent's host across all distributed tables.\n\nIt is reasonable to set the value equal to or less than the [max_connections](../Server_settings/Searchd.md#max_connections) option in the agent's config.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_51\n\n\n### pid_file\n\n\npid_file is a mandatory configuration option in Manticore search that specifies the path of the file where the process ID of the `searchd` server is stored.\n\nThe searchd process ID file is re-created and locked on startup, and contains the head server process ID while the server is running. It is unlinked on server shutdown.\nThe purpose of this file is to enable Manticore to perform various internal tasks, such as checking whether there is already a running instance of `searchd`, stopping `searchd`, and notifying it that it should rotate the tables. The file can also be used for external automation scripts.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_52\n\n\n### preopen_tables\n\n\nThe preopen_tables configuration directive specifies whether to forcibly preopen all tables on startup. The default value is 1, which means that all tables will be preopened regardless of the per-table [preopen](../Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#Other-performance-related-settings) setting. If set to 0, the per-table settings can take effect, and they will default to 0.\n\nPre-opening tables can prevent races between search queries and rotations that can cause queries to fail occasionally. However, it also uses more file handles. In most scenarios, it is recommended to preopen tables.\n\nHere's an example configuration:\n\n\n##### Example:\n\n\n\nCODE_BLOCK_53\n\n\n### pseudo_sharding\n\n\nThe pseudo_sharding configuration option enables parallelization of search queries to local plain and real-time tables, regardless of whether they are queried directly or through a distributed table. This feature will automatically parallelize queries to up to the number of threads specified in `searchd.threads` # of threads.\n\nNote that if your worker threads are already busy, because you have:\n* high query concurrency\n* physical sharding of any kind:\n - distributed table of multiple plain/real-time tables\n - real-time table consisting of too many disk chunks\n\nthen enabling pseudo_sharding may not provide any benefits and may even result in a slight decrease in throughput. If you prioritize higher throughput over lower latency, it's recommended to disable this option.\n\nEnabled by default.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_54\n\n\n### replication_connect_timeout\n\nThe `replication_connect_timeout` directive defines the timeout for connecting to a remote node. By default, the value is assumed to be in milliseconds, but it can have [another suffix](../Server_settings/Special_suffixes.md). The default value is 1000 (1 second).\n\nWhen connecting to a remote node, Manticore will wait for this amount of time at most to complete the connection successfully. If the timeout is reached but the connection has not been established, and `retries` are enabled, a retry will be initiated.\n\n### replication_query_timeout\n\nThe `replication_query_timeout` sets the amount of time that searchd will wait for a remote node to complete a query. The default value is 3000 milliseconds (3 seconds), but can be `suffixed` to indicate a different unit of time.\n\nAfter establishing a connection, Manticore will wait for a maximum of `replication_query_timeout` for the remote node to complete. Note that this timeout is separate from the `replication_connect_timeout`, and the total possible delay caused by a remote node will be the sum of both values.\n\n### replication_retry_count\n\nThis setting is an integer that specifies how many times Manticore will attempt to connect and query a remote node during replication before reporting a fatal query error. The default value is 3.\n\n### replication_retry_delay\n\nThis setting is an integer in milliseconds (or [special_suffixes](../Server_settings/Special_suffixes.md)) that specifies the delay before Manticore retries querying a remote node in case of failure during replication. This value is only relevant when a non-zero value is specified. The default value is 500.\n\n### qcache_max_bytes", + "translations": { + "russian": "\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_49\n\n\n### optimize_cutoff\n\n\n\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u043f\u043e\u0440\u043e\u0433 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0434\u043b\u044f \u0443\u043f\u043b\u043e\u0442\u043d\u0435\u043d\u0438\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u044b. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0447\u0438\u0442\u0430\u0439\u0442\u0435 \u0437\u0434\u0435\u0441\u044c - [\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0434\u0438\u0441\u043a\u043e\u0432\u044b\u0445 \u0447\u0430\u043d\u043a\u043e\u0432](../Securing_and_compacting_a_table/Compacting_a_table.md#Number-of-optimized-disk-chunks). \u042d\u0442\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043e\u043f\u0446\u0438\u0438 \u0434\u043b\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430 [cutoff](../Securing_and_compacting_a_table/Compacting_a_table.md#Number-of-optimized-disk-chunks). \u0422\u0430\u043a\u0436\u0435 \u0435\u0451 \u043c\u043e\u0436\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438 \u0447\u0435\u0440\u0435\u0437 [SET GLOBAL](../Server_settings/Setting_variables_online.md#SET).\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_50\n\n\n### persistent_connections_limit\n\n\n\u042d\u0442\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u044b\u0445 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439 \u0441 \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u044b\u043c\u0438 [\u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u044b\u043c\u0438 \u0430\u0433\u0435\u043d\u0442\u0430\u043c\u0438](../Creating_a_table/Creating_a_distributed_table/Creating_a_local_distributed_table.md). \u041a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437, \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0430\u0433\u0435\u043d\u0442, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0439 \u0432 `agent_persistent`, \u043c\u044b \u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 (\u0435\u0441\u043b\u0438 \u043e\u043d\u043e \u0435\u0441\u0442\u044c) \u0438\u043b\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0431\u0443\u0434\u0443\u0449\u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f. \u041e\u0434\u043d\u0430\u043a\u043e \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u0438\u043c\u0435\u0435\u0442 \u0441\u043c\u044b\u0441\u043b \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0442\u0430\u043a\u0438\u0445 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u044b\u0445 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439. \u042d\u0442\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043b\u0438\u043c\u0438\u0442. \u041e\u043d\u0430 \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439 \u0441 \u0445\u043e\u0441\u0442\u043e\u043c \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0430\u0433\u0435\u043d\u0442\u0430 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0445 \u0442\u0430\u0431\u043b\u0438\u0446.\n\n\u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0440\u0430\u0432\u043d\u044b\u043c \u0438\u043b\u0438 \u043c\u0435\u043d\u044c\u0448\u0438\u043c, \u0447\u0435\u043c \u043e\u043f\u0446\u0438\u044f [max_connections](../Server_settings/Searchd.md#max_connections) \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0430\u0433\u0435\u043d\u0442\u0430.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_51\n\n\n### pid_file\n\n\npid_file \u2014 \u044d\u0442\u043e \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043e\u043f\u0446\u0438\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0432 Manticore Search, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043f\u0443\u0442\u044c \u043a \u0444\u0430\u0439\u043b\u0443, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 (PID) \u0441\u0435\u0440\u0432\u0435\u0440\u0430 `searchd`.\n\n\u0424\u0430\u0439\u043b PID \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 searchd \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f \u0437\u0430\u043d\u043e\u0432\u043e \u0438 \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435, \u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 PID \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u043f\u043e\u043a\u0430 \u0441\u0435\u0440\u0432\u0435\u0440 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u041e\u043d \u0443\u0434\u0430\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u0430.\n\u0426\u0435\u043b\u044c \u044d\u0442\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u2014 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442\u044c Manticore \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430\u043b\u0438\u0447\u0438\u044f \u0443\u0436\u0435 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u043e\u0433\u043e \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 `searchd`, \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 `searchd` \u0438 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0435 \u0435\u0433\u043e \u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0440\u043e\u0442\u0430\u0446\u0438\u0438 \u0442\u0430\u0431\u043b\u0438\u0446. \u042d\u0442\u043e\u0442 \u0444\u0430\u0439\u043b \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432\u043d\u0435\u0448\u043d\u0438\u043c\u0438 \u0441\u043a\u0440\u0438\u043f\u0442\u0430\u043c\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_52\n\n\n### preopen_tables\n\n\n\u0414\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 preopen_tables \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043b\u0438 \u043f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435. \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u2014 1, \u0447\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0432\u0441\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u044b \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u043e\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0434\u043b\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b [preopen](../Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#Other-performance-related-settings). \u0415\u0441\u043b\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 0, \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0434\u043b\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u0442\u0430\u0431\u043b\u0438\u0446 \u043c\u043e\u0433\u0443\u0442 \u0432\u0441\u0442\u0443\u043f\u0438\u0442\u044c \u0432 \u0441\u0438\u043b\u0443, \u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043e\u043d\u0438 \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0432\u043d\u044b 0.\n\n\u041f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u0435 \u0442\u0430\u0431\u043b\u0438\u0446 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0442\u0438\u0442\u044c \u0433\u043e\u043d\u043a\u0438 \u043c\u0435\u0436\u0434\u0443 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u043c\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c\u0438 \u0438 \u0440\u043e\u0442\u0430\u0446\u0438\u044f\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u043d\u043e\u0433\u0434\u0430 \u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u044c \u043a \u0441\u0431\u043e\u044f\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432. \u041e\u0434\u043d\u0430\u043a\u043e \u044d\u0442\u043e \u0442\u0430\u043a\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u0435 \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u0445 \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440\u043e\u0432. \u0412 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0435\u0432 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u044b.\n\n\u0412\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438:\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_53\n\n\n### pseudo_sharding\n\n\n\u041e\u043f\u0446\u0438\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 pseudo_sharding \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0440\u0430\u0441\u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u0438\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043a \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u043c \u043e\u0431\u044b\u0447\u043d\u044b\u043c \u0438 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u043c, \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u043e\u0442 \u0442\u043e\u0433\u043e, \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043b\u0438 \u043e\u043d\u0438 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0438\u043b\u0438 \u0447\u0435\u0440\u0435\u0437 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u0443\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u0443. \u042d\u0442\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0440\u0430\u0441\u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u0438\u0432\u0430\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0434\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u043f\u043e\u0442\u043e\u043a\u043e\u0432, \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0433\u043e \u0432 `searchd.threads` # \u043f\u043e\u0442\u043e\u043a\u043e\u0432.\n\n\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u0432\u0430\u0448\u0438 \u0440\u0430\u0431\u043e\u0447\u0438\u0435 \u043f\u043e\u0442\u043e\u043a\u0438 \u0443\u0436\u0435 \u0437\u0430\u043d\u044f\u0442\u044b, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0443 \u0432\u0430\u0441:\n* \u0432\u044b\u0441\u043e\u043a\u0430\u044f \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u0430\u044f \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c\u0438\n* \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0448\u0430\u0440\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043b\u044e\u0431\u043e\u0433\u043e \u0432\u0438\u0434\u0430:\n - \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0438\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043e\u0431\u044b\u0447\u043d\u044b\u0445/\u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\n - \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0441\u043e\u0441\u0442\u043e\u044f\u0449\u0430\u044f \u0438\u0437 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0434\u0438\u0441\u043a\u043e\u0432\u044b\u0445 \u0447\u0430\u043d\u043a\u043e\u0432\n\n\u0442\u043e \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 pseudo_sharding \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u0434\u0430\u0442\u044c \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432 \u0438 \u0434\u0430\u0436\u0435 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u043c\u0443 \u0441\u043d\u0438\u0436\u0435\u043d\u0438\u044e \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438. \u0415\u0441\u043b\u0438 \u0432\u044b \u043e\u0442\u0434\u0430\u0451\u0442\u0435 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442 \u0431\u043e\u043b\u0435\u0435 \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438, \u0430 \u043d\u0435 \u043c\u0435\u043d\u044c\u0448\u0435\u0439 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0435, \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u044d\u0442\u0443 \u043e\u043f\u0446\u0438\u044e.\n\n\u0412\u043a\u043b\u044e\u0447\u0435\u043d\u043e \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_54\n\n\n### replication_connect_timeout\n\n\u0414\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u0430 `replication_connect_timeout` \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0442\u0430\u0439\u043c\u0430\u0443\u0442 \u0434\u043b\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u043e\u043c\u0443 \u0443\u0437\u043b\u0443. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u0432 \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u0430\u0445, \u043d\u043e \u043e\u043d\u043e \u043c\u043e\u0436\u0435\u0442 \u0438\u043c\u0435\u0442\u044c [\u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0443\u0444\u0444\u0438\u043a\u0441](../Server_settings/Special_suffixes.md). \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u2014 1000 (1 \u0441\u0435\u043a\u0443\u043d\u0434\u0430).\n\n\u041f\u0440\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u043a \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u043e\u043c\u0443 \u0443\u0437\u043b\u0443 Manticore \u0431\u0443\u0434\u0435\u0442 \u0436\u0434\u0430\u0442\u044c \u043d\u0435 \u0431\u043e\u043b\u0435\u0435 \u044d\u0442\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0434\u043b\u044f \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0433\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f. \u0415\u0441\u043b\u0438 \u0442\u0430\u0439\u043c\u0430\u0443\u0442 \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0443\u0442, \u043d\u043e \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e, \u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u044b `retries`, \u0431\u0443\u0434\u0435\u0442 \u0438\u043d\u0438\u0446\u0438\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u0430\u044f \u043f\u043e\u043f\u044b\u0442\u043a\u0430.\n\n### replication_query_timeout\n\n`replication_query_timeout` \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0432\u0440\u0435\u043c\u044f, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 searchd \u0431\u0443\u0434\u0435\u0442 \u0436\u0434\u0430\u0442\u044c \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u044b\u043c \u0443\u0437\u043b\u043e\u043c. \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u2014 3000 \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434 (3 \u0441\u0435\u043a\u0443\u043d\u0434\u044b), \u043d\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c `\u0441\u0443\u0444\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043e` \u0434\u043b\u044f \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u0434\u0440\u0443\u0433\u043e\u0439 \u0435\u0434\u0438\u043d\u0438\u0446\u044b \u0432\u0440\u0435\u043c\u0435\u043d\u0438.\n\n\u041f\u043e\u0441\u043b\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f Manticore \u0431\u0443\u0434\u0435\u0442 \u0436\u0434\u0430\u0442\u044c \u043d\u0435 \u0431\u043e\u043b\u0435\u0435 `replication_query_timeout` \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u043e\u0433\u043e \u0443\u0437\u043b\u0430. \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u044d\u0442\u043e\u0442 \u0442\u0430\u0439\u043c\u0430\u0443\u0442 \u043e\u0442\u0434\u0435\u043b\u0451\u043d \u043e\u0442 `replication_connect_timeout`, \u0438 \u043e\u0431\u0449\u0430\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u0430\u044f \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430, \u0432\u044b\u0437\u0432\u0430\u043d\u043d\u0430\u044f \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u044b\u043c \u0443\u0437\u043b\u043e\u043c, \u0431\u0443\u0434\u0435\u0442 \u0441\u0443\u043c\u043c\u043e\u0439 \u043e\u0431\u043e\u0438\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439.\n\n### replication_retry_count\n\n\u042d\u0442\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u0446\u0435\u043b\u043e\u0435 \u0447\u0438\u0441\u043b\u043e, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437 Manticore \u043f\u043e\u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441 \u043a \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u043e\u043c\u0443 \u0443\u0437\u043b\u0443 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438, \u043f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u0441\u043e\u043e\u0431\u0449\u0438\u0442\u044c \u043e \u0444\u0430\u0442\u0430\u043b\u044c\u043d\u043e\u0439 \u043e\u0448\u0438\u0431\u043a\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u0430. \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u2014 3.\n\n### replication_retry_delay\n\n\u042d\u0442\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u0446\u0435\u043b\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0432 \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u0430\u0445 (\u0438\u043b\u0438 [\u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0443\u0444\u0444\u0438\u043a\u0441\u044b](../Server_settings/Special_suffixes.md)), \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0443 \u043f\u0435\u0440\u0435\u0434 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0439 \u043f\u043e\u043f\u044b\u0442\u043a\u043e\u0439 Manticore \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441 \u043a \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u043e\u043c\u0443 \u0443\u0437\u043b\u0443 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441\u0431\u043e\u044f \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0438 \u043d\u0435\u043d\u0443\u043b\u0435\u0432\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f. \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u2014 500.\n\n### qcache_max_bytes", + "chinese": "\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_49\n\n\n### optimize_cutoff\n\n\n\u8bbe\u7f6e\u9ed8\u8ba4\u7684\u8868\u538b\u7f29\u9608\u503c\u3002\u66f4\u591a\u4fe1\u606f\u8bf7\u53c2\u89c1 - [\u4f18\u5316\u7684\u78c1\u76d8\u5757\u6570\u91cf](../Securing_and_compacting_a_table/Compacting_a_table.md#Number-of-optimized-disk-chunks)\u3002\u6b64\u8bbe\u7f6e\u53ef\u4ee5\u901a\u8fc7\u6bcf\u4e2a\u67e5\u8be2\u9009\u9879 [cutoff](../Securing_and_compacting_a_table/Compacting_a_table.md#Number-of-optimized-disk-chunks) \u8986\u76d6\u3002\u4e5f\u53ef\u4ee5\u901a\u8fc7 [SET GLOBAL](../Server_settings/Setting_variables_online.md#SET) \u52a8\u6001\u66f4\u6539\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_50\n\n\n### persistent_connections_limit\n\n\n\u6b64\u8bbe\u7f6e\u786e\u5b9a\u5230\u8fdc\u7a0b [\u6301\u4e45\u4ee3\u7406](../Creating_a_table/Creating_a_distributed_table/Creating_a_local_distributed_table.md) \u7684\u6700\u5927\u540c\u65f6\u6301\u4e45\u8fde\u63a5\u6570\u3002\u6bcf\u6b21\u8fde\u63a5\u5728 `agent_persistent` \u4e0b\u5b9a\u4e49\u7684\u4ee3\u7406\u65f6\uff0c\u6211\u4eec\u5c1d\u8bd5\u91cd\u7528\u73b0\u6709\u8fde\u63a5\uff08\u5982\u679c\u6709\u7684\u8bdd\uff09\uff0c\u6216\u8005\u8fde\u63a5\u5e76\u4fdd\u5b58\u8fde\u63a5\u4ee5\u4f9b\u5c06\u6765\u4f7f\u7528\u3002\u7136\u800c\uff0c\u5728\u67d0\u4e9b\u60c5\u51b5\u4e0b\uff0c\u9650\u5236\u6b64\u7c7b\u6301\u4e45\u8fde\u63a5\u7684\u6570\u91cf\u662f\u6709\u610f\u4e49\u7684\u3002\u6b64\u6307\u4ee4\u5b9a\u4e49\u4e86\u9650\u5236\u3002\u5b83\u4f1a\u5f71\u54cd\u6240\u6709\u5206\u5e03\u5f0f\u8868\u4e2d\u6bcf\u4e2a\u4ee3\u7406\u4e3b\u673a\u7684\u8fde\u63a5\u6570\u91cf\u3002\n\n\u5c06\u6b64\u503c\u8bbe\u7f6e\u4e3a\u4ee3\u7406\u914d\u7f6e\u4e2d\u7684 [max_connections](../Server_settings/Searchd.md#max_connections) \u9009\u9879\u76f8\u7b49\u6216\u66f4\u5c0f\u662f\u5408\u7406\u7684\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_51\n\n\n### pid_file\n\n\npid_file \u662f Manticore \u641c\u7d22\u4e2d\u5fc5\u586b\u7684\u914d\u7f6e\u9009\u9879\uff0c\u7528\u4e8e\u6307\u5b9a\u5b58\u50a8 `searchd` \u670d\u52a1\u5668\u8fdb\u7a0b ID \u7684\u6587\u4ef6\u8def\u5f84\u3002\n\nsearchd \u8fdb\u7a0b ID \u6587\u4ef6\u5728\u542f\u52a8\u65f6\u4f1a\u91cd\u65b0\u521b\u5efa\u5e76\u9501\u5b9a\uff0c\u5e76\u5728\u670d\u52a1\u5668\u8fd0\u884c\u65f6\u5305\u542b\u4e3b\u670d\u52a1\u5668\u8fdb\u7a0b ID\u3002\u670d\u52a1\u5668\u5173\u95ed\u65f6\u4f1a\u89e3\u9664\u94fe\u63a5\u3002\n\u6b64\u6587\u4ef6\u7684\u76ee\u7684\u662f\u4f7f Manticore \u80fd\u591f\u6267\u884c\u5404\u79cd\u5185\u90e8\u4efb\u52a1\uff0c\u4f8b\u5982\u68c0\u67e5\u662f\u5426\u5df2\u7ecf\u6709\u8fd0\u884c\u4e2d\u7684 `searchd` \u5b9e\u4f8b\uff0c\u505c\u6b62 `searchd`\uff0c\u5e76\u901a\u77e5\u5176\u5e94\u8f6e\u6362\u8868\u3002\u8be5\u6587\u4ef6\u4e5f\u53ef\u7528\u4e8e\u5916\u90e8\u81ea\u52a8\u5316\u811a\u672c\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_52\n\n\n### preopen_tables\n\n\npreopen_tables \u914d\u7f6e\u6307\u4ee4\u6307\u5b9a\u662f\u5426\u5728\u542f\u52a8\u65f6\u5f3a\u5236\u9884\u6253\u5f00\u6240\u6709\u8868\u3002\u9ed8\u8ba4\u503c\u4e3a 1\uff0c\u8fd9\u610f\u5473\u7740\u65e0\u8bba\u6bcf\u4e2a\u8868\u7684 [preopen](../Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#Other-performance-related-settings) \u8bbe\u7f6e\u5982\u4f55\uff0c\u6240\u6709\u8868\u90fd\u5c06\u88ab\u9884\u6253\u5f00\u3002\u5982\u679c\u8bbe\u7f6e\u4e3a 0\uff0c\u5219\u6bcf\u4e2a\u8868\u7684\u8bbe\u7f6e\u53ef\u4ee5\u751f\u6548\uff0c\u5e76\u9ed8\u8ba4\u4e3a 0\u3002\n\n\u9884\u6253\u5f00\u8868\u53ef\u4ee5\u9632\u6b62\u641c\u7d22\u67e5\u8be2\u548c\u8f6e\u6362\u4e4b\u95f4\u7684\u7ade\u4e89\uff0c\u8fd9\u53ef\u80fd\u5bfc\u81f4\u67e5\u8be2\u5076\u5c14\u5931\u8d25\u3002\u7136\u800c\uff0c\u5b83\u4e5f\u4f1a\u4f7f\u7528\u66f4\u591a\u7684\u6587\u4ef6\u53e5\u67c4\u3002\u5728\u5927\u591a\u6570\u60c5\u51b5\u4e0b\uff0c\u5efa\u8bae\u9884\u6253\u5f00\u8868\u3002\n\n\u4ee5\u4e0b\u662f\u4e00\u4e2a\u914d\u7f6e\u793a\u4f8b\uff1a\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_53\n\n\n### pseudo_sharding\n\n\npseudo_sharding \u914d\u7f6e\u9009\u9879\u542f\u7528\u5bf9\u672c\u5730\u666e\u901a\u8868\u548c\u5b9e\u65f6\u8868\u7684\u641c\u7d22\u67e5\u8be2\u5e76\u884c\u5316\uff0c\u65e0\u8bba\u5b83\u4eec\u662f\u76f4\u63a5\u67e5\u8be2\u8fd8\u662f\u901a\u8fc7\u5206\u5e03\u5f0f\u8868\u67e5\u8be2\u3002\u6b64\u529f\u80fd\u5c06\u81ea\u52a8\u5e76\u884c\u5316\u67e5\u8be2\uff0c\u6700\u591a\u8fbe\u5230 `searchd.threads` \u4e2d\u6307\u5b9a\u7684\u7ebf\u7a0b\u6570\u3002\n\n\u8bf7\u6ce8\u610f\uff0c\u5982\u679c\u60a8\u7684\u5de5\u4f5c\u7ebf\u7a0b\u5df2\u7ecf\u5f88\u5fd9\uff0c\u56e0\u4e3a\u60a8\u6709\uff1a\n* \u9ad8\u67e5\u8be2\u5e76\u53d1\n* \u4efb\u4f55\u5f62\u5f0f\u7684\u7269\u7406\u5206\u7247\uff1a\n - \u7531\u591a\u4e2a\u666e\u901a/\u5b9e\u65f6\u8868\u7ec4\u6210\u7684\u5206\u5e03\u5f0f\u8868\n - \u7531\u592a\u591a\u78c1\u76d8\u5757\u7ec4\u6210\u7684\u5b9e\u65f6\u8868\n\n\u90a3\u4e48\u542f\u7528 pseudo_sharding \u53ef\u80fd\u4e0d\u4f1a\u5e26\u6765\u4efb\u4f55\u597d\u5904\uff0c\u751a\u81f3\u53ef\u80fd\u5bfc\u81f4\u541e\u5410\u91cf\u7565\u6709\u4e0b\u964d\u3002\u5982\u679c\u60a8\u4f18\u5148\u8003\u8651\u66f4\u9ad8\u7684\u541e\u5410\u91cf\u800c\u4e0d\u662f\u66f4\u4f4e\u7684\u5ef6\u8fdf\uff0c\u5efa\u8bae\u7981\u7528\u6b64\u9009\u9879\u3002\n\n\u9ed8\u8ba4\u542f\u7528\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_54\n\n\n### replication_connect_timeout\n\n`replication_connect_timeout` \u6307\u4ee4\u5b9a\u4e49\u8fde\u63a5\u5230\u8fdc\u7a0b\u8282\u70b9\u7684\u8d85\u65f6\u65f6\u95f4\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u8be5\u503c\u4ee5\u6beb\u79d2\u4e3a\u5355\u4f4d\uff0c\u4f46\u53ef\u4ee5\u4f7f\u7528 [\u5176\u4ed6\u540e\u7f00](../Server_settings/Special_suffixes.md)\u3002\u9ed8\u8ba4\u503c\u4e3a 1000\uff081 \u79d2\uff09\u3002\n\n\u5728\u8fde\u63a5\u5230\u8fdc\u7a0b\u8282\u70b9\u65f6\uff0cManticore \u6700\u591a\u5c06\u7b49\u5f85\u6b64\u65f6\u95f4\u4ee5\u6210\u529f\u5b8c\u6210\u8fde\u63a5\u3002\u5982\u679c\u8d85\u65f6\u4f46\u8fde\u63a5\u5c1a\u672a\u5efa\u7acb\uff0c\u5e76\u4e14\u542f\u7528\u4e86 `retries`\uff0c\u5c06\u53d1\u8d77\u91cd\u8bd5\u3002\n\n### replication_query_timeout\n\n`replication_query_timeout` \u8bbe\u7f6e searchd \u7b49\u5f85\u8fdc\u7a0b\u8282\u70b9\u5b8c\u6210\u67e5\u8be2\u7684\u65f6\u95f4\u91cf\u3002\u9ed8\u8ba4\u503c\u4e3a 3000 \u6beb\u79d2\uff083 \u79d2\uff09\uff0c\u4f46\u53ef\u4ee5\u4f7f\u7528 `suffixed` \u6765\u8868\u793a\u4e0d\u540c\u7684\u65f6\u95f4\u5355\u4f4d\u3002\n\n\u5728\u5efa\u7acb\u8fde\u63a5\u540e\uff0cManticore \u5c06\u7b49\u5f85\u6700\u591a `replication_query_timeout` \u7684\u65f6\u95f4\u4ee5\u8ba9\u8fdc\u7a0b\u8282\u70b9\u5b8c\u6210\u3002\u8bf7\u6ce8\u610f\uff0c\u6b64\u8d85\u65f6\u4e0e `replication_connect_timeout` \u662f\u5206\u5f00\u7684\uff0c\u8fdc\u7a0b\u8282\u70b9\u53ef\u80fd\u5bfc\u81f4\u7684\u603b\u5ef6\u8fdf\u5c06\u662f\u4e24\u8005\u7684\u603b\u548c\u3002\n\n### replication_retry_count\n\n\u6b64\u8bbe\u7f6e\u662f\u4e00\u4e2a\u6574\u6570\uff0c\u6307\u5b9a Manticore \u5728\u590d\u5236\u8fc7\u7a0b\u4e2d\u5c1d\u8bd5\u8fde\u63a5\u548c\u67e5\u8be2\u8fdc\u7a0b\u8282\u70b9\u7684\u6b21\u6570\uff0c\u76f4\u5230\u62a5\u544a\u81f4\u547d\u67e5\u8be2\u9519\u8bef\u3002\u9ed8\u8ba4\u503c\u4e3a 3\u3002\n\n### replication_retry_delay\n\n\u6b64\u8bbe\u7f6e\u662f\u4e00\u4e2a\u4ee5\u6beb\u79d2\u4e3a\u5355\u4f4d\u7684\u6574\u6570\uff08\u6216 [\u7279\u6b8a\u540e\u7f00](../Server_settings/Special_suffixes.md)\uff09\uff0c\u6307\u5b9a Manticore \u5728\u590d\u5236\u8fc7\u7a0b\u4e2d\u67e5\u8be2\u8fdc\u7a0b\u8282\u70b9\u5931\u8d25\u540e\u91cd\u8bd5\u7684\u5ef6\u8fdf\u65f6\u95f4\u3002\u6b64\n\n### qcache_max_bytes" + }, + "is_code_or_comment": false, + "model": "qwen/qwen3-14b", + "updated_at": 1773763267 + }, + "9537d660699b21ad1e4ec083bebad09feab9e196ca93107adb883dbe442f8f8b": { + "original": "All these improvements without actually changing the protocol itself allowed us to eliminate 1.5 RTT of the TCP protocol from the connection. Which is, if the query and answer are capable of being placed in a single TCP package, decreases the whole binary API session from 3.5 RTT to 2 RTT - which makes network negotiation about 2 times faster.\n\nSo, all our improvements are stated around an initially undefined statement: 'who speaks first.' If a client speaks first, we may apply all these optimizations and effectively process connect + handshake + query in a single TFO package. Moreover, we can look at the beginning of the received package and determine a real protocol. That is why you can connect to one and the same port via API/http/https. If the daemon has to speak first, all these optimizations are impossible, and the multiprotocol is also impossible. That is why we have a dedicated port for MySQL and did not unify it with all the other protocols into a same port. Suddenly, among all clients, one was written implying that daemon should send a handshake first. That is - no possibility to all the described improvements. That is SphinxSE plugin for mysql/mariadb. So, specially for this single client we dedicated `sphinx` proto definition to work most legacy way. Namely: both sides activate `TCP_NODELAY` and exchange with small packages. The daemon sends its handshake on connect, then the client sends its, and then everything works usual way. That is not very optimal, but just works. If you use SphinxSE to connect to Manticore - you have to dedicate a listener with explicitly stated `sphinx` proto. For another clients - avoid to use this listener as it is slower. If you use another legacy Sphinx API clients - check first, if they are able to work with non-dedicated multiprotocol port. For master-agent linkage using the non-dedicated (multiprotocol) port and enabling client and server TFO works well and will definitely make working of network backend faster, especially if you have very light and fast queries.\n\n\n### listen_tfo\n\nThis setting allows the TCP_FASTOPEN flag for all listeners. By default, it is managed by the system but may be explicitly switched off by setting it to '0'.\n\nFor general knowledge about the TCP Fast Open extension, please consult with [Wikipedia](https://en.wikipedia.org/wiki/TCP_Fast_Open). In short, it allows the elimination of one TCP round-trip when establishing a connection.\n\nIn practice, using TFO in many situations may optimize client-agent network efficiency, as if [persistent agents](../Creating_a_table/Creating_a_distributed_table/Creating_a_local_distributed_table.md) are in play, but without holding active connections, and also without limitation for the maximum num of connections.\n\nOn modern OS, TFO support is usually switched 'on' at the system level, but this is just a 'capability', not the rule. Linux (as the most progressive) has supported it since 2011, on kernels starting from 3.7 (for the server-side). Windows has supported it from some builds of Windows 10. Other operating systems (FreeBSD, MacOS) are also in the game.\n\nFor Linux system server checks variable `/proc/sys/net/ipv4/tcp_fastopen` and behaves according to it. Bit 0 manages client side, bit 1 rules listeners. By default, the system has this parameter set to 1, i.e., clients enabled, listeners disabled.\n\n### log\n\n\nThe log setting specifies the name of the log file where all `searchd` run time events will be logged. If not specified, the default name is 'searchd.log'.\n\nAlternatively, you can use the 'syslog' as the file name. In this case, the events will be sent to the syslog daemon. To use the syslog option, you need to configure Manticore with the `-\u2013with-syslog` option during building.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_37\n\n\n### max_batch_queries\n\n\nLimits the amount of queries per batch. Optional, default is 32.\n\nMakes searchd perform a sanity check of the amount of queries submitted in a single batch when using [multi-queries](../Searching/Multi-queries.md). Set it to 0 to skip the check.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_38\n\n\n### max_connections\n\n\nMaximum number of simultaneous client connections. Unlimited by default. That is usually noticeable only when using any kind of persistent connections, like cli mysql sessions or persistent remote connections from remote distributed tables. When the limit is exceeded you can still connect to the server using the [VIP connection](../Connecting_to_the_server/MySQL_protocol.md#VIP-connection). VIP connections are not counted towards the limit.\n\n\nCODE_BLOCK_39\n\n\n\n### max_threads_per_query\n\n\nInstance-wide limit of threads one operation can use. By default, appropriate operations can occupy all CPU cores, leaving no room for other operations. For example, `call pq` against a considerably large percolate table can utilize all threads for tens of seconds. Setting `max_threads_per_query` to, say, half of [threads](../Server_settings/Searchd.md#threads) will ensure that you can run a couple of such `call pq` operations in parallel.\n\nYou can also set this setting as a session or a global variable during runtime.\n\nAdditionally, you can control the behavior on a per-query basis with the help of the [threads OPTION](../Searching/Options.md#threads).\n\n\n##### Example:\n\n\nCODE_BLOCK_40\n\n\n\n### max_filters\n\n\nMaximum allowed per-query filter count. This setting is only used for internal sanity checks and does not directly affect RAM usage or performance. Optional, the default is 256.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_41\n\n\n### max_filter_values", + "translations": { + "chinese": "\u6240\u6709\u8fd9\u4e9b\u6539\u8fdb\u5728\u4e0d\u5b9e\u9645\u66f4\u6539\u534f\u8bae\u672c\u8eab\u7684\u60c5\u51b5\u4e0b\uff0c\u4f7f\u6211\u4eec\u80fd\u591f\u4ece\u8fde\u63a5\u4e2d\u6d88\u9664TCP\u534f\u8bae\u76841.5\u4e2a\u5f80\u8fd4\u65f6\u95f4\u3002\u4e5f\u5c31\u662f\u8bf4\uff0c\u5982\u679c\u67e5\u8be2\u548c\u7b54\u6848\u80fd\u591f\u653e\u5165\u4e00\u4e2aTCP\u6570\u636e\u5305\u4e2d\uff0c\u6574\u4e2a\u4e8c\u8fdb\u5236API\u4f1a\u8bdd\u5c06\u4ece3.5\u4e2a\u5f80\u8fd4\u65f6\u95f4\u51cf\u5c11\u52302\u4e2a\u5f80\u8fd4\u65f6\u95f4\u2014\u2014\u8fd9\u4f7f\u7f51\u7edc\u534f\u5546\u901f\u5ea6\u63d0\u9ad8\u4e86\u7ea62\u500d\u3002\n\n\u56e0\u6b64\uff0c\u6211\u4eec\u6240\u6709\u7684\u6539\u8fdb\u90fd\u56f4\u7ed5\u7740\u4e00\u4e2a\u6700\u521d\u672a\u5b9a\u4e49\u7684\u9648\u8ff0\uff1a\u201c\u8c01\u5148\u53d1\u8a00\u201d\u3002\u5982\u679c\u5ba2\u6237\u7aef\u5148\u53d1\u8a00\uff0c\u6211\u4eec\u53ef\u4ee5\u5e94\u7528\u6240\u6709\u8fd9\u4e9b\u4f18\u5316\uff0c\u5e76\u6709\u6548\u5730\u5c06\u8fde\u63a5+\u63e1\u624b+\u67e5\u8be2\u5c01\u88c5\u5728\u4e00\u4e2aTFO\u6570\u636e\u5305\u4e2d\u3002\u6b64\u5916\uff0c\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7\u67e5\u770b\u63a5\u6536\u5230\u7684\u6570\u636e\u5305\u5f00\u5934\u6765\u786e\u5b9a\u5b9e\u9645\u534f\u8bae\u3002\u8fd9\u5c31\u662f\u4e3a\u4ec0\u4e48\u4f60\u53ef\u4ee5\u901a\u8fc7API/http/https\u8fde\u63a5\u5230\u540c\u4e00\u4e2a\u7aef\u53e3\u3002\u5982\u679c\u5b88\u62a4\u8fdb\u7a0b\u5fc5\u987b\u5148\u53d1\u8a00\uff0c\u6240\u6709\u8fd9\u4e9b\u4f18\u5316\u90fd\u4e0d\u53ef\u80fd\u5b9e\u73b0\uff0c\u591a\u534f\u8bae\u4e5f\u65e0\u4ece\u8c08\u8d77\u3002\u8fd9\u5c31\u662f\u4e3a\u4ec0\u4e48\u6211\u4eec\u4e3aMySQL\u4e13\u95e8\u8bbe\u7f6e\u4e86\u4e13\u7528\u7aef\u53e3\uff0c\u800c\u6ca1\u6709\u5c06\u5176\u4e0e\u5176\u4ed6\u6240\u6709\u534f\u8bae\u7edf\u4e00\u5230\u540c\u4e00\u4e2a\u7aef\u53e3\u3002\u7a81\u7136\u95f4\uff0c\u5728\u6240\u6709\u5ba2\u6237\u7aef\u4e2d\uff0c\u6709\u4e00\u4e2a\u5ba2\u6237\u7aef\u662f\u6309\u7167\u5b88\u62a4\u8fdb\u7a0b\u5148\u53d1\u9001\u63e1\u624b\u7684\u903b\u8f91\u7f16\u5199\u7684\u3002\u4e5f\u5c31\u662f\u8bf4\u2014\u2014\u65e0\u6cd5\u5b9e\u73b0\u4e0a\u8ff0\u6240\u6709\u6539\u8fdb\u3002\u8fd9\u5c31\u662fSphinxSE\u63d2\u4ef6\u7528\u4e8emysql/mariadb\u7684\u60c5\u51b5\u3002\u56e0\u6b64\uff0c\u6211\u4eec\u4e13\u95e8\u4e3a\u8fd9\u4e2a\u5355\u4e00\u5ba2\u6237\u7aef\u5b9a\u4e49\u4e86`sphinx`\u534f\u8bae\uff0c\u4ee5\u6700\u4f20\u7edf\u7684\u65b9\u5f0f\u5de5\u4f5c\u3002\u5373\uff1a\u53cc\u65b9\u6fc0\u6d3b`TCP_NODELAY`\u5e76\u4f7f\u7528\u5c0f\u6570\u636e\u5305\u8fdb\u884c\u4ea4\u6362\u3002\u5b88\u62a4\u8fdb\u7a0b\u5728\u8fde\u63a5\u65f6\u53d1\u9001\u5176\u63e1\u624b\uff0c\u7136\u540e\u5ba2\u6237\u7aef\u53d1\u9001\u5176\u63e1\u624b\uff0c\u4e4b\u540e\u4e00\u5207\u6309\u5e38\u89c4\u65b9\u5f0f\u5de5\u4f5c\u3002\u8fd9\u4e0d\u662f\u5f88\u9ad8\u6548\uff0c\u4f46\u80fd\u6b63\u5e38\u5de5\u4f5c\u3002\u5982\u679c\u4f60\u4f7f\u7528SphinxSE\u8fde\u63a5\u5230Manticore\uff0c\u4f60\u5fc5\u987b\u4e13\u95e8\u8bbe\u7f6e\u4e00\u4e2a\u5e26\u6709\u660e\u786e\u58f0\u660e\u7684`sphinx`\u534f\u8bae\u7684\u76d1\u542c\u5668\u3002\u5bf9\u4e8e\u5176\u4ed6\u5ba2\u6237\u7aef\uff0c\u5e94\u907f\u514d\u4f7f\u7528\u6b64\u76d1\u542c\u5668\uff0c\u56e0\u4e3a\u5b83\u8f83\u6162\u3002\u5982\u679c\u4f60\u4f7f\u7528\u5176\u4ed6\u4f20\u7edf\u7684Sphinx API\u5ba2\u6237\u7aef\uff0c\u8bf7\u9996\u5148\u68c0\u67e5\u5b83\u4eec\u662f\u5426\u80fd\u591f\u4e0e\u975e\u4e13\u7528\u7684\u591a\u534f\u8bae\u7aef\u53e3\u4e00\u8d77\u5de5\u4f5c\u3002\u5bf9\u4e8e\u4e3b-\u4ee3\u7406\u8fde\u63a5\u4f7f\u7528\u975e\u4e13\u7528\uff08\u591a\u534f\u8bae\uff09\u7aef\u53e3\u5e76\u542f\u7528\u5ba2\u6237\u7aef\u548c\u670d\u52a1\u5668\u7684TFO\u6548\u679c\u826f\u597d\uff0c\u80af\u5b9a\u4f1a\u52a0\u5feb\u7f51\u7edc\u540e\u7aef\u7684\u5de5\u4f5c\u901f\u5ea6\uff0c\u7279\u522b\u662f\u5f53\u4f60\u6709\u975e\u5e38\u8f7b\u91cf\u4e14\u5feb\u901f\u7684\u67e5\u8be2\u65f6\u3002\n\n\n### listen_tfo\n\n\u6b64\u8bbe\u7f6e\u5141\u8bb8\u6240\u6709\u76d1\u542c\u5668\u4f7f\u7528TCP_FASTOPEN\u6807\u5fd7\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u7531\u7cfb\u7edf\u7ba1\u7406\uff0c\u4f46\u53ef\u4ee5\u901a\u8fc7\u5c06\u5176\u8bbe\u7f6e\u4e3a'0'\u663e\u5f0f\u5173\u95ed\u3002\n\n\u5173\u4e8eTCP Fast Open\u6269\u5c55\u7684\u901a\u7528\u77e5\u8bc6\uff0c\u8bf7\u53c2\u9605[Wikipedia](https://en.wikipedia.org/wiki/TCP_Fast_Open)\u3002\u7b80\u800c\u8a00\u4e4b\uff0c\u5b83\u5141\u8bb8\u5728\u5efa\u7acb\u8fde\u63a5\u65f6\u6d88\u9664\u4e00\u4e2aTCP\u5f80\u8fd4\u65f6\u95f4\u3002\n\n\u5728\u5b9e\u9645\u5e94\u7528\u4e2d\uff0c\u8bb8\u591a\u60c5\u51b5\u4e0b\u4f7f\u7528TFO\u53ef\u4ee5\u4f18\u5316\u5ba2\u6237\u7aef-\u4ee3\u7406\u7684\u7f51\u7edc\u6548\u7387\uff0c\u5c31\u50cf\u4f7f\u7528[persistent agents](../Creating_a_table/Creating_a_distributed_table/Creating_a_local_distributed_table.md)\u65f6\u4e00\u6837\uff0c\u5373\u4f7f\u4e0d\u4fdd\u6301\u6d3b\u52a8\u8fde\u63a5\uff0c\u4e5f\u4e0d\u4f1a\u9650\u5236\u6700\u5927\u8fde\u63a5\u6570\u3002\n\n\u5728\u73b0\u4ee3\u64cd\u4f5c\u7cfb\u7edf\u4e0a\uff0cTFO\u652f\u6301\u901a\u5e38\u5728\u7cfb\u7edf\u7ea7\u522b\u542f\u7528\uff0c\u4f46\u8fd9\u53ea\u662f\u4e00\u4e2a\u201c\u80fd\u529b\u201d\uff0c\u5e76\u975e\u89c4\u5219\u3002Linux\uff08\u4f5c\u4e3a\u6700\u8fdb\u6b65\u7684\u7cfb\u7edf\uff09\u81ea2011\u5e74\u8d77\u57283.7\u5185\u6838\uff08\u670d\u52a1\u5668\u7aef\uff09\u5f00\u59cb\u652f\u6301\u3002Windows\u4ece\u67d0\u4e9bWindows 10\u7248\u672c\u5f00\u59cb\u652f\u6301\u3002\u5176\u4ed6\u64cd\u4f5c\u7cfb\u7edf\uff08\u5982FreeBSD\u3001MacOS\uff09\u4e5f\u53c2\u4e0e\u5176\u4e2d\u3002\n\n\u5bf9\u4e8eLinux\u7cfb\u7edf\u670d\u52a1\u5668\uff0c\u68c0\u67e5\u53d8\u91cf`/proc/sys/net/ipv4/tcp_fastopen`\u5e76\u6839\u636e\u5176\u884c\u4e3a\u3002\u7b2c0\u4f4d\u7ba1\u7406\u5ba2\u6237\u7aef\uff0c\u7b2c1\u4f4d\u7ba1\u7406\u76d1\u542c\u5668\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u7cfb\u7edf\u5c06\u6b64\u53c2\u6570\u8bbe\u7f6e\u4e3a1\uff0c\u5373\u5ba2\u6237\u7aef\u542f\u7528\uff0c\u76d1\u542c\u5668\u7981\u7528\u3002\n\n### log\n\n\nlog\u8bbe\u7f6e\u6307\u5b9a\u4e86\u8bb0\u5f55\u6240\u6709`searchd`\u8fd0\u884c\u65f6\u4e8b\u4ef6\u7684\u65e5\u5fd7\u6587\u4ef6\u540d\u79f0\u3002\u5982\u679c\u672a\u6307\u5b9a\uff0c\u9ed8\u8ba4\u540d\u79f0\u4e3a'searchd.log'\u3002\n\n\u6216\u8005\uff0c\u4f60\u53ef\u4ee5\u4f7f\u7528'syslog'\u4f5c\u4e3a\u6587\u4ef6\u540d\u3002\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0c\u4e8b\u4ef6\u5c06\u53d1\u9001\u5230syslog\u5b88\u62a4\u8fdb\u7a0b\u3002\u8981\u4f7f\u7528syslog\u9009\u9879\uff0c\u4f60\u9700\u8981\u5728\u6784\u5efa\u65f6\u4f7f\u7528`-\u2013with-syslog`\u9009\u9879\u914d\u7f6eManticore\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_37\n\n\n### max_batch_queries\n\n\n\u9650\u5236\u6bcf\u4e2a\u6279\u6b21\u7684\u67e5\u8be2\u6570\u91cf\u3002\u53ef\u9009\uff0c\u9ed8\u8ba4\u503c\u4e3a32\u3002\n\n\u5f53\u4f7f\u7528[multi-queries](../Searching/Multi-queries.md)\u65f6\uff0csearchd\u4f1a\u5bf9\u5355\u4e2a\u6279\u6b21\u63d0\u4ea4\u7684\u67e5\u8be2\u6570\u91cf\u6267\u884c\u5408\u7406\u6027\u68c0\u67e5\u3002\u5c06\u5176\u8bbe\u7f6e\u4e3a0\u4ee5\u8df3\u8fc7\u68c0\u67e5\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_38\n\n\n### max_connections\n\n\n\u6700\u5927\u540c\u65f6\u5ba2\u6237\u7aef\u8fde\u63a5\u6570\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u65e0\u9650\u5236\u3002\u901a\u5e38\u53ea\u6709\u5728\u4f7f\u7528\u4efb\u4f55\u7c7b\u578b\u7684\u6301\u4e45\u8fde\u63a5\u65f6\u624d\u4f1a\u6ce8\u610f\u5230\u8fd9\u4e00\u70b9\uff0c\u4f8b\u5982cli mysql\u4f1a\u8bdd\u6216\u8fdc\u7a0b\u5206\u5e03\u5f0f\u8868\u7684\u6301\u4e45\u8fdc\u7a0b\u8fde\u63a5\u3002\u5f53\u8d85\u8fc7\u9650\u5236\u65f6\uff0c\u4f60\u4ecd\u7136\u53ef\u4ee5\u4f7f\u7528[VIP\u8fde\u63a5](../Connecting_to_the_server/MySQL_protocol.md#VIP-connection)\u8fde\u63a5\u5230\u670d\u52a1\u5668\u3002VIP\u8fde\u63a5\u4e0d\u8ba1\u5165\u9650\u5236\u3002\n\n\nCODE_BLOCK_39\n\n\n\n### max_threads_per_query\n\n\n\u5b9e\u4f8b\u8303\u56f4\u5185\u5355\u4e2a\u64cd\u4f5c\u53ef\u4f7f\u7528\u7684\u7ebf\u7a0b\u6570\u9650\u5236\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u9002\u5f53\u7684\u64cd\u4f5c\u53ef\u4ee5\u5360\u7528\u6240\u6709CPU\u6838\u5fc3\uff0c\u6ca1\u6709\u5176\u4ed6\u64cd\u4f5c\u7684\u4f59\u5730\u3002\u4f8b\u5982\uff0c\u5bf9\u4e00\u4e2a\u76f8\u5f53\u5927\u7684percolate\u8868\u6267\u884c`call pq`\u53ef\u80fd\u4f1a\u5728\u6570\u5341\u79d2\u5185\u4f7f\u7528\u6240\u6709\u7ebf\u7a0b\u3002\u5c06`max_threads_per_query`\u8bbe\u7f6e\u4e3a\u4f8b\u5982[threads](../Server_settings/Searchd.md#threads)\u7684\u4e00\u534a\uff0c\u53ef\u4ee5\u786e\u4fdd\u4f60\u80fd\u5e76\u884c\u8fd0\u884c\u51e0\u4e2a\u8fd9\u6837\u7684`call pq`\u64cd\u4f5c\u3002\n\n\u4f60\u4e5f\u53ef\u4ee5\u5728\u8fd0\u884c\u65f6\u5c06\u6b64\u8bbe\u7f6e\u4f5c\u4e3a\u4f1a\u8bdd\u6216\u5168\u5c40\u53d8\u91cf\u8fdb\u884c\u8bbe\u7f6e\u3002\n\n\u6b64\u5916\uff0c\u4f60\u53ef\u4ee5\u901a\u8fc7\u4f7f\u7528[threads OPTION](../Searching/Options.md#threads)\u5728\u6bcf\u4e2a\u67e5\u8be2\u7684\u57fa\u7840\u4e0a\u63a7\u5236\u884c\u4e3a\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\nCODE_BLOCK_40\n\n\n\n### max_filters\n\n\n\u6bcf\u4e2a\u67e5\u8be2\u5141\u8bb8\u7684\u6700\u5927\u8fc7\u6ee4\u5668\u6570\u91cf\u3002\u6b64\u8bbe\u7f6e\u4ec5\u7528\u4e8e\u5185\u90e8\u5408\u7406\u6027\u68c0\u67e5\uff0c\u4e0d\u4f1a\u76f4\u63a5\u5f71\u54cdRAM\u4f7f\u7528\u6216\u6027\u80fd\u3002\u53ef\u9009\uff0c\u9ed8\u8ba4\u503c\u4e3a256\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_41\n\n\n### max_filter_values", + "russian": "\u0412\u0441\u0435 \u044d\u0442\u0438 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u0431\u0435\u0437 \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0441\u0430\u043c\u043e\u0433\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u0438 \u043d\u0430\u043c \u0443\u0441\u0442\u0440\u0430\u043d\u0438\u0442\u044c 1,5 RTT \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 TCP \u0438\u0437 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f. \u0427\u0442\u043e, \u0435\u0441\u043b\u0438 \u0437\u0430\u043f\u0440\u043e\u0441 \u0438 \u043e\u0442\u0432\u0435\u0442 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u044b \u0432 \u043e\u0434\u043d\u043e\u043c TCP-\u043f\u0430\u043a\u0435\u0442\u0435, \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0435\u0442 \u0432\u0441\u044e \u0441\u0435\u0441\u0441\u0438\u044e \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0433\u043e API \u0441 3,5 RTT \u0434\u043e 2 RTT \u2014 \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u0441\u0435\u0442\u0435\u0432\u043e\u0435 \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0432 2 \u0440\u0430\u0437\u0430 \u0431\u044b\u0441\u0442\u0440\u0435\u0435.\n\n\u0418\u0442\u0430\u043a, \u0432\u0441\u0435 \u043d\u0430\u0448\u0438 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u044b \u043d\u0430 \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u043c \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0438: '\u043a\u0442\u043e \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043f\u0435\u0440\u0432\u044b\u043c'. \u0415\u0441\u043b\u0438 \u043a\u043b\u0438\u0435\u043d\u0442 \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043f\u0435\u0440\u0432\u044b\u043c, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0432\u0441\u0435 \u044d\u0442\u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 + \u0440\u0443\u043a\u043e\u043f\u043e\u0436\u0430\u0442\u0438\u0435 + \u0437\u0430\u043f\u0440\u043e\u0441 \u0432 \u043e\u0434\u043d\u043e\u043c TFO-\u043f\u0430\u043a\u0435\u0442\u0435. \u0411\u043e\u043b\u0435\u0435 \u0442\u043e\u0433\u043e, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u043d\u0430\u0447\u0430\u043b\u043e \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u0430\u043a\u0435\u0442\u0430 \u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b. \u0412\u043e\u0442 \u043f\u043e\u0447\u0435\u043c\u0443 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043a \u043e\u0434\u043d\u043e\u043c\u0443 \u0438 \u0442\u043e\u043c\u0443 \u0436\u0435 \u043f\u043e\u0440\u0442\u0443 \u0447\u0435\u0440\u0435\u0437 API/http/https. \u0415\u0441\u043b\u0438 \u0434\u0435\u043c\u043e\u043d \u0434\u043e\u043b\u0436\u0435\u043d \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043f\u0435\u0440\u0432\u044b\u043c, \u0432\u0441\u0435 \u044d\u0442\u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b, \u0438 \u043c\u0443\u043b\u044c\u0442\u0438\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u0442\u0430\u043a\u0436\u0435 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u0435\u043d. \u0412\u043e\u0442 \u043f\u043e\u0447\u0435\u043c\u0443 \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u043f\u043e\u0440\u0442 \u0434\u043b\u044f MySQL \u0438 \u043c\u044b \u043d\u0435 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u043b\u0438 \u0435\u0433\u043e \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430\u043c\u0438 \u0432 \u043e\u0434\u0438\u043d \u043f\u043e\u0440\u0442. \u0412\u043d\u0435\u0437\u0430\u043f\u043d\u043e, \u0441\u0440\u0435\u0434\u0438 \u0432\u0441\u0435\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432, \u043e\u0434\u0438\u043d \u0431\u044b\u043b \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u0441 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c, \u0447\u0442\u043e \u0434\u0435\u043c\u043e\u043d \u0434\u043e\u043b\u0436\u0435\u043d \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0440\u0443\u043a\u043e\u043f\u043e\u0436\u0430\u0442\u0438\u0435 \u043f\u0435\u0440\u0432\u044b\u043c. \u0422\u043e \u0435\u0441\u0442\u044c \u2014 \u043d\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0439. \u042d\u0442\u043e \u043f\u043b\u0430\u0433\u0438\u043d SphinxSE \u0434\u043b\u044f mysql/mariadb. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u043c\u044b \u0432\u044b\u0434\u0435\u043b\u0438\u043b\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 `sphinx` \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c. \u0410 \u0438\u043c\u0435\u043d\u043d\u043e: \u043e\u0431\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0443\u044e\u0442 `TCP_NODELAY` \u0438 \u043e\u0431\u043c\u0435\u043d\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u043c\u0438 \u043f\u0430\u043a\u0435\u0442\u0430\u043c\u0438. \u0414\u0435\u043c\u043e\u043d \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u0432\u043e\u0435 \u0440\u0443\u043a\u043e\u043f\u043e\u0436\u0430\u0442\u0438\u0435 \u043f\u0440\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438, \u0437\u0430\u0442\u0435\u043c \u043a\u043b\u0438\u0435\u043d\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u0432\u043e\u0435, \u0438 \u0437\u0430\u0442\u0435\u043c \u0432\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043e\u0431\u044b\u0447\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c. \u042d\u0442\u043e \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u043e, \u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u0415\u0441\u043b\u0438 \u0432\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 SphinxSE \u0434\u043b\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a Manticore \u2014 \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0441\u043b\u0443\u0448\u0430\u0442\u0435\u043b\u044c \u0441 \u044f\u0432\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u043c \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u043c `sphinx`. \u0414\u043b\u044f \u0434\u0440\u0443\u0433\u0438\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u2014 \u0438\u0437\u0431\u0435\u0433\u0430\u0439\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u0441\u043b\u0443\u0448\u0430\u0442\u0435\u043b\u044f, \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u043d \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u0435\u0435. \u0415\u0441\u043b\u0438 \u0432\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u0434\u0440\u0443\u0433\u0438\u0435 \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u044b Sphinx API \u2014 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435, \u043c\u043e\u0433\u0443\u0442 \u043b\u0438 \u043e\u043d\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u043d\u0435\u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u043c \u043c\u0443\u043b\u044c\u0442\u0438\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u044c\u043d\u044b\u043c \u043f\u043e\u0440\u0442\u043e\u043c. \u0414\u043b\u044f \u0441\u0432\u044f\u0437\u0438 \u043c\u0430\u0441\u0442\u0435\u0440-\u0430\u0433\u0435\u043d\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0435\u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0433\u043e (\u043c\u0443\u043b\u044c\u0442\u0438\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u044c\u043d\u043e\u0433\u043e) \u043f\u043e\u0440\u0442\u0430 \u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 TFO \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0435 \u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0445\u043e\u0440\u043e\u0448\u043e \u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e \u0443\u0441\u043a\u043e\u0440\u0438\u0442 \u0440\u0430\u0431\u043e\u0442\u0443 \u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e \u0431\u044d\u043a\u0435\u043d\u0434\u0430, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0435\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u043e\u0447\u0435\u043d\u044c \u043b\u0435\u0433\u043a\u0438\u0435 \u0438 \u0431\u044b\u0441\u0442\u0440\u044b\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b.\n\n\n### listen_tfo\n\n\u042d\u0442\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0444\u043b\u0430\u0433 TCP_FASTOPEN \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0441\u043b\u0443\u0448\u0430\u0442\u0435\u043b\u0435\u0439. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043e\u043d\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439, \u043d\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u044f\u0432\u043d\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f '0'.\n\n\u0414\u043b\u044f \u043e\u0431\u0449\u0435\u0433\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f TCP Fast Open, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435\u0441\u044c \u043a [\u0412\u0438\u043a\u0438\u043f\u0435\u0434\u0438\u0438](https://en.wikipedia.org/wiki/TCP_Fast_Open). \u0412\u043a\u0440\u0430\u0442\u0446\u0435, \u043e\u043d\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u0441\u0442\u0440\u0430\u043d\u0438\u0442\u044c \u043e\u0434\u0438\u043d TCP round-trip \u043f\u0440\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f.\n\n\u041d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 TFO \u0432\u043e \u043c\u043d\u043e\u0433\u0438\u0445 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f\u0445 \u043c\u043e\u0436\u0435\u0442 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0435\u0442\u0435\u0432\u0443\u044e \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u043a\u043b\u0438\u0435\u043d\u0442-\u0430\u0433\u0435\u043d\u0442, \u043a\u0430\u043a \u0435\u0441\u043b\u0438 \u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438\u0441\u044c [\u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u044b\u0435 \u0430\u0433\u0435\u043d\u0442\u044b](../Creating_a_table/Creating_a_distributed_table/Creating_a_local_distributed_table.md), \u043d\u043e \u0431\u0435\u0437 \u0443\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044f \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0431\u0435\u0437 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u043d\u0430 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439.\n\n\u0412 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u041e\u0421 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 TFO \u043e\u0431\u044b\u0447\u043d\u043e \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u043d\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435, \u043d\u043e \u044d\u0442\u043e \u043b\u0438\u0448\u044c '\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c', \u0430 \u043d\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e. Linux (\u043a\u0430\u043a \u0441\u0430\u043c\u044b\u0439 \u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0441\u0438\u0432\u043d\u044b\u0439) \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0435\u0433\u043e \u0441 2011 \u0433\u043e\u0434\u0430, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u044f\u0434\u0435\u0440 3.7 (\u0434\u043b\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b). Windows \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0435\u0433\u043e \u0441 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u0431\u043e\u0440\u043e\u043a Windows 10. \u0414\u0440\u0443\u0433\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b (FreeBSD, MacOS) \u0442\u0430\u043a\u0436\u0435 \u0432 \u0438\u0433\u0440\u0435.\n\n\u0414\u043b\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u0430 Linux \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e `/proc/sys/net/ipv4/tcp_fastopen` \u0438 \u0432\u0435\u0434\u0435\u0442 \u0441\u0435\u0431\u044f \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u043d\u0435\u0439. \u0411\u0438\u0442 0 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u043e\u0439, \u0431\u0438\u0442 1 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043b\u0443\u0448\u0430\u0442\u0435\u043b\u044f\u043c\u0438. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u044d\u0442\u043e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u0432 1, \u0442.\u0435. \u043a\u043b\u0438\u0435\u043d\u0442\u044b \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u044b, \u0441\u043b\u0443\u0448\u0430\u0442\u0435\u043b\u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u044b.\n\n### log\n\n\n\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 log \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0438\u043c\u044f \u0444\u0430\u0439\u043b\u0430 \u0436\u0443\u0440\u043d\u0430\u043b\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0432\u0441\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f `searchd`. \u0415\u0441\u043b\u0438 \u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u043e, \u0438\u043c\u044f \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u2014 'searchd.log'.\n\n\u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u044b \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c 'syslog' \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0438\u043c\u0435\u043d\u0438 \u0444\u0430\u0439\u043b\u0430. \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0431\u0443\u0434\u0443\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0434\u0435\u043c\u043e\u043d\u0443 syslog. \u0427\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u043f\u0446\u0438\u044e syslog, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c Manticore \u0441 \u043e\u043f\u0446\u0438\u0435\u0439 `-\u2013with-syslog` \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0441\u0431\u043e\u0440\u043a\u0438.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_37\n\n\n### max_batch_queries\n\n\n\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0435\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0432 \u043f\u0430\u043a\u0435\u0442\u0435. \u041d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430, \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 32.\n\n\u0417\u0430\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 searchd \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432, \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u0432 \u043e\u0434\u043d\u043e\u043c \u043f\u0430\u043a\u0435\u0442\u0435 \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 [\u043c\u0443\u043b\u044c\u0442\u0438\u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432](../Searching/Multi-queries.md). \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 0, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_38\n\n\n### max_connections\n\n\n\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0445 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043d\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043e. \u041e\u0431\u044b\u0447\u043d\u043e \u044d\u0442\u043e \u0437\u0430\u043c\u0435\u0442\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u043b\u044e\u0431\u043e\u0433\u043e \u0432\u0438\u0434\u0430 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u044b\u0445 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a \u0441\u0435\u0441\u0441\u0438\u0438 cli mysql \u0438\u043b\u0438 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u044b\u0435 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043e\u0442 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0445 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0442\u0430\u0431\u043b\u0438\u0446. \u041f\u0440\u0438 \u043f\u0440\u0435\u0432\u044b\u0448\u0435\u043d\u0438\u0438 \u043b\u0438\u043c\u0438\u0442\u0430 \u0432\u044b \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043a \u0441\u0435\u0440\u0432\u0435\u0440\u0443, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f [VIP-\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435](../Connecting_to_the_server/MySQL_protocol.md#VIP-connection). VIP-\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043d\u0435 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u043b\u0438\u043c\u0438\u0442\u0435.\n\n\nCODE_BLOCK_39\n\n\n\n### max_threads_per_query\n\n\n\u0413\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0439 \u0434\u043b\u044f \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 \u043b\u0438\u043c\u0438\u0442 \u043f\u043e\u0442\u043e\u043a\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u0434\u043d\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043c\u043e\u0433\u0443\u0442 \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c \u0432\u0441\u0435 \u044f\u0434\u0440\u0430 CPU, \u043d\u0435 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044f \u043c\u0435\u0441\u0442\u0430 \u0434\u043b\u044f \u0434\u0440\u0443\u0433\u0438\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, `call pq` \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u0435\u0440\u043a\u043e\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u043f\u043e\u0442\u043e\u043a\u0438 \u043d\u0430 \u0434\u0435\u0441\u044f\u0442\u043a\u0438 \u0441\u0435\u043a\u0443\u043d\u0434. \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 `max_threads_per_query` \u043d\u0430, \u0441\u043a\u0430\u0436\u0435\u043c, \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0443 \u043e\u0442 [threads](../Server_settings/Searchd.md#threads) \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442, \u0447\u0442\u043e \u0432\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043f\u0430\u0440\u0443 \u0442\u0430\u043a\u0438\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 `call pq` \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e.\n\n\u0412\u044b \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u044d\u0442\u0443 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u043a\u0430\u043a \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0441\u0435\u0441\u0441\u0438\u0438 \u0438\u043b\u0438 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u0443\u044e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f.\n\n\u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435\u043c \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043e\u043f\u0446\u0438\u0438 [threads OPTION](../Searching/Options.md#threads).\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\nCODE_BLOCK_40\n\n\n\n### max_filters\n\n\n\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432 \u043d\u0430 \u0437\u0430\u043f\u0440\u043e\u0441. \u042d\u0442\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0445 \u043f\u0440\u043e\u0432\u0435\u0440\u043e\u043a \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u0438 \u0438 \u043d\u0435 \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u0438\u043b\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c. \u041d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430, \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 256.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_41\n\n\n### max_filter_values" + }, + "is_code_or_comment": false, + "model": "deepseek/deepseek-v3.2", + "updated_at": 1773763265 + }, + "9dd7694766dafeb3ce9e02e8868f3251ca404ce0c73f19f01f08951a8de9ac03": { + "original": "\nThis configuration sets the maximum amount of RAM allocated for cached result sets in bytes. The default value is 16777216, which is equivalent to 16 megabytes. If the value is set to 0, the query cache is disabled. For more information about the query cache, please refer to the [query cache](../Searching/Query_cache.md) for details.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_55\n\n\n### qcache_thresh_msec\n\nInteger, in milliseconds. The minimum wall time threshold for a query result to be cached. Defaults to 3000, or 3 seconds. 0 means cache everything. Refer to [query cache](../Searching/Query_cache.md) for details. This value also may be expressed with time [special_suffixes](../Server_settings/Special_suffixes.md), but use it with care and don't confuse yourself with the name of the value itself, containing '_msec'.\n\n### qcache_ttl_sec\n\nInteger, in seconds. The expiration period for a cached result set. Defaults to 60, or 1 minute. The minimum possible value is 1 second. Refer to [query cache](../Searching/Query_cache.md) for details. This value also may be expressed with time [special_suffixes](../Server_settings/Special_suffixes.md), but use it with care and don't confuse yourself with the name of the value itself, containing '_sec'.\n\n### query_log_format\n\n\nQuery log format. Optional, allowed values are `plain` and `sphinxql`, default is `sphinxql`.\n\nThe `sphinxql` mode logs valid SQL statements. The `plain` mode logs queries in a plain text format (mostly suitable for purely full-text use cases). This directive allows you to switch between the two formats on search server startup. The log format can also be altered on the fly, using `SET GLOBAL query_log_format=sphinxql` syntax. Refer to [Query logging](../Logging/Query_logging.md) for more details.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_56\n\n\n### query_log_min_msec\n\nLimit (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 (this value also may be expressed with time [special_suffixes](../Server_settings/Special_suffixes.md), but use it with care and don't confuse yourself with the name of the value itself, containing `_msec`).\n\n### query_log\n\n\nQuery log file name. Optional, default is empty (do not log queries). All search queries (such as SELECT ... but not INSERT/REPLACE/UPDATE queries) will be logged in this file. The format is described in [Query logging](../Logging/Query_logging.md). In case of 'plain' format, you can use 'syslog' as the path to the log file. In this case, all search queries will be sent to the syslog daemon with `LOG_INFO` priority, prefixed with '[query]' instead of timestamp. To use the syslog option, Manticore must be configured with `-\u2013with-syslog` on building.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_57\n\n\n### query_log_mode\n\n\nThe query_log_mode directive allows you to set a different permission for the searchd and query log files. By default, these log files are created with 600 permission, meaning that only the user under which the server runs and root users can read the log files.\nThis directive can be handy if you want to allow other users to read the log files, for example, monitoring solutions running on non-root users.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_58\n\n\n### read_buffer_docs\n\n\nThe read_buffer_docs directive controls the per-keyword read buffer size for document lists. For every keyword occurrence in every search query, there are two associated read buffers: one for the document list and one for the hit list. This setting lets you control the document list buffer size.\n\nA larger buffer size might increase per-query RAM use, but it could possibly decrease I/O time. It makes sense to set larger values for slow storage, but for storage capable of high IOPS, experimenting should be done in the low values area.\n\nThe default value is 256K, and the minimal value is 8K. You may also set [read_buffer_docs](../Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#read_buffer_docs) on a per-table basis, which will override anything set on the server's config level.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_59\n\n\n### read_buffer_hits\n\n\nThe read_buffer_hits directive specifies the per-keyword read buffer size for hit lists in search queries. By default, the size is 256K and the minimum value is 8K. For every keyword occurrence in a search query, there are two associated read buffers, one for the document list and one for the hit list. Increasing the buffer size can increase per-query RAM use but decrease I/O time. For slow storage, larger buffer sizes make sense, while for storage capable of high IOPS, experimenting should be done in the low values area.\n\nThis setting can also be specified on a per-table basis using the read_buffer_hits option in [read_buffer_hits](../Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#read_buffer_hits) which will override the server-level setting.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_60\n\n\n### read_unhinted\n\n\nUnhinted read size. Optional, default is 32K, minimal 1K", + "translations": { + "russian": "\n\u042d\u0442\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043c \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438, \u0432\u044b\u0434\u0435\u043b\u044f\u0435\u043c\u043e\u0439 \u0434\u043b\u044f \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043d\u0430\u0431\u043e\u0440\u043e\u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432, \u0432 \u0431\u0430\u0439\u0442\u0430\u0445. \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u2014 16777216, \u0447\u0442\u043e \u044d\u043a\u0432\u0438\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e 16 \u043c\u0435\u0433\u0430\u0431\u0430\u0439\u0442\u0430\u043c. \u0415\u0441\u043b\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e \u0432 0, \u043a\u044d\u0448 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d. \u0414\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u043a\u044d\u0448\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435\u0441\u044c \u043a \u0440\u0430\u0437\u0434\u0435\u043b\u0443 [\u043a\u044d\u0448 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432](../Searching/Query_cache.md) \u0434\u043b\u044f \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0435\u0439.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_55\n\n\n### qcache_thresh_msec\n\n\u0426\u0435\u043b\u043e\u0435 \u0447\u0438\u0441\u043b\u043e, \u0432 \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u0430\u0445. \u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0440\u043e\u0433 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0434\u043b\u044f \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0435\u0433\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 3000, \u0438\u043b\u0438 3 \u0441\u0435\u043a\u0443\u043d\u0434\u044b. 0 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0451. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 [\u043a\u044d\u0448 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432](../Searching/Query_cache.md). \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 [\u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u0443\u0444\u0444\u0438\u043a\u0441\u043e\u0432](../Server_settings/Special_suffixes.md), \u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u044d\u0442\u043e \u0441 \u043e\u0441\u0442\u043e\u0440\u043e\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u0438 \u043d\u0435 \u043f\u0443\u0442\u0430\u0439\u0442\u0435\u0441\u044c \u0441 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c \u0441\u0430\u043c\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u043c '_msec'.\n\n### qcache_ttl_sec\n\n\u0426\u0435\u043b\u043e\u0435 \u0447\u0438\u0441\u043b\u043e, \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0430\u0445. \u0421\u0440\u043e\u043a \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043d\u0430\u0431\u043e\u0440\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 60, \u0438\u043b\u0438 1 \u043c\u0438\u043d\u0443\u0442\u0430. \u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u2014 1 \u0441\u0435\u043a\u0443\u043d\u0434\u0430. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 [\u043a\u044d\u0448 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432](../Searching/Query_cache.md). \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 [\u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u0443\u0444\u0444\u0438\u043a\u0441\u043e\u0432](../Server_settings/Special_suffixes.md), \u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u044d\u0442\u043e \u0441 \u043e\u0441\u0442\u043e\u0440\u043e\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u0438 \u043d\u0435 \u043f\u0443\u0442\u0430\u0439\u0442\u0435\u0441\u044c \u0441 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c \u0441\u0430\u043c\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u043c '_sec'.\n\n### query_log_format\n\n\n\u0424\u043e\u0440\u043c\u0430\u0442 \u0436\u0443\u0440\u043d\u0430\u043b\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432. \u041d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440, \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f: `plain` \u0438 `sphinxql`, \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e `sphinxql`.\n\n\u0420\u0435\u0436\u0438\u043c `sphinxql` \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0435 SQL-\u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f. \u0420\u0435\u0436\u0438\u043c `plain` \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u0430 (\u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0434\u043b\u044f \u0447\u0438\u0441\u0442\u043e \u043f\u043e\u043b\u043d\u043e\u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f). \u042d\u0442\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u044c\u0441\u044f \u043c\u0435\u0436\u0434\u0443 \u0434\u0432\u0443\u043c\u044f \u0444\u043e\u0440\u043c\u0430\u0442\u0430\u043c\u0438 \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430. \u0424\u043e\u0440\u043c\u0430\u0442 \u0436\u0443\u0440\u043d\u0430\u043b\u0430 \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0430 \u043b\u0435\u0442\u0443, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 `SET GLOBAL query_log_format=sphinxql`. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0441\u043c. \u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 [\u0416\u0443\u0440\u043d\u0430\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432](../Logging/Query_logging.md).\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_56\n\n\n### query_log_min_msec\n\n\u041b\u0438\u043c\u0438\u0442 (\u0432 \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u0430\u0445), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0437\u0430\u043f\u0438\u0441\u044c \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0432 \u0436\u0443\u0440\u043d\u0430\u043b \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432. \u041d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440, \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 0 (\u0432\u0441\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u0436\u0443\u0440\u043d\u0430\u043b \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432). \u042d\u0442\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u0430 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f, \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u044e\u0449\u0438\u043c \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0439 \u043b\u0438\u043c\u0438\u0442, \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0436\u0443\u0440\u043d\u0430\u043b (\u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 [\u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u0443\u0444\u0444\u0438\u043a\u0441\u043e\u0432](../Server_settings/Special_suffixes.md), \u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u044d\u0442\u043e \u0441 \u043e\u0441\u0442\u043e\u0440\u043e\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u0438 \u043d\u0435 \u043f\u0443\u0442\u0430\u0439\u0442\u0435\u0441\u044c \u0441 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c \u0441\u0430\u043c\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u043c `_msec`).\n\n### query_log\n\n\n\u0418\u043c\u044f \u0444\u0430\u0439\u043b\u0430 \u0436\u0443\u0440\u043d\u0430\u043b\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432. \u041d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440, \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043f\u0443\u0441\u0442\u043e (\u043d\u0435 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0432 \u0436\u0443\u0440\u043d\u0430\u043b). \u0412\u0441\u0435 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b (\u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a SELECT ..., \u043d\u043e \u043d\u0435 INSERT/REPLACE/UPDATE) \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u044d\u0442\u043e\u0442 \u0444\u0430\u0439\u043b. \u0424\u043e\u0440\u043c\u0430\u0442 \u043e\u043f\u0438\u0441\u0430\u043d \u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 [\u0416\u0443\u0440\u043d\u0430\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432](../Logging/Query_logging.md). \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u0430 'plain' \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c 'syslog' \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0443\u0442\u0438 \u043a \u0444\u0430\u0439\u043b\u0443 \u0436\u0443\u0440\u043d\u0430\u043b\u0430. \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u0441\u0435 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0431\u0443\u0434\u0443\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0434\u0435\u043c\u043e\u043d\u0443 syslog \u0441 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043e\u043c `LOG_INFO`, \u0441 \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u043e\u043c '[query]' \u0432\u043c\u0435\u0441\u0442\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u043c\u0435\u0442\u043a\u0438. \u0427\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u043f\u0446\u0438\u044e syslog, Manticore \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0441\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d \u0441 `-\u2013with-syslog` \u043f\u0440\u0438 \u0441\u0431\u043e\u0440\u043a\u0435.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_57\n\n\n### query_log_mode\n\n\n\u0414\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u0430 query_log_mode \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u0440\u0430\u0432\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0434\u043b\u044f \u0444\u0430\u0439\u043b\u043e\u0432 \u0436\u0443\u0440\u043d\u0430\u043b\u043e\u0432 searchd \u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u044d\u0442\u0438 \u0444\u0430\u0439\u043b\u044b \u0436\u0443\u0440\u043d\u0430\u043b\u043e\u0432 \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u0441 \u043f\u0440\u0430\u0432\u0430\u043c\u0438 600, \u0447\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c, \u043f\u043e\u0434 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441\u0435\u0440\u0432\u0435\u0440, \u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 root \u043c\u043e\u0433\u0443\u0442 \u0447\u0438\u0442\u0430\u0442\u044c \u0444\u0430\u0439\u043b\u044b \u0436\u0443\u0440\u043d\u0430\u043b\u043e\u0432.\n\u042d\u0442\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u0430, \u0435\u0441\u043b\u0438 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u0447\u0438\u0442\u0430\u0442\u044c \u0444\u0430\u0439\u043b\u044b \u0436\u0443\u0440\u043d\u0430\u043b\u043e\u0432, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u043c \u043f\u043e\u0434 \u043d\u0435\u043f\u0440\u0438\u0432\u0438\u043b\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c\u0438.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_58\n\n\n### read_buffer_docs\n\n\n\u0414\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u0430 read_buffer_docs \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c \u0431\u0443\u0444\u0435\u0440\u0430 \u0447\u0442\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0441\u043f\u0438\u0441\u043a\u043e\u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0430 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e. \u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430 \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u043e\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u0435 \u0435\u0441\u0442\u044c \u0434\u0432\u0430 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0431\u0443\u0444\u0435\u0440\u0430 \u0447\u0442\u0435\u043d\u0438\u044f: \u043e\u0434\u0438\u043d \u0434\u043b\u044f \u0441\u043f\u0438\u0441\u043a\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0438 \u043e\u0434\u0438\u043d \u0434\u043b\u044f \u0441\u043f\u0438\u0441\u043a\u0430 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0439. \u042d\u0442\u043e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c \u0431\u0443\u0444\u0435\u0440\u0430 \u0441\u043f\u0438\u0441\u043a\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432.\n\n\u0411\u043e\u043b\u044c\u0448\u0438\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0431\u0443\u0444\u0435\u0440\u0430 \u043c\u043e\u0436\u0435\u0442 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u043d\u0430 \u0437\u0430\u043f\u0440\u043e\u0441, \u043d\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442 \u0432\u0440\u0435\u043c\u044f \u0432\u0432\u043e\u0434\u0430-\u0432\u044b\u0432\u043e\u0434\u0430. \u0418\u043c\u0435\u0435\u0442 \u0441\u043c\u044b\u0441\u043b \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f, \u043d\u043e \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449 \u0441 \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e IOPS \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u044b \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u044c \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u043d\u0438\u0437\u043a\u0438\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439.\n\n\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u2014 256K, \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u2014 8K. \u0412\u044b \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c [read_buffer_docs](../Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#read_buffer_docs) \u0434\u043b\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u0447\u0442\u043e \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442 \u043b\u044e\u0431\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_59\n\n\n### read_buffer_hits\n\n\n\u0414\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u0430 read_buffer_hits \u0437\u0430\u0434\u0430\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0440 \u0431\u0443\u0444\u0435\u0440\u0430 \u0447\u0442\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0441\u043f\u0438\u0441\u043a\u043e\u0432 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0439 \u043d\u0430 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e \u0432 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u0445. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0440\u0430\u0437\u043c\u0435\u0440 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 256K, \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u2014 8K. \u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430 \u0432 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u043e\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u0435 \u0435\u0441\u0442\u044c \u0434\u0432\u0430 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0431\u0443\u0444\u0435\u0440\u0430 \u0447\u0442\u0435\u043d\u0438\u044f: \u043e\u0434\u0438\u043d \u0434\u043b\u044f \u0441\u043f\u0438\u0441\u043a\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0438 \u043e\u0434\u0438\u043d \u0434\u043b\u044f \u0441\u043f\u0438\u0441\u043a\u0430 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0439. \u0423\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0431\u0443\u0444\u0435\u0440\u0430 \u043c\u043e\u0436\u0435\u0442 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u043d\u0430 \u0437\u0430\u043f\u0440\u043e\u0441, \u043d\u043e \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u044f \u0432\u0432\u043e\u0434\u0430-\u0432\u044b\u0432\u043e\u0434\u0430. \u0414\u043b\u044f \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0438\u043c\u0435\u0435\u0442 \u0441\u043c\u044b\u0441\u043b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u0431\u0443\u0444\u0435\u0440\u0430, \u0432 \u0442\u043e \u0432\u0440\u0435\u043c\u044f \u043a\u0430\u043a \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449 \u0441 \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e IOPS \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u044b \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u044c \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u043d\u0438\u0437\u043a\u0438\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439.\n\n\u042d\u0442\u043e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0443\u043a\u0430\u0437\u0430\u043d \u0434\u043b\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043e\u043f\u0446\u0438\u0438 read_buffer_hits \u0432 [read_buffer_hits](../Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#read_buffer_hits), \u0447\u0442\u043e \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u0430.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_60\n\n\n### read_unhinted\n\n\n\u0420\u0430\u0437\u043c\u0435\u0440 \u0447\u0442\u0435\u043d\u0438\u044f \u0431\u0435\u0437 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043e\u043a. \u041d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440, \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 32K, \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 1K", + "chinese": "\n\u6b64\u914d\u7f6e\u8bbe\u7f6e\u5206\u914d\u7ed9\u7f13\u5b58\u7ed3\u679c\u96c6\u7684\u6700\u5927 RAM \u91cf\uff08\u4ee5\u5b57\u8282\u4e3a\u5355\u4f4d\uff09\u3002\u9ed8\u8ba4\u503c\u4e3a 16777216\uff0c\u76f8\u5f53\u4e8e 16 \u5146\u5b57\u8282\u3002\u5982\u679c\u503c\u8bbe\u7f6e\u4e3a 0\uff0c\u5219\u67e5\u8be2\u7f13\u5b58\u5c06\u88ab\u7981\u7528\u3002\u6709\u5173\u67e5\u8be2\u7f13\u5b58\u7684\u66f4\u591a\u4fe1\u606f\uff0c\u8bf7\u53c2\u9605 [\u67e5\u8be2\u7f13\u5b58](../Searching/Query_cache.md) \u4e86\u89e3\u8be6\u7ec6\u4fe1\u606f\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_55\n\n\n### qcache_thresh_msec\n\n\u6574\u6570\uff0c\u4ee5\u6beb\u79d2\u4e3a\u5355\u4f4d\u3002\u67e5\u8be2\u7ed3\u679c\u88ab\u7f13\u5b58\u7684\u6700\u5c0f\u5899\u65f6\u95f4\u9608\u503c\u3002\u9ed8\u8ba4\u503c\u4e3a 3000\uff0c\u5373 3 \u79d2\u30020 \u8868\u793a\u7f13\u5b58\u6240\u6709\u5185\u5bb9\u3002\u6709\u5173\u8be6\u7ec6\u4fe1\u606f\uff0c\u8bf7\u53c2\u9605 [\u67e5\u8be2\u7f13\u5b58](../Searching/Query_cache.md)\u3002\u6b64\u503c\u4e5f\u53ef\u4ee5\u4f7f\u7528\u65f6\u95f4 [\u7279\u6b8a\u540e\u7f00](../Server_settings/Special_suffixes.md) \u8868\u793a\uff0c\u4f46\u4f7f\u7528\u65f6\u9700\u8c28\u614e\uff0c\u5e76\u4e0d\u8981\u4e0e\u503c\u672c\u8eab\u540d\u79f0\u4e2d\u7684 '_msec' \u6df7\u6dc6\u3002\n\n### qcache_ttl_sec\n\n\u6574\u6570\uff0c\u4ee5\u79d2\u4e3a\u5355\u4f4d\u3002\u7f13\u5b58\u7ed3\u679c\u96c6\u7684\u8fc7\u671f\u65f6\u95f4\u3002\u9ed8\u8ba4\u503c\u4e3a 60\uff0c\u5373 1 \u5206\u949f\u3002\u6700\u5c0f\u53ef\u80fd\u503c\u4e3a 1 \u79d2\u3002\u6709\u5173\u8be6\u7ec6\u4fe1\u606f\uff0c\u8bf7\u53c2\u9605 [\u67e5\u8be2\u7f13\u5b58](../Searching/Query_cache.md)\u3002\u6b64\u503c\u4e5f\u53ef\u4ee5\u4f7f\u7528\u65f6\u95f4 [\u7279\u6b8a\u540e\u7f00](../Server_settings/Special_suffixes.md) \u8868\u793a\uff0c\u4f46\u4f7f\u7528\u65f6\u9700\u8c28\u614e\uff0c\u5e76\u4e0d\u8981\u4e0e\u503c\u672c\u8eab\u540d\u79f0\u4e2d\u7684 '_sec' \u6df7\u6dc6\u3002\n\n### query_log_format\n\n\n\u67e5\u8be2\u65e5\u5fd7\u683c\u5f0f\u3002\u53ef\u9009\uff0c\u5141\u8bb8\u7684\u503c\u4e3a `plain` \u548c `sphinxql`\uff0c\u9ed8\u8ba4\u4e3a `sphinxql`\u3002\n\n`sphinxql` \u6a21\u5f0f\u4f1a\u8bb0\u5f55\u6709\u6548\u7684 SQL \u8bed\u53e5\u3002`plain` \u6a21\u5f0f\u4ee5\u7eaf\u6587\u672c\u683c\u5f0f\u8bb0\u5f55\u67e5\u8be2\uff08\u4e3b\u8981\u9002\u7528\u4e8e\u7eaf\u5168\u6587\u641c\u7d22\u7528\u4f8b\uff09\u3002\u6b64\u6307\u4ee4\u5141\u8bb8\u60a8\u5728\u641c\u7d22\u670d\u52a1\u5668\u542f\u52a8\u65f6\u5728\u4e24\u79cd\u683c\u5f0f\u4e4b\u95f4\u5207\u6362\u3002\u4e5f\u53ef\u4ee5\u4f7f\u7528 `SET GLOBAL query_log_format=sphinxql` \u8bed\u6cd5\u5728\u8fd0\u884c\u65f6\u66f4\u6539\u65e5\u5fd7\u683c\u5f0f\u3002\u6709\u5173\u66f4\u591a\u8be6\u7ec6\u4fe1\u606f\uff0c\u8bf7\u53c2\u9605 [\u67e5\u8be2\u65e5\u5fd7](../Logging/Query_logging.md)\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_56\n\n\n### query_log_min_msec\n\n\u9650\u5236\uff08\u4ee5\u6beb\u79d2\u4e3a\u5355\u4f4d\uff09\uff0c\u9632\u6b62\u67e5\u8be2\u88ab\u5199\u5165\u67e5\u8be2\u65e5\u5fd7\u3002\u53ef\u9009\uff0c\u9ed8\u8ba4\u503c\u4e3a 0\uff08\u6240\u6709\u67e5\u8be2\u90fd\u4f1a\u88ab\u5199\u5165\u67e5\u8be2\u65e5\u5fd7\uff09\u3002\u6b64\u6307\u4ee4\u6307\u5b9a\u53ea\u6709\u6267\u884c\u65f6\u95f4\u8d85\u8fc7\u6307\u5b9a\u9650\u5236\u7684\u67e5\u8be2\u624d\u4f1a\u88ab\u8bb0\u5f55\uff08\u6b64\u503c\u4e5f\u53ef\u4ee5\u4f7f\u7528\u65f6\u95f4 [\u7279\u6b8a\u540e\u7f00](../Server_settings/Special_suffixes.md) \u8868\u793a\uff0c\u4f46\u4f7f\u7528\u65f6\u9700\u8c28\u614e\uff0c\u5e76\u4e0d\u8981\u4e0e\u503c\u672c\u8eab\u540d\u79f0\u4e2d\u7684 `_msec` \u6df7\u6dc6\uff09\u3002\n\n### query_log\n\n\n\u67e5\u8be2\u65e5\u5fd7\u6587\u4ef6\u540d\u3002\u53ef\u9009\uff0c\u9ed8\u8ba4\u4e3a\u7a7a\uff08\u4e0d\u8bb0\u5f55\u67e5\u8be2\uff09\u3002\u6240\u6709\u641c\u7d22\u67e5\u8be2\uff08\u5982 SELECT ... \u4f46\u4e0d\u5305\u62ec INSERT/REPLACE/UPDATE \u67e5\u8be2\uff09\u90fd\u4f1a\u8bb0\u5f55\u5728\u6b64\u6587\u4ef6\u4e2d\u3002\u683c\u5f0f\u5728 [\u67e5\u8be2\u65e5\u5fd7](../Logging/Query_logging.md) \u4e2d\u6709\u63cf\u8ff0\u3002\u5982\u679c\u4f7f\u7528 'plain' \u683c\u5f0f\uff0c\u53ef\u4ee5\u5c06 'syslog' \u4f5c\u4e3a\u65e5\u5fd7\u6587\u4ef6\u7684\u8def\u5f84\u3002\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0c\u6240\u6709\u641c\u7d22\u67e5\u8be2\u5c06\u4ee5 `LOG_INFO` \u4f18\u5148\u7ea7\u53d1\u9001\u5230 syslog \u5b88\u62a4\u8fdb\u7a0b\uff0c\u5e76\u4ee5\u524d\u7f00 '[query]' \u4ee3\u66ff\u65f6\u95f4\u6233\u3002\u8981\u4f7f\u7528 syslog \u9009\u9879\uff0cManticore \u5fc5\u987b\u5728\u6784\u5efa\u65f6\u914d\u7f6e\u4e3a `-\u2013with-syslog`\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_57\n\n\n### query_log_mode\n\n\nquery_log_mode \u6307\u4ee4\u5141\u8bb8\u60a8\u4e3a searchd \u548c\u67e5\u8be2\u65e5\u5fd7\u6587\u4ef6\u8bbe\u7f6e\u4e0d\u540c\u7684\u6743\u9650\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u8fd9\u4e9b\u65e5\u5fd7\u6587\u4ef6\u4ee5 600 \u6743\u9650\u521b\u5efa\uff0c\u8fd9\u610f\u5473\u7740\u53ea\u6709\u670d\u52a1\u5668\u8fd0\u884c\u7684\u7528\u6237\u548c root \u7528\u6237\u53ef\u4ee5\u8bfb\u53d6\u65e5\u5fd7\u6587\u4ef6\u3002\n\u5982\u679c\u5e0c\u671b\u5141\u8bb8\u5176\u4ed6\u7528\u6237\u8bfb\u53d6\u65e5\u5fd7\u6587\u4ef6\uff08\u4f8b\u5982\uff0c\u4ee5\u975e root \u7528\u6237\u8fd0\u884c\u7684\u76d1\u63a7\u89e3\u51b3\u65b9\u6848\uff09\uff0c\u6b64\u6307\u4ee4\u4f1a\u5f88\u6709\u7528\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_58\n\n\n### read_buffer_docs\n\n\nread_buffer_docs \u6307\u4ee4\u63a7\u5236\u6bcf\u4e2a\u5173\u952e\u8bcd\u7684\u6587\u6863\u5217\u8868\u8bfb\u53d6\u7f13\u51b2\u533a\u5927\u5c0f\u3002\u5bf9\u4e8e\u6bcf\u4e2a\u641c\u7d22\u67e5\u8be2\u4e2d\u7684\u6bcf\u4e2a\u5173\u952e\u8bcd\u51fa\u73b0\uff0c\u90fd\u6709\u4e24\u4e2a\u76f8\u5173\u7684\u8bfb\u53d6\u7f13\u51b2\u533a\uff1a\u4e00\u4e2a\u7528\u4e8e\u6587\u6863\u5217\u8868\uff0c\u4e00\u4e2a\u7528\u4e8e\u547d\u4e2d\u5217\u8868\u3002\u6b64\u8bbe\u7f6e\u5141\u8bb8\u60a8\u63a7\u5236\u6587\u6863\u5217\u8868\u7f13\u51b2\u533a\u5927\u5c0f\u3002\n\n\u66f4\u5927\u7684\u7f13\u51b2\u533a\u5927\u5c0f\u53ef\u80fd\u4f1a\u589e\u52a0\u6bcf\u4e2a\u67e5\u8be2\u7684 RAM \u4f7f\u7528\u91cf\uff0c\u4f46\u53ef\u80fd\u4f1a\u51cf\u5c11 I/O \u65f6\u95f4\u3002\u5bf9\u4e8e\u6162\u901f\u5b58\u50a8\uff0c\u8bbe\u7f6e\u8f83\u5927\u7684\u503c\u662f\u6709\u610f\u4e49\u7684\uff0c\u4f46\u5bf9\u4e8e\u80fd\u591f\u5b9e\u73b0\u9ad8 IOPS \u7684\u5b58\u50a8\uff0c\u5e94\u5728\u8f83\u4f4e\u503c\u8303\u56f4\u5185\u8fdb\u884c\u5b9e\u9a8c\u3002\n\n\u9ed8\u8ba4\u503c\u4e3a 256K\uff0c\u6700\u5c0f\u503c\u4e3a 8K\u3002\u60a8\u8fd8\u53ef\u4ee5\u5728\u6bcf\u4e2a\u8868\u7684\u57fa\u7840\u4e0a\u8bbe\u7f6e [read_buffer_docs](../Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#read_buffer_docs)\uff0c\u8fd9\u5c06\u8986\u76d6\u5728\u670d\u52a1\u5668\u914d\u7f6e\u7ea7\u522b\u8bbe\u7f6e\u7684\u4efb\u4f55\u5185\u5bb9\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_59\n\n\n### read_buffer_hits\n\n\nread_buffer_hits \u6307\u4ee4\u6307\u5b9a\u641c\u7d22\u67e5\u8be2\u4e2d\u6bcf\u4e2a\u5173\u952e\u8bcd\u7684\u547d\u4e2d\u5217\u8868\u8bfb\u53d6\u7f13\u51b2\u533a\u5927\u5c0f\u3002\u9ed8\u8ba4\u5927\u5c0f\u4e3a 256K\uff0c\u6700\u5c0f\u503c\u4e3a 8K\u3002\u5bf9\u4e8e\u6bcf\u4e2a\u641c\u7d22\u67e5\u8be2\u4e2d\u7684\u6bcf\u4e2a\u5173\u952e\u8bcd\u51fa\u73b0\uff0c\u90fd\u6709\u4e24\u4e2a\u76f8\u5173\u7684\u8bfb\u53d6\u7f13\u51b2\u533a\uff0c\u4e00\u4e2a\u7528\u4e8e\u6587\u6863\u5217\u8868\uff0c\u4e00\u4e2a\u7528\u4e8e\u547d\u4e2d\u5217\u8868\u3002\u589e\u52a0\u7f13\u51b2\u533a\u5927\u5c0f\u53ef\u80fd\u4f1a\u589e\u52a0\u6bcf\u4e2a\u67e5\u8be2\u7684 RAM \u4f7f\u7528\u91cf\uff0c\u4f46\u4f1a\u51cf\u5c11 I/O \u65f6\u95f4\u3002\u5bf9\u4e8e\u6162\u901f\u5b58\u50a8\uff0c\u8f83\u5927\u7684\u7f13\u51b2\u533a\u5927\u5c0f\u662f\u6709\u610f\u4e49\u7684\uff0c\u800c\u5bf9\u4e8e\u80fd\u591f\u5b9e\u73b0\u9ad8 IOPS \u7684\u5b58\u50a8\uff0c\u5e94\u5728\u8f83\u4f4e\u503c\u8303\u56f4\u5185\u8fdb\u884c\u5b9e\u9a8c\u3002\n\n\u6b64\u8bbe\u7f6e\u4e5f\u53ef\u4ee5\u901a\u8fc7 [read_buffer_hits](../Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#read_buffer_hits) \u4e2d\u7684 read_buffer_hits \u9009\u9879\u5728\u6bcf\u4e2a\u8868\u7684\u57fa\u7840\u4e0a\u6307\u5b9a\uff0c\u8fd9\u5c06\u8986\u76d6\u670d\u52a1\u5668\u7ea7\u522b\u7684\u8bbe\u7f6e\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_60\n\n\n### read_unhinted\n\n\n\u672a\u63d0\u793a\u7684\u8bfb\u53d6\u5927\u5c0f\u3002\u53ef\u9009\uff0c\u9ed8\u8ba4\u503c\u4e3a 32K\uff0c\u6700\u5c0f\u503c\u4e3a 1K" + }, + "is_code_or_comment": false, + "model": "qwen/qwen3-14b", + "updated_at": 1773763270 + }, + "0a79f22f222e8446cfffd81d01eff61f950288fe8afaf313105c1ca1a4cf3fad": { + "original": "\nWhen specified, this setting enables the [real-time mode](../Creating_a_table/Local_tables.md#Online-schema-management-%28RT-mode%29), which is an imperative way of managing data schema. The value should be a path to the directory where you want to store all your tables, binary logs, and everything else needed for the proper functioning of Manticore Search in this mode.\nIndexing of [plain tables](../Creating_a_table/Local_tables/Plain_table.md) is not allowed when the `data_dir` is specified. Read more about the difference between the RT mode and the plain mode in [this section](../Read_this_first.md#Real-time-table-vs-plain-table).\n\n\n##### Example:\n\n\n\nCODE_BLOCK_18\n\n\n### attr_autoconv_strict\n\n\nThis setting controls strict validation mode for string-to-number type conversions during INSERT and REPLACE operations. Optional, default is 0 (non-strict mode, backward compatible).\n\nWhen set to 1 (strict mode), invalid string-to-number conversions (e.g., converting an empty string `''` or non-numeric string `'a'` to a bigint attribute) will return errors instead of silently converting to 0. This helps catch data quality issues early during data insertion.\n\nWhen set to 0 (non-strict mode, default), invalid conversions will silently convert to 0, maintaining backward compatibility with older versions.\n\nStrict mode validates the following cases:\n* Empty strings or strings that cannot be converted\n* Strings with trailing non-numeric characters (e.g., `'123abc'`)\n* Numeric values that exceed type ranges (overflow/underflow)\n\n\n##### Example:\n\n\n\nCODE_BLOCK_19\n\n\n### diskchunk_flush_search_timeout\n\n\nThe timeout for preventing auto-flushing a RAM chunk if there are no searches in the table. Optional, default is 30 seconds.\n\nThe time to check for searches before determining whether to auto-flush.\nAuto-flushing will occur only if there has been at least one search in the table within the last `diskchunk_flush_search_timeout` seconds. Works in conjunction with [diskchunk_flush_write_timeout](../Server_settings/Searchd.md#diskchunk_flush_write_timeout). The corresponding [per-table setting](../Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#diskchunk_flush_search_timeout) has a higher priority and will override this instance-wide default, providing more fine-grained control.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_20\n\n\n### diskchunk_flush_write_timeout\n\n\nThe time in seconds to wait without a write before auto-flushing the RAM chunk to disk. Optional, default is 1 second.\n\nIf no write occurs in the RAM chunk within `diskchunk_flush_write_timeout` seconds, the chunk will be flushed to disk. Works in conjunction with [diskchunk_flush_search_timeout](../Server_settings/Searchd.md#diskchunk_flush_search_timeout). To disable auto-flush, set `diskchunk_flush_write_timeout = -1` explicitly in your configuration. The corresponding [per-table setting](../Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#diskchunk_flush_write_timeout) has a higher priority and will override this instance-wide default, providing more fine-grained control.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_21\n\n\n### docstore_cache_size\n\n\nThis setting specifies the maximum size of document blocks from document storage that are held in memory. It is optional, with a default value of 16m (16 megabytes).\n\nWhen `stored_fields` is used, document blocks are read from disk and uncompressed. Since every block typically holds several documents, it may be reused when processing the next document. For this purpose, the block is held in a server-wide cache. The cache holds uncompressed blocks.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_22\n\n\n### engine\n\n\nDefault attribute storage engine used when creating tables in RT mode. Can be `rowwise` (default) or `columnar`.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_23\n\n\n### expansion_limit\n\n\nThis setting determines the maximum number of expanded keywords for a single wildcard. It is optional, with a default value of 0 (no limit).\n\nWhen performing substring searches against tables built with `dict = keywords` enabled, a single wildcard may potentially result in thousands or even millions of matched keywords (think of matching `a*` against the entire Oxford dictionary). This directive allows you to limit the impact 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).\n\n\n##### Example:\n\n\n\nCODE_BLOCK_24\n\n\n### expansion_merge_threshold_docs\n\n\nThis setting determines the maximum number of documents in the expanded keyword that allows merging all such keywords together. It is optional, with a default value of 32.\n\nWhen performing substring searches against tables built with `dict = keywords` enabled, a single wildcard may potentially result in thousands or even millions of matched keywords. This directive allows you to increase the limit of how many keywords will merge together to speed up matching but uses more memory in the search.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_25\n\n\n### expansion_merge_threshold_hits\n\n\nThis setting determines the maximum number of hits in the expanded keyword that allows merging all such keywords together. It is optional, with a default value of 256.", + "translations": { + "russian": "\n\u041f\u0440\u0438 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0438 \u044d\u0442\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 [\u0440\u0435\u0436\u0438\u043c \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438](../Creating_a_table/Local_tables.md#Online-schema-management-%28RT-mode%29), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u043c\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0445\u0435\u043c\u043e\u0439 \u0434\u0430\u043d\u043d\u044b\u0445. \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043f\u0443\u0442\u0435\u043c \u043a \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0443, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432\u0441\u0435 \u0432\u0430\u0448\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0435 \u043b\u043e\u0433\u0438 \u0438 \u0432\u0441\u0451 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0435 \u0434\u043b\u044f \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f Manticore Search \u0432 \u044d\u0442\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435.\n\u0418\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 [\u043e\u0431\u044b\u0447\u043d\u044b\u0445 \u0442\u0430\u0431\u043b\u0438\u0446](../Creating_a_table/Local_tables/Plain_table.md) \u043d\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u043e, \u043a\u043e\u0433\u0434\u0430 \u0443\u043a\u0430\u0437\u0430\u043d `data_dir`. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0438 \u043c\u0435\u0436\u0434\u0443 \u0440\u0435\u0436\u0438\u043c\u043e\u043c RT \u0438 \u043e\u0431\u044b\u0447\u043d\u044b\u043c \u0440\u0435\u0436\u0438\u043c\u043e\u043c \u0447\u0438\u0442\u0430\u0439\u0442\u0435 \u0432 [\u044d\u0442\u043e\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435](../Read_this_first.md#Real-time-table-vs-plain-table).\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_18\n\n\n### attr_autoconv_strict\n\n\n\u042d\u0442\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u0442\u0440\u043e\u0433\u0438\u043c \u0440\u0435\u0436\u0438\u043c\u043e\u043c \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0434\u043b\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0439 \u0442\u0438\u043f\u0430 \u0441\u0442\u0440\u043e\u043a\u0430-\u0432-\u0447\u0438\u0441\u043b\u043e \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 INSERT \u0438 REPLACE. \u041d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u0430\u044f, \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 0 (\u043d\u0435\u0441\u0442\u0440\u043e\u0433\u0438\u0439 \u0440\u0435\u0436\u0438\u043c, \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b\u0439).\n\n\u041a\u043e\u0433\u0434\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 1 (\u0441\u0442\u0440\u043e\u0433\u0438\u0439 \u0440\u0435\u0436\u0438\u043c), \u043d\u0435\u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0442\u0440\u043e\u043a\u0430-\u0432-\u0447\u0438\u0441\u043b\u043e (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0443\u0441\u0442\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 `''` \u0438\u043b\u0438 \u043d\u0435\u0447\u0438\u0441\u043b\u043e\u0432\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 `'a'` \u0432 \u0430\u0442\u0440\u0438\u0431\u0443\u0442 bigint) \u0431\u0443\u0434\u0443\u0442 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438 \u0432\u043c\u0435\u0441\u0442\u043e \u0442\u0438\u0445\u043e\u0433\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0432 0. \u042d\u0442\u043e \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0432\u044b\u044f\u0432\u043b\u044f\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0441 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 \u0440\u0430\u043d\u043d\u0435\u043c \u044d\u0442\u0430\u043f\u0435 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u0441\u0442\u0430\u0432\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445.\n\n\u041a\u043e\u0433\u0434\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 0 (\u043d\u0435\u0441\u0442\u0440\u043e\u0433\u0438\u0439 \u0440\u0435\u0436\u0438\u043c, \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e), \u043d\u0435\u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u0443\u0434\u0443\u0442 \u0442\u0438\u0445\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0432 0, \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044f \u043e\u0431\u0440\u0430\u0442\u043d\u0443\u044e \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c \u0441\u043e \u0441\u0442\u0430\u0440\u044b\u043c\u0438 \u0432\u0435\u0440\u0441\u0438\u044f\u043c\u0438.\n\n\u0421\u0442\u0440\u043e\u0433\u0438\u0439 \u0440\u0435\u0436\u0438\u043c \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0441\u043b\u0443\u0447\u0430\u0438:\n* \u041f\u0443\u0441\u0442\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0438\u043b\u0438 \u0441\u0442\u0440\u043e\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u044b\n* \u0421\u0442\u0440\u043e\u043a\u0438 \u0441 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u044e\u0449\u0438\u043c\u0438 \u043d\u0435\u0447\u0438\u0441\u043b\u043e\u0432\u044b\u043c\u0438 \u0441\u0438\u043c\u0432\u043e\u043b\u0430\u043c\u0438 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, `'123abc'`)\n* \u0427\u0438\u0441\u043b\u043e\u0432\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u044e\u0449\u0438\u0435 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u044b \u0442\u0438\u043f\u0430 (\u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435/\u043d\u0435\u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435)\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_19\n\n\n### diskchunk_flush_search_timeout\n\n\n\u0422\u0430\u0439\u043c\u0430\u0443\u0442 \u0434\u043b\u044f \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0438 RAM-\u0447\u0430\u043d\u043a\u0430, \u0435\u0441\u043b\u0438 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u043d\u0435\u0442 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432. \u041d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439, \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 30 \u0441\u0435\u043a\u0443\u043d\u0434.\n\n\u0412\u0440\u0435\u043c\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043d\u0430\u043b\u0438\u0447\u0438\u044f \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043f\u0435\u0440\u0435\u0434 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0438.\n\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0430 \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0435\u0441\u043b\u0438 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0431\u044b\u043b \u0445\u043e\u0442\u044f \u0431\u044b \u043e\u0434\u0438\u043d \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 `diskchunk_flush_search_timeout` \u0441\u0435\u043a\u0443\u043d\u0434. \u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e \u0441 [diskchunk_flush_write_timeout](../Server_settings/Searchd.md#diskchunk_flush_write_timeout). \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0430\u044f [\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b](../Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#diskchunk_flush_search_timeout) \u0438\u043c\u0435\u0435\u0442 \u0431\u043e\u043b\u0435\u0435 \u0432\u044b\u0441\u043e\u043a\u0438\u0439 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442 \u0438 \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442 \u044d\u0442\u043e \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0434\u043b\u044f \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430, \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u044f \u0431\u043e\u043b\u0435\u0435 \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_20\n\n\n### diskchunk_flush_write_timeout\n\n\n\u0412\u0440\u0435\u043c\u044f \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0430\u0445 \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f \u0431\u0435\u0437 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0437\u0430\u043f\u0438\u0441\u0438 \u043f\u0435\u0440\u0435\u0434 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u043e\u0439 RAM-\u0447\u0430\u043d\u043a\u0430 \u043d\u0430 \u0434\u0438\u0441\u043a. \u041d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439, \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 1 \u0441\u0435\u043a\u0443\u043d\u0434\u0430.\n\n\u0415\u0441\u043b\u0438 \u0432 RAM-\u0447\u0430\u043d\u043a\u0435 \u043d\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 `diskchunk_flush_write_timeout` \u0441\u0435\u043a\u0443\u043d\u0434, \u0447\u0430\u043d\u043a \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u0440\u0443\u0436\u0435\u043d \u043d\u0430 \u0434\u0438\u0441\u043a. \u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e \u0441 [diskchunk_flush_search_timeout](../Server_settings/Searchd.md#diskchunk_flush_search_timeout). \u0427\u0442\u043e\u0431\u044b \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0443, \u044f\u0432\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 `diskchunk_flush_write_timeout = -1` \u0432 \u0432\u0430\u0448\u0435\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438. \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0430\u044f [\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b](../Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#diskchunk_flush_write_timeout) \u0438\u043c\u0435\u0435\u0442 \u0431\u043e\u043b\u0435\u0435 \u0432\u044b\u0441\u043e\u043a\u0438\u0439 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442 \u0438 \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442 \u044d\u0442\u043e \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0434\u043b\u044f \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430, \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u044f \u0431\u043e\u043b\u0435\u0435 \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_21\n\n\n### docstore_cache_size\n\n\n\u042d\u0442\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0431\u043b\u043e\u043a\u043e\u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0438\u0437 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0432 \u043f\u0430\u043c\u044f\u0442\u0438. \u041e\u043d\u0430 \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u0430, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u2014 16m (16 \u043c\u0435\u0433\u0430\u0431\u0430\u0439\u0442).\n\n\u041f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 `stored_fields` \u0431\u043b\u043e\u043a\u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0441 \u0434\u0438\u0441\u043a\u0430 \u0438 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u044e\u0442\u0441\u044f. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043a\u0430\u0436\u0434\u044b\u0439 \u0431\u043b\u043e\u043a \u043e\u0431\u044b\u0447\u043d\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d \u043f\u0440\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430. \u0414\u043b\u044f \u044d\u0442\u043e\u0439 \u0446\u0435\u043b\u0438 \u0431\u043b\u043e\u043a \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0432 \u043a\u044d\u0448\u0435 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u0430. \u041a\u044d\u0448 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0431\u043b\u043e\u043a\u0438.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_22\n\n\n### engine\n\n\n\u0414\u0432\u0438\u0436\u043e\u043a \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0439 \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0442\u0430\u0431\u043b\u0438\u0446 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 RT. \u041c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c `rowwise` (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e) \u0438\u043b\u0438 `columnar`.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_23\n\n\n### expansion_limit\n\n\n\u042d\u0442\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044b\u0445 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0441\u043b\u043e\u0432 \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u0447\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u043a\u0430. \u041e\u043d\u0430 \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u0430, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u2014 0 (\u0431\u0435\u0437 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f).\n\n\u041f\u0440\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u043f\u043e\u0438\u0441\u043a\u0430 \u043f\u043e \u043f\u043e\u0434\u0441\u0442\u0440\u043e\u043a\u0435 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u0445, \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0445 \u0441 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u043c `dict = keywords`, \u043e\u0434\u0438\u043d \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u0447\u043d\u044b\u0439 \u0437\u043d\u0430\u043a \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a \u0442\u044b\u0441\u044f\u0447\u0430\u043c \u0438\u043b\u0438 \u0434\u0430\u0436\u0435 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430\u043c \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0449\u0438\u0445 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0441\u043b\u043e\u0432 (\u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0441\u0435\u0431\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 `a*` \u0432\u0441\u0435\u043c\u0443 \u041e\u043a\u0441\u0444\u043e\u0440\u0434\u0441\u043a\u043e\u043c\u0443 \u0441\u043b\u043e\u0432\u0430\u0440\u044e). \u042d\u0442\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0442\u044c \u0432\u043b\u0438\u044f\u043d\u0438\u0435 \u0442\u0430\u043a\u0438\u0445 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0439. \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 `expansion_limit = N` \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0435\u0442 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u043d\u0435 \u0431\u043e\u043b\u0435\u0435 \u0447\u0435\u043c N \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0447\u0430\u0441\u0442\u043e\u0442\u043d\u044b\u043c\u0438 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0449\u0438\u043c\u0438 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438 (\u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u0447\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u043a\u0430 \u0432 \u0437\u0430\u043f\u0440\u043e\u0441\u0435).\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_24\n\n\n### expansion_merge_threshold_docs\n\n\n\u042d\u0442\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u043e\u043c \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u043c \u0441\u043b\u043e\u0432\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u0432\u0441\u0435 \u0442\u0430\u043a\u0438\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0441\u043b\u043e\u0432\u0430 \u0432\u043c\u0435\u0441\u0442\u0435. \u041e\u043d\u0430 \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u0430, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u2014 32.\n\n\u041f\u0440\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u043f\u043e\u0438\u0441\u043a\u0430 \u043f\u043e \u043f\u043e\u0434\u0441\u0442\u0440\u043e\u043a\u0435 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u0445, \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0445 \u0441 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u043c `dict = keywords`, \u043e\u0434\u0438\u043d \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u0447\u043d\u044b\u0439 \u0437\u043d\u0430\u043a \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a \u0442\u044b\u0441\u044f\u0447\u0430\u043c \u0438\u043b\u0438 \u0434\u0430\u0436\u0435 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430\u043c \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0449\u0438\u0445 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0441\u043b\u043e\u0432. \u042d\u0442\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u043f\u0440\u0435\u0434\u0435\u043b \u0442\u043e\u0433\u043e, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0441\u043b\u043e\u0432 \u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u043e \u0432\u043c\u0435\u0441\u0442\u0435 \u0434\u043b\u044f \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u044f \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f, \u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u0430\u043c\u044f\u0442\u0438 \u043f\u0440\u0438 \u043f\u043e\u0438\u0441\u043a\u0435.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_25\n\n\n### expansion_merge_threshold_hits\n\n\n\u042d\u0442\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u043f\u0430\u0434\u0430\u043d\u0438\u0439 \u0432 \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u043e\u043c \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u043c \u0441\u043b\u043e\u0432\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u0432\u0441\u0435 \u0442\u0430\u043a\u0438\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0441\u043b\u043e\u0432\u0430 \u0432\u043c\u0435\u0441\u0442\u0435. \u041e\u043d\u0430 \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u0430, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u2014 256.", + "chinese": "\n\u5f53\u6307\u5b9a\u6b64\u8bbe\u7f6e\u65f6\uff0c\u5b83\u5c06\u542f\u7528[\u5b9e\u65f6\u6a21\u5f0f](../Creating_a_table/Local_tables.md#Online-schema-management-%28RT-mode%29)\uff0c\u8fd9\u662f\u4e00\u79cd\u7ba1\u7406\u6570\u636e\u6a21\u5f0f\u7684\u5f3a\u5236\u6027\u65b9\u5f0f\u3002\u8be5\u503c\u5e94\u4e3a\u5b58\u50a8\u6240\u6709\u8868\u3001\u4e8c\u8fdb\u5236\u65e5\u5fd7\u4ee5\u53ca\u6b64\u6a21\u5f0f\u4e0bManticore Search\u6b63\u5e38\u8fd0\u884c\u6240\u9700\u5176\u4ed6\u5185\u5bb9\u7684\u76ee\u5f55\u8def\u5f84\u3002\n\u5f53\u6307\u5b9a`data_dir`\u65f6\uff0c\u4e0d\u5141\u8bb8\u5bf9[\u666e\u901a\u8868](../Creating_a_table/Local_tables/Plain_table.md)\u8fdb\u884c\u7d22\u5f15\u3002\u6709\u5173RT\u6a21\u5f0f\u4e0e\u666e\u901a\u6a21\u5f0f\u4e4b\u95f4\u5dee\u5f02\u7684\u66f4\u591a\u4fe1\u606f\uff0c\u8bf7\u53c2\u9605[\u6b64\u90e8\u5206](../Read_this_first.md#Real-time-table-vs-plain-table)\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_18\n\n\n### attr_autoconv_strict\n\n\n\u6b64\u8bbe\u7f6e\u63a7\u5236\u5728INSERT\u548cREPLACE\u64cd\u4f5c\u671f\u95f4\u5c06\u5b57\u7b26\u4e32\u8f6c\u6362\u4e3a\u6570\u5b57\u7c7b\u578b\u7684\u4e25\u683c\u9a8c\u8bc1\u6a21\u5f0f\u3002\u53ef\u9009\uff0c\u7f3a\u7701\u503c\u4e3a0\uff08\u975e\u4e25\u683c\u6a21\u5f0f\uff0c\u5411\u540e\u517c\u5bb9\uff09\u3002\n\n\u5f53\u8bbe\u7f6e\u4e3a1\uff08\u4e25\u683c\u6a21\u5f0f\uff09\u65f6\uff0c\u65e0\u6548\u7684\u5b57\u7b26\u4e32\u5230\u6570\u5b57\u8f6c\u6362\uff08\u4f8b\u5982\uff0c\u5c06\u7a7a\u5b57\u7b26\u4e32`''`\u6216\u975e\u6570\u5b57\u5b57\u7b26\u4e32`'a'`\u8f6c\u6362\u4e3abigint\u5c5e\u6027\uff09\u5c06\u8fd4\u56de\u9519\u8bef\uff0c\u800c\u4e0d\u662f\u9759\u9ed8\u8f6c\u6362\u4e3a0\u3002\u8fd9\u6709\u52a9\u4e8e\u5728\u6570\u636e\u63d2\u5165\u671f\u95f4\u5c3d\u65e9\u53d1\u73b0\u6570\u636e\u8d28\u91cf\u95ee\u9898\u3002\n\n\u5f53\u8bbe\u7f6e\u4e3a0\uff08\u975e\u4e25\u683c\u6a21\u5f0f\uff0c\u9ed8\u8ba4\u503c\uff09\u65f6\uff0c\u65e0\u6548\u7684\u8f6c\u6362\u5c06\u9759\u9ed8\u8f6c\u6362\u4e3a0\uff0c\u4fdd\u6301\u4e0e\u65e7\u7248\u672c\u7684\u5411\u540e\u517c\u5bb9\u6027\u3002\n\n\u4e25\u683c\u6a21\u5f0f\u9a8c\u8bc1\u4ee5\u4e0b\u60c5\u51b5\uff1a\n* \u7a7a\u5b57\u7b26\u4e32\u6216\u65e0\u6cd5\u8f6c\u6362\u7684\u5b57\u7b26\u4e32\n* \u4ee5\u975e\u6570\u5b57\u5b57\u7b26\u7ed3\u5c3e\u7684\u5b57\u7b26\u4e32\uff08\u4f8b\u5982\uff0c`'123abc'`\uff09\n* \u8d85\u51fa\u7c7b\u578b\u8303\u56f4\u7684\u6570\u503c\uff08\u6ea2\u51fa/\u4e0b\u6ea2\uff09\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_19\n\n\n### diskchunk_flush_search_timeout\n\n\n\u9632\u6b62\u5728\u8868\u4e2d\u6ca1\u6709\u641c\u7d22\u65f6\u81ea\u52a8\u5237\u65b0RAM\u5757\u7684\u8d85\u65f6\u65f6\u95f4\u3002\u53ef\u9009\uff0c\u7f3a\u7701\u503c\u4e3a30\u79d2\u3002\n\n\u68c0\u67e5\u641c\u7d22\u7684\u65f6\u95f4\uff0c\u4ee5\u786e\u5b9a\u662f\u5426\u81ea\u52a8\u5237\u65b0\u3002\n\u53ea\u6709\u5728\u6700\u8fd1`diskchunk_flush_search_timeout`\u79d2\u5185\u8868\u4e2d\u81f3\u5c11\u6709\u4e00\u6b21\u641c\u7d22\u65f6\uff0c\u624d\u4f1a\u53d1\u751f\u81ea\u52a8\u5237\u65b0\u3002\u4e0e[diskchunk_flush_write_timeout](../Server_settings/Searchd.md#diskchunk_flush_write_timeout)\u914d\u5408\u4f7f\u7528\u3002\u5bf9\u5e94\u7684[\u6bcf\u8868\u8bbe\u7f6e](../Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#diskchunk_flush_search_timeout)\u5177\u6709\u66f4\u9ad8\u4f18\u5148\u7ea7\uff0c\u5c06\u8986\u76d6\u6b64\u5b9e\u4f8b\u8303\u56f4\u7684\u9ed8\u8ba4\u503c\uff0c\u63d0\u4f9b\u66f4\u7ec6\u7c92\u5ea6\u7684\u63a7\u5236\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_20\n\n\n### diskchunk_flush_write_timeout\n\n\n\u5728\u6ca1\u6709\u5199\u5165\u64cd\u4f5c\u7684\u60c5\u51b5\u4e0b\u7b49\u5f85\u81ea\u52a8\u5c06RAM\u5757\u5237\u65b0\u5230\u78c1\u76d8\u7684\u79d2\u6570\u3002\u53ef\u9009\uff0c\u7f3a\u7701\u503c\u4e3a1\u79d2\u3002\n\n\u5982\u679c\u5728`diskchunk_flush_write_timeout`\u79d2\u5185RAM\u5757\u4e2d\u6ca1\u6709\u5199\u5165\u64cd\u4f5c\uff0c\u5757\u5c06\u88ab\u5237\u65b0\u5230\u78c1\u76d8\u3002\u4e0e[diskchunk_flush_search_timeout](../Server_settings/Searchd.md#diskchunk_flush_search_timeout)\u914d\u5408\u4f7f\u7528\u3002\u8981\u7981\u7528\u81ea\u52a8\u5237\u65b0\uff0c\u8bf7\u5728\u914d\u7f6e\u4e2d\u663e\u5f0f\u8bbe\u7f6e`diskchunk_flush_write_timeout = -1`\u3002\u5bf9\u5e94\u7684[\u6bcf\u8868\u8bbe\u7f6e](../Creating_a_table/Local_tables/Plain_and_real-time_table_settings.md#diskchunk_flush_write_timeout)\u5177\u6709\u66f4\u9ad8\u4f18\u5148\u7ea7\uff0c\u5c06\u8986\u76d6\u6b64\u5b9e\u4f8b\u8303\u56f4\u7684\u9ed8\u8ba4\u503c\uff0c\u63d0\u4f9b\u66f4\u7ec6\u7c92\u5ea6\u7684\u63a7\u5236\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_21\n\n\n### docstore_cache_size\n\n\n\u6b64\u8bbe\u7f6e\u6307\u5b9a\u4ece\u6587\u6863\u5b58\u50a8\u4e2d\u4fdd\u7559\u5728\u5185\u5b58\u4e2d\u7684\u6587\u6863\u5757\u7684\u6700\u5927\u5927\u5c0f\u3002\u5b83\u662f\u53ef\u9009\u7684\uff0c\u9ed8\u8ba4\u503c\u4e3a16m\uff0816\u5146\u5b57\u8282\uff09\u3002\n\n\u5f53\u4f7f\u7528`stored_fields`\u65f6\uff0c\u6587\u6863\u5757\u4ece\u78c1\u76d8\u8bfb\u53d6\u5e76\u89e3\u538b\u7f29\u3002\u7531\u4e8e\u6bcf\u4e2a\u5757\u901a\u5e38\u5305\u542b\u591a\u4e2a\u6587\u6863\uff0c\u5f53\u5904\u7406\u4e0b\u4e00\u4e2a\u6587\u6863\u65f6\u53ef\u80fd\u4f1a\u88ab\u91cd\u590d\u4f7f\u7528\u3002\u4e3a\u6b64\uff0c\u5757\u88ab\u4fdd\u7559\u5728\u4e00\u4e2a\u5168\u5c40\u670d\u52a1\u5668\u7f13\u5b58\u4e2d\u3002\u7f13\u5b58\u4fdd\u5b58\u7684\u662f\u672a\u538b\u7f29\u7684\u5757\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_22\n\n\n### engine\n\n\n\u5728RT\u6a21\u5f0f\u4e0b\u521b\u5efa\u8868\u65f6\u9ed8\u8ba4\u4f7f\u7528\u7684\u5c5e\u6027\u5b58\u50a8\u5f15\u64ce\u3002\u53ef\u4ee5\u662f`rowwise`\uff08\u9ed8\u8ba4\uff09\u6216`columnar`\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_23\n\n\n### expansion_limit\n\n\n\u6b64\u8bbe\u7f6e\u786e\u5b9a\u5355\u4e2a\u901a\u914d\u7b26\u7684\u6269\u5c55\u5173\u952e\u5b57\u7684\u6700\u5927\u6570\u91cf\u3002\u5b83\u662f\u53ef\u9009\u7684\uff0c\u9ed8\u8ba4\u503c\u4e3a0\uff08\u65e0\u9650\u5236\uff09\u3002\n\n\u5f53\u5bf9\u4f7f\u7528`dict = keywords`\u542f\u7528\u7684\u8868\u6267\u884c\u5b50\u5b57\u7b26\u4e32\u641c\u7d22\u65f6\uff0c\u5355\u4e2a\u901a\u914d\u7b26\u53ef\u80fd\u4f1a\u5bfc\u81f4\u6570\u5343\u751a\u81f3\u6570\u767e\u4e07\u4e2a\u5339\u914d\u7684\u5173\u952e\u5b57\uff08\u4f8b\u5982\uff0c\u5c06`a*`\u4e0e\u6574\u4e2a\u725b\u6d25\u8bcd\u5178\u8fdb\u884c\u5339\u914d\uff09\u3002\u6b64\u6307\u4ee4\u5141\u8bb8\u60a8\u9650\u5236\u6b64\u7c7b\u6269\u5c55\u7684\u5f71\u54cd\u3002\u8bbe\u7f6e`expansion_limit = N`\u5c06\u9650\u5236\u6bcf\u4e2a\u67e5\u8be2\u4e2d\u7684\u901a\u914d\u7b26\u6269\u5c55\u4e3a\u6700\u591aN\u4e2a\u6700\u9891\u7e41\u5339\u914d\u7684\u5173\u952e\u5b57\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_24\n\n\n### expansion_merge_threshold_docs\n\n\n\u6b64\u8bbe\u7f6e\u786e\u5b9a\u6269\u5c55\u5173\u952e\u5b57\u4e2d\u5141\u8bb8\u5408\u5e76\u6240\u6709\u6b64\u7c7b\u5173\u952e\u5b57\u7684\u6700\u5927\u6587\u6863\u6570\u3002\u5b83\u662f\u53ef\u9009\u7684\uff0c\u9ed8\u8ba4\u503c\u4e3a32\u3002\n\n\u5f53\u5bf9\u4f7f\u7528`dict = keywords`\u542f\u7528\u7684\u8868\u6267\u884c\u5b50\u5b57\u7b26\u4e32\u641c\u7d22\u65f6\uff0c\u5355\u4e2a\u901a\u914d\u7b26\u53ef\u80fd\u4f1a\u5bfc\u81f4\u6570\u5343\u751a\u81f3\u6570\u767e\u4e07\u4e2a\u5339\u914d\u7684\u5173\u952e\u5b57\u3002\u6b64\u6307\u4ee4\u5141\u8bb8\u60a8\u589e\u52a0\u53ef\u4ee5\u5408\u5e76\u7684\u5173\u952e\u5b57\u6570\u91cf\u4ee5\u52a0\u5feb\u5339\u914d\u901f\u5ea6\uff0c\u4f46\u4f1a\u589e\u52a0\u641c\u7d22\u65f6\u7684\u5185\u5b58\u4f7f\u7528\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_25\n\n\n### expansion_merge_threshold_hits\n\n\n\u6b64\u8bbe\u7f6e\u786e\u5b9a\u6269\u5c55\u5173\u952e\u5b57\u4e2d\u5141\u8bb8\u5408\u5e76\u6240\u6709\u6b64\u7c7b\u5173\u952e\u5b57\u7684\u6700\u5927\u547d\u4e2d\u6570\u3002\u5b83\u662f\u53ef\u9009\u7684\uff0c\u9ed8\u8ba4\u503c\u4e3a256\u3002" + }, + "is_code_or_comment": false, + "model": "qwen/qwen3-14b", + "updated_at": 1773763270 + }, + "e6f2bc8b2523e3fbdef7bd7a79eecbfacb88b176e9019448acbc9d7cf9e82c66": { + "original": "\nWhen using [Update](../Data_creation_and_modification/Updating_documents/UPDATE.md) to modify document attributes in real-time, the changes are first written to an in-memory copy of the attributes. These updates occur in a memory-mapped file, meaning the OS decides when to write the changes to disk. Upon normal shutdown of `searchd` (triggered by a `SIGTERM` signal), all changes are forced to be written to disk.\n\nYou can also instruct `searchd` to periodically write these changes back to disk to prevent data loss. The interval between these flushes is determined by `attr_flush_period`, specified in seconds (or [special_suffixes](../Server_settings/Special_suffixes.md)).\n\nBy default, the value is 0, which disables periodic flushing. However, flushing will still occur during a normal shutdown.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_0\n\n\n### auto_optimize\n\n\nThis setting controls the automatic [OPTIMIZE](../Securing_and_compacting_a_table/Compacting_a_table.md#OPTIMIZE-TABLE) process for table compaction.\n\nBy default table compaction occurs automatically. You can modify this behavior with the `auto_optimize` setting:\n* 0 to disable automatic table compaction (you can still call `OPTIMIZE` manually)\n* 1 to explicitly enable it\n* to enable it while multiplying the optimization threshold by 2.\n\nBy default, OPTIMIZE runs until the number of disk chunks is less than or equal to the number of logical CPU cores multiplied by 2.\n\nHowever, if the table has attributes with KNN indexes, this threshold is different. In this case, it is set to the number of physical CPU cores divided by 2 to improve KNN search performance.\n\nNote that toggling `auto_optimize` on or off doesn't prevent you from running [OPTIMIZE TABLE](../Securing_and_compacting_a_table/Compacting_a_table.md#OPTIMIZE-TABLE) manually.\n\n\n##### Example:\n\n\nCODE_BLOCK_1\n\n\nCODE_BLOCK_2\n\n\n\n### parallel_chunk_merges\n\n\nThis setting controls how many disk chunk merge jobs the server is allowed to run in parallel during [OPTIMIZE](../Securing_and_compacting_a_table/Compacting_a_table.md#OPTIMIZE-TABLE) for real-time tables.\n\nThis affects only disk chunk merging (compaction), not query parallelism.\n\nSet it to `1` to disable parallel chunk merging (merge jobs will run one-by-one). Higher values may speed up compaction on systems with fast storage, but will increase concurrent disk I/O.\n\nDefault is `max(1, min(2, threads/2))`.\n\nThis value can be changed at runtime using `SET GLOBAL parallel_chunk_merges = N` and inspected via `SHOW VARIABLES`.\n\n\n##### Example:\n\n\nCODE_BLOCK_3\n\n\nCODE_BLOCK_4\n\n\n\n### merge_chunks_per_job\n\n\nThis setting controls how many RT disk chunks are merged in a single OPTIMIZE job (N-way merge). If fewer than this number are available, the job will merge what it can (minimum 2).\n\nLower values allow more jobs to be scheduled in parallel; higher values reduce the number of jobs but increase the size of each merge.\n\nDefault is `2`.\n\nThis value can be changed at runtime using `SET GLOBAL merge_chunks_per_job = N` and inspected via `SHOW VARIABLES`.\n\n\n##### Example:\n\n\nCODE_BLOCK_5\n\n\n\n### auto_schema\n\n\nManticore supports the automatic creation of tables that don't yet exist but are specified in INSERT statements. This feature is enabled by default. To disable it, set `auto_schema = 0` explicitly in your configuration. To re-enable it, set `auto_schema = 1` or remove the `auto_schema` setting from the configuration.\n\nKeep in mind that the `/bulk` HTTP endpoint does not support automatic table creation.\n\n> NOTE: The [auto schema functionality](../Data_creation_and_modification/Adding_documents_to_a_table/Adding_documents_to_a_real-time_table.md#Auto-schema) requires [Manticore Buddy](../Installation/Manticore_Buddy.md). If it doesn't work, make sure Buddy is installed.\n\n\nCODE_BLOCK_6\n\n\nCODE_BLOCK_7\n\n\n\n### binlog_flush\n\n\nThis setting controls the binary log transaction flush/sync mode. It is optional, with a default value of 2 (flush every transaction, sync every second).\n\nThe directive determines how frequently the binary log will be flushed to the OS and synced to disk. There are three supported modes:\n\n* 0, flush and sync every second. This offers the best performance, but up to 1 second worth of committed transactions can be lost in the event of a server crash or an OS/hardware crash.\n* 1, flush and sync every transaction. This mode provides the worst performance but guarantees that every committed transaction's data is saved.\n* 2, flush every transaction, sync every second. This mode delivers good performance and ensures that every committed transaction is saved in case of a server crash. However, in the event of an OS/hardware crash, up to 1 second worth of committed transactions can be lost.\n\nFor those familiar with MySQL and InnoDB, this directive is similar to `innodb_flush_log_at_trx_commit`. In most cases, the default hybrid mode 2 provides a nice balance of speed and safety, with full RT table data protection against server crashes and some protection against hardware ones.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_8\n\n\n### binlog_common\n\n\nThis setting controls how binary log files are managed. It is optional, with a default value of 0 (separate file for each table).\n\nYou can choose between two ways to manage binary log files:", + "translations": { + "russian": "\n\u041f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 [UPDATE](../Data_creation_and_modification/Updating_documents/UPDATE.md) \u0434\u043b\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u043a\u043e\u043f\u0438\u044e \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438. \u042d\u0442\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0442 \u0432 \u0444\u0430\u0439\u043b\u0435, \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0451\u043d\u043d\u043e\u043c \u0432 \u043f\u0430\u043c\u044f\u0442\u044c, \u0447\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u041e\u0421 \u0440\u0435\u0448\u0430\u0435\u0442, \u043a\u043e\u0433\u0434\u0430 \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043d\u0430 \u0434\u0438\u0441\u043a. \u041f\u0440\u0438 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u043c \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u044b `searchd` (\u0432\u044b\u0437\u0432\u0430\u043d\u043d\u043e\u043c \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u043c `SIGTERM`), \u0432\u0441\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043d\u0430 \u0434\u0438\u0441\u043a.\n\n\u0412\u044b \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u043a\u0430\u0437\u0430\u0442\u044c `searchd` \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0438 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u044d\u0442\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u043d\u0430 \u0434\u0438\u0441\u043a, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0442\u0438\u0442\u044c \u043f\u043e\u0442\u0435\u0440\u044e \u0434\u0430\u043d\u043d\u044b\u0445. \u0418\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u043c\u0435\u0436\u0434\u0443 \u044d\u0442\u0438\u043c\u0438 \u0441\u0431\u0440\u043e\u0441\u0430\u043c\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c `attr_flush_period`, \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u043c \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0430\u0445 (\u0438\u043b\u0438 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c [\u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u0443\u0444\u0444\u0438\u043a\u0441\u043e\u0432](../Server_settings/Special_suffixes.md)).\n\n\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0440\u0430\u0432\u043d\u043e 0, \u0447\u0442\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u0431\u0440\u043e\u0441. \u041e\u0434\u043d\u0430\u043a\u043e \u0441\u0431\u0440\u043e\u0441 \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0451\u0442 \u043f\u0440\u0438 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u043c \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u044b.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_0\n\n\n### auto_optimize\n\n\n\u042d\u0442\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u043c [OPTIMIZE](../Securing_and_compacting_a_table/Compacting_a_table.md#OPTIMIZE-TABLE) \u0434\u043b\u044f \u0443\u043f\u043b\u043e\u0442\u043d\u0435\u043d\u0438\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u044b.\n\n\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0443\u043f\u043b\u043e\u0442\u043d\u0435\u043d\u0438\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u044d\u0442\u043e \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 `auto_optimize`:\n* 0 \u0434\u043b\u044f \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0443\u043f\u043b\u043e\u0442\u043d\u0435\u043d\u0438\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u044b (\u0432\u044b \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c `OPTIMIZE`)\n* 1 \u0434\u043b\u044f \u044f\u0432\u043d\u043e\u0433\u043e \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f\n* \u0434\u043b\u044f \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0441 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435\u043c \u043f\u043e\u0440\u043e\u0433\u0430 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0430 2.\n\n\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e OPTIMIZE \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0434\u043e \u0442\u0435\u0445 \u043f\u043e\u0440, \u043f\u043e\u043a\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u0438\u0441\u043a\u043e\u0432\u044b\u0445 \u0447\u0430\u043d\u043a\u043e\u0432 \u043d\u0435 \u0441\u0442\u0430\u043d\u0435\u0442 \u043c\u0435\u043d\u044c\u0448\u0435 \u0438\u043b\u0438 \u0440\u0430\u0432\u043d\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u044f\u0434\u0435\u0440 CPU, \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u043d\u043e\u043c\u0443 \u043d\u0430 2.\n\n\u041e\u0434\u043d\u0430\u043a\u043e, \u0435\u0441\u043b\u0438 \u0443 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0435\u0441\u0442\u044c \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u0441 KNN-\u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c\u0438, \u044d\u0442\u043e\u0442 \u043f\u043e\u0440\u043e\u0433 \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f. \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u043d \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0440\u0430\u0432\u043d\u044b\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u044f\u0434\u0435\u0440 CPU, \u0434\u0435\u043b\u0451\u043d\u043d\u043e\u043c\u0443 \u043d\u0430 2, \u0434\u043b\u044f \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 KNN-\u043f\u043e\u0438\u0441\u043a\u0430.\n\n\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0438\u043b\u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 `auto_optimize` \u043d\u0435 \u043c\u0435\u0448\u0430\u0435\u0442 \u0432\u0430\u043c \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c [OPTIMIZE TABLE](../Securing_and_compacting_a_table/Compacting_a_table.md#OPTIMIZE-TABLE).\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\nCODE_BLOCK_1\n\n\nCODE_BLOCK_2\n\n\n\n### parallel_chunk_merges\n\n\n\u042d\u0442\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0442\u0435\u043c, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0434\u0430\u043d\u0438\u0439 \u0441\u043b\u0438\u044f\u043d\u0438\u044f \u0434\u0438\u0441\u043a\u043e\u0432\u044b\u0445 \u0447\u0430\u043d\u043a\u043e\u0432 \u0441\u0435\u0440\u0432\u0435\u0440\u0443 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u0432\u043e \u0432\u0440\u0435\u043c\u044f [OPTIMIZE](../Securing_and_compacting_a_table/Compacting_a_table.md#OPTIMIZE-TABLE) \u0434\u043b\u044f \u0442\u0430\u0431\u043b\u0438\u0446 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438.\n\n\u042d\u0442\u043e \u0432\u043b\u0438\u044f\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0441\u043b\u0438\u044f\u043d\u0438\u0435 \u0434\u0438\u0441\u043a\u043e\u0432\u044b\u0445 \u0447\u0430\u043d\u043a\u043e\u0432 (\u0443\u043f\u043b\u043e\u0442\u043d\u0435\u043d\u0438\u0435), \u0430 \u043d\u0435 \u043d\u0430 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u0438\u0437\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432.\n\n\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 `1`, \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e\u0435 \u0441\u043b\u0438\u044f\u043d\u0438\u0435 \u0447\u0430\u043d\u043a\u043e\u0432 (\u0437\u0430\u0434\u0430\u043d\u0438\u044f \u0441\u043b\u0438\u044f\u043d\u0438\u044f \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u043e\u0434\u043d\u043e \u0437\u0430 \u0434\u0440\u0443\u0433\u0438\u043c). \u0411\u043e\u043b\u0435\u0435 \u0432\u044b\u0441\u043e\u043a\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043c\u043e\u0433\u0443\u0442 \u0443\u0441\u043a\u043e\u0440\u0438\u0442\u044c \u0443\u043f\u043b\u043e\u0442\u043d\u0435\u043d\u0438\u0435 \u043d\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u0441 \u0431\u044b\u0441\u0442\u0440\u044b\u043c \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435\u043c, \u043d\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0430\u0442 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u0432\u0432\u043e\u0434-\u0432\u044b\u0432\u043e\u0434 \u043d\u0430 \u0434\u0438\u0441\u043a.\n\n\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e `max(1, min(2, threads/2))`.\n\n\u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e `SET GLOBAL parallel_chunk_merges = N` \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0447\u0435\u0440\u0435\u0437 `SHOW VARIABLES`.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\nCODE_BLOCK_3\n\n\nCODE_BLOCK_4\n\n\n\n### merge_chunks_per_job\n\n\n\u042d\u0442\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0442\u0435\u043c, \u0441\u043a\u043e\u043b\u044c\u043a\u043e RT \u0434\u0438\u0441\u043a\u043e\u0432\u044b\u0445 \u0447\u0430\u043d\u043a\u043e\u0432 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u043e\u0434\u043d\u043e\u043c \u0437\u0430\u0434\u0430\u043d\u0438\u0438 OPTIMIZE (N-\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0435\u0435 \u0441\u043b\u0438\u044f\u043d\u0438\u0435). \u0415\u0441\u043b\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u043c\u0435\u043d\u044c\u0448\u0435 \u044d\u0442\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430, \u0437\u0430\u0434\u0430\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0442 \u0442\u043e, \u0447\u0442\u043e \u043c\u043e\u0436\u0435\u0442 (\u043c\u0438\u043d\u0438\u043c\u0443\u043c 2).\n\n\u0411\u043e\u043b\u0435\u0435 \u043d\u0438\u0437\u043a\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u0437\u0430\u0434\u0430\u043d\u0438\u0439 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e; \u0431\u043e\u043b\u0435\u0435 \u0432\u044b\u0441\u043e\u043a\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u044e\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u0430\u0434\u0430\u043d\u0438\u0439, \u043d\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u044e\u0442 \u0440\u0430\u0437\u043c\u0435\u0440 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0441\u043b\u0438\u044f\u043d\u0438\u044f.\n\n\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e `2`.\n\n\u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e `SET GLOBAL merge_chunks_per_job = N` \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0447\u0435\u0440\u0435\u0437 `SHOW VARIABLES`.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\nCODE_BLOCK_5\n\n\n\n### auto_schema\n\n\nManticore \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0442\u0430\u0431\u043b\u0438\u0446, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0435\u0449\u0451 \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442, \u043d\u043e \u0443\u043a\u0430\u0437\u0430\u043d\u044b \u0432 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430\u0445 INSERT. \u042d\u0442\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e. \u0427\u0442\u043e\u0431\u044b \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0435\u0451, \u044f\u0432\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 `auto_schema = 0` \u0432 \u0432\u0430\u0448\u0435\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438. \u0427\u0442\u043e\u0431\u044b \u0441\u043d\u043e\u0432\u0430 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 `auto_schema = 1` \u0438\u043b\u0438 \u0443\u0434\u0430\u043b\u0438\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 `auto_schema` \u0438\u0437 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438.\n\n\u0418\u043c\u0435\u0439\u0442\u0435 \u0432 \u0432\u0438\u0434\u0443, \u0447\u0442\u043e HTTP-\u044d\u043d\u0434\u043f\u043e\u0438\u043d\u0442 `/bulk` \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0442\u0430\u0431\u043b\u0438\u0446.\n\n> \u041f\u0420\u0418\u041c\u0415\u0427\u0410\u041d\u0418\u0415: \u0424\u0443\u043d\u043a\u0446\u0438\u044f [\u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0441\u0445\u0435\u043c\u044b](../Data_creation_and_modification/Adding_documents_to_a_table/Adding_documents_to_a_real-time_table.md#Auto-schema) \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043d\u0430\u043b\u0438\u0447\u0438\u044f [Manticore Buddy](../Installation/Manticore_Buddy.md). \u0415\u0441\u043b\u0438 \u043e\u043d\u0430 \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u0443\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e Buddy \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d.\n\n\nCODE_BLOCK_6\n\n\nCODE_BLOCK_7\n\n\n\n### binlog_flush\n\n\n\u042d\u0442\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0440\u0435\u0436\u0438\u043c\u043e\u043c \u0441\u0431\u0440\u043e\u0441\u0430/\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0439 \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0433\u043e \u043b\u043e\u0433\u0430. \u041e\u043d\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u2014 2 (\u0441\u0431\u0440\u043e\u0441 \u043a\u0430\u0436\u0434\u043e\u0439 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438, \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u043a\u0430\u0436\u0434\u0443\u044e \u0441\u0435\u043a\u0443\u043d\u0434\u0443).\n\n\u0414\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442, \u043a\u0430\u043a \u0447\u0430\u0441\u0442\u043e \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0439 \u043b\u043e\u0433 \u0431\u0443\u0434\u0435\u0442 \u0441\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u041e\u0421 \u0438 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0434\u0438\u0441\u043a. \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0442\u0440\u0438 \u0440\u0435\u0436\u0438\u043c\u0430:\n\n* 0, \u0441\u0431\u0440\u043e\u0441 \u0438 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u043a\u0430\u0436\u0434\u0443\u044e \u0441\u0435\u043a\u0443\u043d\u0434\u0443. \u042d\u0442\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u043d\u0430\u0438\u043b\u0443\u0447\u0448\u0443\u044e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c, \u043d\u043e \u0434\u043e 1 \u0441\u0435\u043a\u0443\u043d\u0434\u044b \u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0439 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u043e\u0442\u0435\u0440\u044f\u043d\u043e \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441\u0431\u043e\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0438\u043b\u0438 \u0441\u0431\u043e\u044f \u041e\u0421/\u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u044f.\n* 1, \u0441\u0431\u0440\u043e\u0441 \u0438 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438. \u042d\u0442\u043e\u0442 \u0440\u0435\u0436\u0438\u043c \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u043d\u0430\u0438\u0445\u0443\u0434\u0448\u0443\u044e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c, \u043d\u043e \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043a\u0430\u0436\u0434\u043e\u0439 \u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438.\n* 2, \u0441\u0431\u0440\u043e\u0441 \u043a\u0430\u0436\u0434\u043e\u0439 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438, \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u043a\u0430\u0436\u0434\u0443\u044e \u0441\u0435\u043a\u0443\u043d\u0434\u0443. \u042d\u0442\u043e\u0442 \u0440\u0435\u0436\u0438\u043c \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u0445\u043e\u0440\u043e\u0448\u0443\u044e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0438 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442, \u0447\u0442\u043e \u043a\u0430\u0436\u0434\u0430\u044f \u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0430 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441\u0431\u043e\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u0430. \u041e\u0434\u043d\u0430\u043a\u043e \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441\u0431\u043e\u044f \u041e\u0421/\u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u043e\u0442\u0435\u0440\u044f\u043d\u043e \u0434\u043e 1 \u0441\u0435\u043a\u0443\u043d\u0434\u044b \u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0439.\n\n\u0414\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u0437\u043d\u0430\u043a\u043e\u043c \u0441 MySQL \u0438 InnoDB, \u044d\u0442\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u0430 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u0430 `innodb_flush_log_at_trx_commit`. \u0412 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u0433\u0438\u0431\u0440\u0438\u0434\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 2 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u0431\u0430\u043b\u0430\u043d\u0441 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438, \u0441 \u043f\u043e\u043b\u043d\u043e\u0439 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u0434\u0430\u043d\u043d\u044b\u0445 RT-\u0442\u0430\u0431\u043b\u0438\u0446 \u043e\u0442 \u0441\u0431\u043e\u0435\u0432 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u044b\u0445 \u0441\u0431\u043e\u0435\u0432.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_8\n\n\n### binlog_common\n\n\n\u042d\u0442\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0442\u0435\u043c, \u043a\u0430\u043a \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0444\u0430\u0439\u043b\u044b \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0433\u043e \u043b\u043e\u0433\u0430. \u041e\u043d\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u2014 0 (\u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b).\n\n\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043c\u0435\u0436\u0434\u0443 \u0434\u0432\u0443\u043c\u044f \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u0430\u043c\u0438 \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0433\u043e \u043b\u043e\u0433\u0430:", + "chinese": "\n\u5f53\u4f7f\u7528 [\u66f4\u65b0](../Data_creation_and_modification/Updating_documents/UPDATE.md) \u5b9e\u65f6\u4fee\u6539\u6587\u6863\u5c5e\u6027\u65f6\uff0c\u66f4\u6539\u9996\u5148\u4f1a\u88ab\u5199\u5165\u5c5e\u6027\u7684\u5185\u5b58\u526f\u672c\u3002\u8fd9\u4e9b\u66f4\u65b0\u53d1\u751f\u5728\u5185\u5b58\u6620\u5c04\u6587\u4ef6\u4e2d\uff0c\u8fd9\u610f\u5473\u7740\u64cd\u4f5c\u7cfb\u7edf\u51b3\u5b9a\u4f55\u65f6\u5c06\u66f4\u6539\u5199\u5165\u78c1\u76d8\u3002\u5728 `searchd` \u6b63\u5e38\u5173\u95ed\uff08\u7531 `SIGTERM` \u4fe1\u53f7\u89e6\u53d1\uff09\u65f6\uff0c\u6240\u6709\u66f4\u6539\u90fd\u4f1a\u88ab\u5f3a\u5236\u5199\u5165\u78c1\u76d8\u3002\n\n\u60a8\u8fd8\u53ef\u4ee5\u6307\u793a `searchd` \u5b9a\u671f\u5c06\u8fd9\u4e9b\u66f4\u6539\u5199\u56de\u78c1\u76d8\u4ee5\u9632\u6b62\u6570\u636e\u4e22\u5931\u3002\u8fd9\u4e9b\u5237\u65b0\u4e4b\u95f4\u7684\u95f4\u9694\u7531 `attr_flush_period` \u51b3\u5b9a\uff0c\u4ee5\u79d2\u4e3a\u5355\u4f4d\uff08\u6216 [\u7279\u6b8a\u540e\u7f00](../Server_settings/Special_suffixes.md)\uff09\u3002\n\n\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u8be5\u503c\u4e3a 0\uff0c\u8fd9\u4f1a\u7981\u7528\u5468\u671f\u6027\u5237\u65b0\u3002\u4f46\u662f\uff0c\u6b63\u5e38\u5173\u95ed\u65f6\u4ecd\u4f1a\u8fdb\u884c\u5237\u65b0\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_0\n\n\n### auto_optimize\n\n\n\u6b64\u8bbe\u7f6e\u63a7\u5236\u8868\u538b\u7f29\u7684\u81ea\u52a8 [OPTIMIZE](../Securing_and_compacting_a_table/Compacting_a_table.md#OPTIMIZE-TABLE) \u8fc7\u7a0b\u3002\n\n\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u8868\u538b\u7f29\u4f1a\u81ea\u52a8\u8fdb\u884c\u3002\u60a8\u53ef\u4ee5\u4f7f\u7528 `auto_optimize` \u8bbe\u7f6e\u4fee\u6539\u6b64\u884c\u4e3a\uff1a\n* 0 \u7981\u7528\u81ea\u52a8\u8868\u538b\u7f29\uff08\u60a8\u4ecd\u7136\u53ef\u4ee5\u624b\u52a8\u8c03\u7528 `OPTIMIZE`\uff09\n* 1 \u660e\u786e\u542f\u7528\u5b83\n* \u542f\u7528\u5b83\u540c\u65f6\u5c06\u4f18\u5316\u9608\u503c\u4e58\u4ee5 2\u3002\n\n\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0cOPTIMIZE \u4f1a\u8fd0\u884c\u76f4\u5230\u78c1\u76d8\u5757\u7684\u6570\u91cf\u5c0f\u4e8e\u6216\u7b49\u4e8e\u903b\u8f91 CPU \u6838\u5fc3\u6570\u4e58\u4ee5 2\u3002\n\n\u4f46\u662f\uff0c\u5982\u679c\u8868\u5177\u6709\u5e26\u6709 KNN \u7d22\u5f15\u7684\u5c5e\u6027\uff0c\u5219\u6b64\u9608\u503c\u4e0d\u540c\u3002\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0c\u5b83\u88ab\u8bbe\u7f6e\u4e3a\u7269\u7406 CPU \u6838\u5fc3\u6570\u9664\u4ee5 2\uff0c\u4ee5\u63d0\u9ad8 KNN \u641c\u7d22\u6027\u80fd\u3002\n\n\u8bf7\u6ce8\u610f\uff0c\u5207\u6362 `auto_optimize` \u5f00\u542f\u6216\u5173\u95ed\u4e0d\u4f1a\u963b\u6b62\u60a8\u624b\u52a8\u8fd0\u884c [OPTIMIZE TABLE](../Securing_and_compacting_a_table/Compacting_a_table.md#OPTIMIZE-TABLE)\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\nCODE_BLOCK_1\n\n\nCODE_BLOCK_2\n\n\n\n### parallel_chunk_merges\n\n\n\u6b64\u8bbe\u7f6e\u63a7\u5236\u670d\u52a1\u5668\u5728 [OPTIMIZE](../Securing_and_compacting_a_table/Compacting_a_table.md#OPTIMIZE-TABLE) \u8fc7\u7a0b\u4e2d\u5141\u8bb8\u5e76\u884c\u8fd0\u884c\u7684\u78c1\u76d8\u5757\u5408\u5e76\u4efb\u52a1\u6570\u91cf\uff0c\u9002\u7528\u4e8e\u5b9e\u65f6\u8868\u3002\n\n\u8fd9\u4ec5\u5f71\u54cd\u78c1\u76d8\u5757\u5408\u5e76\uff08\u538b\u7f29\uff09\uff0c\u4e0d\u5f71\u54cd\u67e5\u8be2\u5e76\u884c\u6027\u3002\n\n\u5c06\u5176\u8bbe\u7f6e\u4e3a `1` \u4ee5\u7981\u7528\u5e76\u884c\u5757\u5408\u5e76\uff08\u5408\u5e76\u4efb\u52a1\u5c06\u9010\u4e2a\u8fd0\u884c\uff09\u3002\u8f83\u9ad8\u7684\u503c\u53ef\u80fd\u4f1a\u5728\u5177\u6709\u5feb\u901f\u5b58\u50a8\u7684\u7cfb\u7edf\u4e0a\u52a0\u5feb\u538b\u7f29\u901f\u5ea6\uff0c\u4f46\u4f1a\u589e\u52a0\u5e76\u53d1\u78c1\u76d8 I/O\u3002\n\n\u9ed8\u8ba4\u503c\u4e3a `max(1, min(2, threads/2))`\u3002\n\n\u6b64\u503c\u53ef\u4ee5\u901a\u8fc7 `SET GLOBAL parallel_chunk_merges = N` \u5728\u8fd0\u884c\u65f6\u66f4\u6539\uff0c\u5e76\u901a\u8fc7 `SHOW VARIABLES` \u67e5\u770b\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\nCODE_BLOCK_3\n\n\nCODE_BLOCK_4\n\n\n\n### merge_chunks_per_job\n\n\n\u6b64\u8bbe\u7f6e\u63a7\u5236\u5728\u5355\u4e2a OPTIMIZE \u4efb\u52a1\u4e2d\u5408\u5e76\u591a\u5c11\u4e2a RT \u78c1\u76d8\u5757\uff08N \u8def\u5408\u5e76\uff09\u3002\u5982\u679c\u53ef\u7528\u5757\u5c11\u4e8e\u6b64\u6570\u91cf\uff0c\u4efb\u52a1\u5c06\u5408\u5e76\u5b83\u80fd\u5408\u5e76\u7684\u5757\uff08\u6700\u5c11 2 \u4e2a\uff09\u3002\n\n\u8f83\u4f4e\u7684\u503c\u5141\u8bb8\u66f4\u591a\u4efb\u52a1\u5e76\u884c\u8c03\u5ea6\uff1b\u8f83\u9ad8\u7684\u503c\u4f1a\u51cf\u5c11\u4efb\u52a1\u6570\u91cf\u4f46\u589e\u52a0\u6bcf\u6b21\u5408\u5e76\u7684\u89c4\u6a21\u3002\n\n\u9ed8\u8ba4\u503c\u4e3a `2`\u3002\n\n\u6b64\u503c\u53ef\u4ee5\u901a\u8fc7 `SET GLOBAL merge_chunks_per_job = N` \u5728\u8fd0\u884c\u65f6\u66f4\u6539\uff0c\u5e76\u901a\u8fc7 `SHOW VARIABLES` \u67e5\u770b\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\nCODE_BLOCK_5\n\n\n\n### auto_schema\n\n\nManticore \u652f\u6301\u81ea\u52a8\u521b\u5efa\u5c1a\u672a\u5b58\u5728\u4f46\u5728 INSERT \u8bed\u53e5\u4e2d\u6307\u5b9a\u7684\u8868\u3002\u6b64\u529f\u80fd\u9ed8\u8ba4\u542f\u7528\u3002\u8981\u7981\u7528\u5b83\uff0c\u8bf7\u5728\u914d\u7f6e\u4e2d\u663e\u5f0f\u8bbe\u7f6e `auto_schema = 0`\u3002\u8981\u91cd\u65b0\u542f\u7528\u5b83\uff0c\u8bf7\u8bbe\u7f6e `auto_schema = 1` \u6216\u4ece\u914d\u7f6e\u4e2d\u79fb\u9664 `auto_schema` \u8bbe\u7f6e\u3002\n\n\u8bf7\u6ce8\u610f\uff0c`/bulk` HTTP \u7aef\u70b9\u4e0d\u652f\u6301\u81ea\u52a8\u8868\u521b\u5efa\u3002\n\n> \u6ce8\u610f\uff1a[\u81ea\u52a8\u6a21\u5f0f\u529f\u80fd](../Data_creation_and_modification/Adding_documents_to_a_table/Adding_documents_to_a_real-time_table.md#Auto-schema) \u9700\u8981 [Manticore Buddy](../Installation/Manticore_Buddy.md)\u3002\u5982\u679c\u4e0d\u8d77\u4f5c\u7528\uff0c\u8bf7\u786e\u4fdd\u5df2\u5b89\u88c5 Buddy\u3002\n\n\nCODE_BLOCK_6\n\n\nCODE_BLOCK_7\n\n\n\n### binlog_flush\n\n\n\u6b64\u8bbe\u7f6e\u63a7\u5236\u4e8c\u8fdb\u5236\u65e5\u5fd7\u4e8b\u52a1\u5237\u65b0/\u540c\u6b65\u6a21\u5f0f\u3002\u5b83\u662f\u53ef\u9009\u7684\uff0c\u9ed8\u8ba4\u503c\u4e3a 2\uff08\u6bcf\u4e2a\u4e8b\u52a1\u5237\u65b0\uff0c\u6bcf\u79d2\u540c\u6b65\uff09\u3002\n\n\u8be5\u6307\u4ee4\u51b3\u5b9a\u4e86\u4e8c\u8fdb\u5236\u65e5\u5fd7\u5237\u65b0\u5230\u64cd\u4f5c\u7cfb\u7edf\u548c\u540c\u6b65\u5230\u78c1\u76d8\u7684\u9891\u7387\u3002\u652f\u6301\u4e09\u79cd\u6a21\u5f0f\uff1a\n\n* 0\uff0c\u6bcf\u79d2\u5237\u65b0\u548c\u540c\u6b65\u3002\u8fd9\u63d0\u4f9b\u6700\u4f73\u6027\u80fd\uff0c\u4f46\u5728\u670d\u52a1\u5668\u5d29\u6e83\u6216\u64cd\u4f5c\u7cfb\u7edf/\u786c\u4ef6\u5d29\u6e83\u7684\u60c5\u51b5\u4e0b\uff0c\u6700\u591a\u53ef\u80fd\u4e22\u5931 1 \u79d2\u5185\u63d0\u4ea4\u7684\u4e8b\u52a1\u3002\n* 1\uff0c\u6bcf\u4e2a\u4e8b\u52a1\u5237\u65b0\u548c\u540c\u6b65\u3002\u6b64\u6a21\u5f0f\u6027\u80fd\u6700\u5dee\uff0c\u4f46\u4fdd\u8bc1\u6bcf\u4e2a\u63d0\u4ea4\u7684\u4e8b\u52a1\u6570\u636e\u90fd\u88ab\u4fdd\u5b58\u3002\n* 2\uff0c\u6bcf\u4e2a\u4e8b\u52a1\u5237\u65b0\uff0c\u6bcf\u79d2\u540c\u6b65\u3002\u6b64\u6a21\u5f0f\u63d0\u4f9b\u826f\u597d\u7684\u6027\u80fd\uff0c\u5e76\u786e\u4fdd\u5728\u670d\u52a1\u5668\u5d29\u6e83\u65f6\u6bcf\u4e2a\u63d0\u4ea4\u7684\u4e8b\u52a1\u90fd\u88ab\u4fdd\u5b58\u3002\u7136\u800c\uff0c\u5728\u64cd\u4f5c\u7cfb\u7edf/\u786c\u4ef6\u5d29\u6e83\u7684\u60c5\u51b5\u4e0b\uff0c\u6700\u591a\u53ef\u80fd\u4e22\u5931 1 \u79d2\u5185\u63d0\u4ea4\u7684\u4e8b\u52a1\u3002\n\n\u5bf9\u4e8e\u719f\u6089 MySQL \u548c InnoDB \u7684\u7528\u6237\uff0c\u6b64\u6307\u4ee4\u7c7b\u4f3c\u4e8e `innodb_flush_log_at_trx_commit`\u3002\u5728\u5927\u591a\u6570\u60c5\u51b5\u4e0b\uff0c\u9ed8\u8ba4\u7684\u6df7\u5408\u6a21\u5f0f 2 \u63d0\u4f9b\u4e86\u901f\u5ea6\u548c\u5b89\u5168\u6027\u7684\u826f\u597d\u5e73\u8861\uff0c\u80fd\u591f\u5b8c\u5168\u4fdd\u62a4\u5b9e\u65f6\u8868\u6570\u636e\u514d\u53d7\u670d\u52a1\u5668\u5d29\u6e83\u7684\u5f71\u54cd\uff0c\u5e76\u5bf9\u786c\u4ef6\u5d29\u6e83\u63d0\u4f9b\u90e8\u5206\u4fdd\u62a4\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_8\n\n\n### binlog_common\n\n\n\u6b64\u8bbe\u7f6e\u63a7\u5236\u4e8c\u8fdb\u5236\u65e5\u5fd7\u6587\u4ef6\u7684\u7ba1\u7406\u65b9\u5f0f\u3002\u5b83\u662f\u53ef\u9009\u7684\uff0c\u9ed8\u8ba4\u503c\u4e3a 0\uff08\u6bcf\u4e2a\u8868\u4f7f\u7528\u5355\u72ec\u7684\u6587\u4ef6\uff09\u3002\n\n\u60a8\u53ef\u4ee5\u9009\u62e9\u4e24\u79cd\u65b9\u5f0f\u6765\u7ba1\u7406\u4e8c\u8fdb\u5236\u65e5\u5fd7\u6587\u4ef6\uff1a" + }, + "is_code_or_comment": false, + "model": "qwen/qwen3-14b", + "updated_at": 1773763267 + }, + "680704b47c2359ba997e41369901b92a940a7e88b297554a4e1ac7ef7fb7f4b5": { + "original": "> **WARNING:** If you still want to access files from the FS root, you have to explicitly set `snippets_file_prefix` to empty value (by `snippets_file_prefix=` line), or to root (by `snippets_file_prefix=/`).\n\n### sphinxql_state\n\n\nPath to a file where the current SQL state will be serialized.\n\nOn server startup, this file gets replayed. On eligible state changes (e.g., SET GLOBAL), this file gets rewritten automatically. This can prevent a hard-to-diagnose problem: If you load UDF functions but Manticore crashes, when it gets (automatically) restarted, your UDF and global variables will no longer be available. Using persistent state helps ensure a graceful recovery with no such surprises.\n\n`sphinxql_state` cannot be used to execute arbitrary commands, such as `CREATE TABLE`.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_73\n\n\n### sphinxql_timeout\n\n\nMaximum time to wait between requests (in seconds, or [special_suffixes](../Server_settings/Special_suffixes.md)) when using the SQL interface. Optional, default is 15 minutes.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_74\n\n\n### ssl_ca\n\n\nPath to the SSL Certificate Authority (CA) certificate file (also known as root certificate). Optional, default is empty. When not empty, the certificate in `ssl_cert` should be signed by this root certificate.\n\nThe server uses the CA file to verify the signature on the certificate. The file must be in PEM format.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_75\n\n\n### ssl_cert\n\n\nPath to the server's SSL certificate. Optional, default is empty.\n\nThe server uses this certificate as a self-signed public key to encrypt HTTP traffic over SSL. The file must be in PEM format.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_76\n\n\n### ssl_key\n\n\nPath to the SSL certificate key. Optional, default is empty.\n\nThe server uses this private key to encrypt HTTP traffic over SSL. The file must be in PEM format.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_77\n\n\n### subtree_docs_cache\n\n\nMax common subtree document cache size, per-query. Optional, default is 0 (disabled).\n\nThis setting limits the RAM usage of a common subtree optimizer (see [multi-queries](../Searching/Multi-queries.md)). At most, this much RAM will be spent to cache document entries for each query. Setting the limit to 0 disables the optimizer.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_78\n\n\n### subtree_hits_cache\n\n\nMax common subtree hit cache size, per-query. Optional, default is 0 (disabled).\n\nThis setting limits the RAM usage of a common subtree optimizer (see [multi-queries](../Searching/Multi-queries.md)). At most, this much RAM will be spent to cache keyword occurrences (hits) for each query. Setting the limit to 0 disables the optimizer.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_79\n\n\n### threads\n\n\nNumber of working threads (or, size of thread pool) for the Manticore daemon. Manticore creates this number of OS threads on start, and they perform all jobs inside the daemon, such as executing queries, creating snippets, etc. Some operations may be split into sub-tasks and executed in parallel, for example:\n\n* Search in a real-time table\n* Search in a distributed table consisting of local tables\n* Percolate query call\n* and others\n\nBy default, it's set to the number of CPU cores on the server. Manticore creates the threads on start and keeps them until it's stopped. Each sub-task can use one of the threads when it needs it. When the sub-task finishes, it releases the thread so another sub-task can use it.\n\nIn the case of intensive I/O type of load, it might make sense to set the value higher than the number of CPU cores.\n\n\nCODE_BLOCK_80\n\n\n\n### thread_stack\n\n\nMaximum stack size for a job (coroutine, one search query may cause multiple jobs/coroutines). Optional, default is 128K.\n\nEach job has its own stack of 128K. When you run a query, it's checked for how much stack it requires. If the default 128K is enough, it's just processed. If it needs more, another job with an increased stack is scheduled, which continues processing. The maximum size of such an advanced stack is limited by this setting.\n\nSetting the value to a reasonably high rate will help with processing very deep queries without implying that overall RAM consumption will grow too high. For example, setting it to 1G does not imply that every new job will take 1G of RAM, but if we see that it requires, let's say, 100M stack, we just allocate 100M for the job. Other jobs at the same time will be running with their default 128K stack. The same way, we can run even more complex queries that need 500M. And only if we **see** internally that the job requires more than 1G of stack, we will fail and report about too low thread_stack.\n\nHowever, in practice, even a query which needs 16M of stack is often too complex for parsing and consumes too much time and resources to be processed. So, the daemon will process it, but limiting such queries by the `thread_stack` setting looks quite reasonable.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_81\n\n\n### unlink_old\n\n\nDetermines whether to unlink `.old` table copies on successful rotation. Optional, default is 1 (do unlink).\n\n\n##### Example:\n\n\n\nCODE_BLOCK_82\n\n\n### watchdog\n\n\nThreaded server watchdog. Optional, default is 1 (watchdog enabled).", + "translations": { + "chinese": "> **\u8b66\u544a\uff1a** \u5982\u679c\u60a8\u4ecd\u60f3\u4ece\u6587\u4ef6\u7cfb\u7edf\u6839\u76ee\u5f55\u8bbf\u95ee\u6587\u4ef6\uff0c\u5fc5\u987b\u663e\u5f0f\u5730\u5c06 `snippets_file_prefix` \u8bbe\u7f6e\u4e3a\u7a7a\u503c\uff08\u901a\u8fc7 `snippets_file_prefix=` \u884c\uff09\uff0c\u6216\u8bbe\u7f6e\u4e3a\u6839\u76ee\u5f55\uff08\u901a\u8fc7 `snippets_file_prefix=/`\uff09\u3002\n\n### sphinxql_state\n\n\n\u5b58\u50a8\u5f53\u524d SQL \u72b6\u6001\u7684\u6587\u4ef6\u8def\u5f84\u3002\n\n\u670d\u52a1\u5668\u542f\u52a8\u65f6\uff0c\u6b64\u6587\u4ef6\u4f1a\u88ab\u91cd\u653e\u3002\u5728\u7b26\u5408\u6761\u4ef6\u7684\u72b6\u6001\u66f4\u6539\uff08\u4f8b\u5982 `SET GLOBAL`\uff09\u65f6\uff0c\u6b64\u6587\u4ef6\u4f1a\u81ea\u52a8\u88ab\u91cd\u5199\u3002\u8fd9\u53ef\u4ee5\u9632\u6b62\u96be\u4ee5\u8bca\u65ad\u7684\u95ee\u9898\uff1a\u5982\u679c\u60a8\u52a0\u8f7d\u4e86 UDF \u51fd\u6570\u4f46 Manticore \u5d29\u6e83\uff0c\u5f53\u5b83\uff08\u81ea\u52a8\uff09\u91cd\u65b0\u542f\u52a8\u65f6\uff0c\u60a8\u7684 UDF \u548c\u5168\u5c40\u53d8\u91cf\u5c06\u4e0d\u518d\u53ef\u7528\u3002\u4f7f\u7528\u6301\u4e45\u5316\u72b6\u6001\u6709\u52a9\u4e8e\u786e\u4fdd\u4f18\u96c5\u6062\u590d\uff0c\u907f\u514d\u6b64\u7c7b\u610f\u5916\u3002\n\n`sphinxql_state` \u4e0d\u80fd\u7528\u4e8e\u6267\u884c\u4efb\u610f\u547d\u4ee4\uff0c\u4f8b\u5982 `CREATE TABLE`\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_73\n\n\n### sphinxql_timeout\n\n\n\u4f7f\u7528 SQL \u63a5\u53e3\u65f6\uff0c\u7b49\u5f85\u8bf7\u6c42\u4e4b\u95f4\u7684\u6700\u5927\u65f6\u95f4\uff08\u4ee5\u79d2\u4e3a\u5355\u4f4d\uff0c\u6216 [\u7279\u6b8a\u540e\u7f00](../Server_settings/Special_suffixes.md)\uff09\u3002\u53ef\u9009\uff0c\u9ed8\u8ba4\u4e3a 15 \u5206\u949f\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_74\n\n\n### ssl_ca\n\n\nSSL \u8bc1\u4e66\u9881\u53d1\u673a\u6784 (CA) \u8bc1\u4e66\u6587\u4ef6\uff08\u4e5f\u79f0\u4e3a\u6839\u8bc1\u4e66\uff09\u7684\u8def\u5f84\u3002\u53ef\u9009\uff0c\u9ed8\u8ba4\u4e3a\u7a7a\u3002\u5f53\u4e0d\u4e3a\u7a7a\u65f6\uff0c`ssl_cert` \u4e2d\u7684\u8bc1\u4e66\u5e94\u7531\u8be5\u6839\u8bc1\u4e66\u7b7e\u540d\u3002\n\n\u670d\u52a1\u5668\u4f7f\u7528 CA \u6587\u4ef6\u9a8c\u8bc1\u8bc1\u4e66\u4e0a\u7684\u7b7e\u540d\u3002\u6587\u4ef6\u5fc5\u987b\u4e3a PEM \u683c\u5f0f\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_75\n\n\n### ssl_cert\n\n\n\u670d\u52a1\u5668\u7684 SSL \u8bc1\u4e66\u8def\u5f84\u3002\u53ef\u9009\uff0c\u9ed8\u8ba4\u4e3a\u7a7a\u3002\n\n\u670d\u52a1\u5668\u4f7f\u7528\u6b64\u8bc1\u4e66\u4f5c\u4e3a\u81ea\u7b7e\u540d\u7684\u516c\u94a5\uff0c\u901a\u8fc7 SSL \u52a0\u5bc6 HTTP \u6d41\u91cf\u3002\u6587\u4ef6\u5fc5\u987b\u4e3a PEM \u683c\u5f0f\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_76\n\n\n### ssl_key\n\n\nSSL \u8bc1\u4e66\u5bc6\u94a5\u7684\u8def\u5f84\u3002\u53ef\u9009\uff0c\u9ed8\u8ba4\u4e3a\u7a7a\u3002\n\n\u670d\u52a1\u5668\u4f7f\u7528\u6b64\u79c1\u94a5\u901a\u8fc7 SSL \u52a0\u5bc6 HTTP \u6d41\u91cf\u3002\u6587\u4ef6\u5fc5\u987b\u4e3a PEM \u683c\u5f0f\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_77\n\n\n### subtree_docs_cache\n\n\n\u6bcf\u4e2a\u67e5\u8be2\u7684\u516c\u5171\u5b50\u6811\u6587\u6863\u7f13\u5b58\u6700\u5927\u5927\u5c0f\u3002\u53ef\u9009\uff0c\u9ed8\u8ba4\u4e3a 0\uff08\u7981\u7528\uff09\u3002\n\n\u6b64\u8bbe\u7f6e\u9650\u5236\u516c\u5171\u5b50\u6811\u4f18\u5316\u5668\u7684\u5185\u5b58\u4f7f\u7528\uff08\u8bf7\u53c2\u89c1 [\u591a\u67e5\u8be2](../Searching/Multi-queries.md)\uff09\u3002\u6bcf\u4e2a\u67e5\u8be2\u6700\u591a\u5c06\u4f7f\u7528\u6b64\u6570\u91cf\u7684\u5185\u5b58\u6765\u7f13\u5b58\u6587\u6863\u6761\u76ee\u3002\u5c06\u9650\u5236\u8bbe\u4e3a 0 \u4f1a\u7981\u7528\u4f18\u5316\u5668\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_78\n\n\n### subtree_hits_cache\n\n\n\u6bcf\u4e2a\u67e5\u8be2\u7684\u516c\u5171\u5b50\u6811\u547d\u4e2d\u7f13\u5b58\u6700\u5927\u5927\u5c0f\u3002\u53ef\u9009\uff0c\u9ed8\u8ba4\u4e3a 0\uff08\u7981\u7528\uff09\u3002\n\n\u6b64\u8bbe\u7f6e\u9650\u5236\u516c\u5171\u5b50\u6811\u4f18\u5316\u5668\u7684\u5185\u5b58\u4f7f\u7528\uff08\u8bf7\u53c2\u89c1 [\u591a\u67e5\u8be2](../Searching/Multi-queries.md)\uff09\u3002\u6bcf\u4e2a\u67e5\u8be2\u6700\u591a\u5c06\u4f7f\u7528\u6b64\u6570\u91cf\u7684\u5185\u5b58\u6765\u7f13\u5b58\u5173\u952e\u5b57\u51fa\u73b0\u6b21\u6570\uff08\u547d\u4e2d\uff09\u3002\u5c06\u9650\u5236\u8bbe\u4e3a 0 \u4f1a\u7981\u7528\u4f18\u5316\u5668\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_79\n\n\n### threads\n\n\nManticore \u5b88\u62a4\u8fdb\u7a0b\u7684\u5de5\u4f5c\u7ebf\u7a0b\u6570\uff08\u6216\u7ebf\u7a0b\u6c60\u5927\u5c0f\uff09\u3002Manticore \u5728\u542f\u52a8\u65f6\u521b\u5efa\u6b64\u6570\u91cf\u7684 OS \u7ebf\u7a0b\uff0c\u5b83\u4eec\u5728\u5b88\u62a4\u8fdb\u7a0b\u4e2d\u6267\u884c\u6240\u6709\u4efb\u52a1\uff0c\u4f8b\u5982\u6267\u884c\u67e5\u8be2\u3001\u521b\u5efa\u7247\u6bb5\u7b49\u3002\u67d0\u4e9b\u64cd\u4f5c\u53ef\u80fd\u4f1a\u88ab\u62c6\u5206\u4e3a\u5b50\u4efb\u52a1\u5e76\u5e76\u884c\u6267\u884c\uff0c\u4f8b\u5982\uff1a\n\n* \u5728\u5b9e\u65f6\u8868\u4e2d\u641c\u7d22\n* \u5728\u7531\u672c\u5730\u8868\u7ec4\u6210\u7684\u5206\u5e03\u5f0f\u8868\u4e2d\u641c\u7d22\n* \u6fc0\u6d3b\u67e5\u8be2\u8c03\u7528\n* \u5176\u4ed6\u64cd\u4f5c\n\n\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u5b83\u8bbe\u7f6e\u4e3a\u670d\u52a1\u5668\u4e0a\u7684 CPU \u6838\u5fc3\u6570\u3002Manticore \u5728\u542f\u52a8\u65f6\u521b\u5efa\u7ebf\u7a0b\uff0c\u5e76\u5728\u505c\u6b62\u524d\u4e00\u76f4\u4fdd\u7559\u5b83\u4eec\u3002\u6bcf\u4e2a\u5b50\u4efb\u52a1\u5728\u9700\u8981\u65f6\u53ef\u4ee5\u4f7f\u7528\u5176\u4e2d\u4e00\u4e2a\u7ebf\u7a0b\u3002\u5f53\u5b50\u4efb\u52a1\u5b8c\u6210\u65f6\uff0c\u5b83\u4f1a\u91ca\u653e\u7ebf\u7a0b\uff0c\u4ee5\u4fbf\u5176\u4ed6\u5b50\u4efb\u52a1\u4f7f\u7528\u3002\n\n\u5728 I/O \u5bc6\u96c6\u578b\u8d1f\u8f7d\u7684\u60c5\u51b5\u4e0b\uff0c\u5c06\u503c\u8bbe\u7f6e\u4e3a\u9ad8\u4e8e CPU \u6838\u5fc3\u6570\u53ef\u80fd\u6709\u610f\u4e49\u3002\n\n\nCODE_BLOCK_80\n\n\n\n### thread_stack\n\n\n\u4efb\u52a1\uff08\u534f\u7a0b\uff0c\u4e00\u4e2a\u641c\u7d22\u67e5\u8be2\u53ef\u80fd\u5f15\u53d1\u591a\u4e2a\u4efb\u52a1/\u534f\u7a0b\uff09\u7684\u6700\u5927\u5806\u6808\u5927\u5c0f\u3002\u53ef\u9009\uff0c\u9ed8\u8ba4\u4e3a 128K\u3002\n\n\u6bcf\u4e2a\u4efb\u52a1\u90fd\u6709\u81ea\u5df1\u7684 128K \u5806\u6808\u3002\u5f53\u60a8\u8fd0\u884c\u67e5\u8be2\u65f6\uff0c\u4f1a\u68c0\u67e5\u5b83\u9700\u8981\u591a\u5c11\u5806\u6808\u3002\u5982\u679c\u9ed8\u8ba4\u7684 128K \u8db3\u591f\uff0c\u5b83\u5c06\u76f4\u63a5\u5904\u7406\u3002\u5982\u679c\u9700\u8981\u66f4\u591a\uff0c\u5c06\u5b89\u6392\u4e00\u4e2a\u5806\u6808\u589e\u52a0\u7684\u4efb\u52a1\uff0c\u7ee7\u7eed\u5904\u7406\u3002\u8fd9\u79cd\u9ad8\u7ea7\u5806\u6808\u7684\u6700\u5927\u5927\u5c0f\u53d7\u6b64\u8bbe\u7f6e\u9650\u5236\u3002\n\n\u5c06\u503c\u8bbe\u7f6e\u4e3a\u5408\u7406\u9ad8\u7684\u503c\u6709\u52a9\u4e8e\u5904\u7406\u975e\u5e38\u6df1\u7684\u67e5\u8be2\uff0c\u800c\u4e0d\u4f1a\u5bfc\u81f4\u6574\u4f53\u5185\u5b58\u6d88\u8017\u8fc7\u9ad8\u3002\u4f8b\u5982\uff0c\u5c06\u5176\u8bbe\u7f6e\u4e3a 1G \u5e76\u4e0d\u610f\u5473\u7740\u6bcf\u4e2a\u65b0\u4efb\u52a1\u90fd\u4f1a\u5360\u7528 1G \u5185\u5b58\uff0c\u4f46\u5982\u679c\u53d1\u73b0\u9700\u8981 100M \u5806\u6808\uff0c\u6211\u4eec\u53ea\u9700\u4e3a\u4efb\u52a1\u5206\u914d 100M\u3002\u540c\u65f6\u8fd0\u884c\u7684\u5176\u4ed6\u4efb\u52a1\u5c06\u4f7f\u7528\u9ed8\u8ba4\u7684 128K \u5806\u6808\u3002\u540c\u6837\uff0c\u6211\u4eec\u751a\u81f3\u53ef\u4ee5\u8fd0\u884c\u9700\u8981 500M \u7684\u66f4\u590d\u6742\u67e5\u8be2\u3002\u53ea\u6709\u5f53\u6211\u4eec **\u5185\u90e8\u53d1\u73b0** \u4efb\u52a1\u9700\u8981\u8d85\u8fc7 1G \u5806\u6808\u65f6\uff0c\u624d\u4f1a\u5931\u8d25\u5e76\u62a5\u544a thread_stack \u8bbe\u7f6e\u8fc7\u4f4e\u3002\n\n\u7136\u800c\uff0c\u5b9e\u9645\u4e0a\uff0c\u5373\u4f7f\u9700\u8981 16M \u5806\u6808\u7684\u67e5\u8be2\u4e5f\u5e38\u5e38\u8fc7\u4e8e\u590d\u6742\uff0c\u89e3\u6790\u65f6\u6d88\u8017\u8fc7\u591a\u65f6\u95f4\u548c\u8d44\u6e90\u3002\u56e0\u6b64\uff0c\u5b88\u62a4\u8fdb\u7a0b\u4f1a\u5904\u7406\u5b83\uff0c\u4f46\u901a\u8fc7 `thread_stack` \u8bbe\u7f6e\u9650\u5236\u6b64\u7c7b\u67e5\u8be2\u662f\u76f8\u5f53\u5408\u7406\u7684\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_81\n\n\n### unlink_old\n\n\n\u5728\u6210\u529f\u8f6e\u6362\u540e\u662f\u5426\u5220\u9664 `.old` \u8868\u526f\u672c\u3002\u53ef\u9009\uff0c\u9ed8\u8ba4\u4e3a 1\uff08\u6267\u884c\u5220\u9664\uff09\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_82\n\n\n### watchdog\n\n\n\u7ebf\u7a0b\u5316\u670d\u52a1\u5668\u770b\u95e8\u72d7\u3002\u53ef\u9009\uff0c\u9ed8\u8ba4\u4e3a 1\uff08\u542f\u7528\u770b\u95e8\u72d7\uff09\u3002", + "russian": "> **\u0412\u041d\u0418\u041c\u0410\u041d\u0418\u0415:** \u0415\u0441\u043b\u0438 \u0432\u044b \u0432\u0441\u0451 \u0435\u0449\u0451 \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0444\u0430\u0439\u043b\u0430\u043c \u0438\u0437 \u043a\u043e\u0440\u043d\u044f \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u0432\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u044f\u0432\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c `snippets_file_prefix` \u0432 \u043f\u0443\u0441\u0442\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 (\u0441\u0442\u0440\u043e\u043a\u043e\u0439 `snippets_file_prefix=`), \u043b\u0438\u0431\u043e \u0432 \u043a\u043e\u0440\u0435\u043d\u044c (\u0441\u0442\u0440\u043e\u043a\u043e\u0439 `snippets_file_prefix=/`).\n\n### sphinxql_state\n\n\n\u041f\u0443\u0442\u044c \u043a \u0444\u0430\u0439\u043b\u0443, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 SQL.\n\n\u041f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u044d\u0442\u043e\u0442 \u0444\u0430\u0439\u043b \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f. \u041f\u0440\u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u0445 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, SET GLOBAL) \u044d\u0442\u043e\u0442 \u0444\u0430\u0439\u043b \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f. \u042d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0442\u0438\u0442\u044c \u0442\u0440\u0443\u0434\u043d\u043e \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u0440\u0443\u0435\u043c\u0443\u044e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443: \u0435\u0441\u043b\u0438 \u0432\u044b \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u043b\u0438 UDF-\u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043d\u043e Manticore \u0430\u0432\u0430\u0440\u0438\u0439\u043d\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u043b \u0440\u0430\u0431\u043e\u0442\u0443, \u0442\u043e \u043f\u0440\u0438 \u0435\u0433\u043e (\u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u043c) \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u0432\u0430\u0448\u0438 UDF \u0438 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0435 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0431\u0435\u0437 \u0442\u0430\u043a\u0438\u0445 \u0441\u044e\u0440\u043f\u0440\u0438\u0437\u043e\u0432.\n\n`sphinxql_state` \u043d\u0435\u043b\u044c\u0437\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0445 \u043a\u043e\u043c\u0430\u043d\u0434, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a `CREATE TABLE`.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_73\n\n\n### sphinxql_timeout\n\n\n\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c\u0438 (\u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0430\u0445 \u0438\u043b\u0438 \u0441 [\u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0441\u0443\u0444\u0444\u0438\u043a\u0441\u0430\u043c\u0438](../Server_settings/Special_suffixes.md)) \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 SQL-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430. \u041d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u2014 15 \u043c\u0438\u043d\u0443\u0442.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_74\n\n\n### ssl_ca\n\n\n\u041f\u0443\u0442\u044c \u043a \u0444\u0430\u0439\u043b\u0443 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 \u0446\u0435\u043d\u0442\u0440\u0430 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 (CA) SSL (\u0442\u0430\u043a\u0436\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u043c\u0443 \u043a\u0430\u043a \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442). \u041d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u2014 \u043f\u0443\u0441\u0442\u043e\u0435. \u0415\u0441\u043b\u0438 \u043d\u0435 \u043f\u0443\u0441\u0442\u043e, \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0432 `ssl_cert` \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d \u044d\u0442\u0438\u043c \u043a\u043e\u0440\u043d\u0435\u0432\u044b\u043c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u043c.\n\n\u0421\u0435\u0440\u0432\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0444\u0430\u0439\u043b CA \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u043d\u0430 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0435. \u0424\u0430\u0439\u043b \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 PEM.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_75\n\n\n### ssl_cert\n\n\n\u041f\u0443\u0442\u044c \u043a SSL-\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0443 \u0441\u0435\u0440\u0432\u0435\u0440\u0430. \u041d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u2014 \u043f\u0443\u0441\u0442\u043e\u0435.\n\n\u0421\u0435\u0440\u0432\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u044d\u0442\u043e\u0442 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0441\u0430\u043c\u043e\u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430 \u0434\u043b\u044f \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f HTTP-\u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u043f\u043e SSL. \u0424\u0430\u0439\u043b \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 PEM.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_76\n\n\n### ssl_key\n\n\n\u041f\u0443\u0442\u044c \u043a \u043a\u043b\u044e\u0447\u0443 SSL-\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430. \u041d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u2014 \u043f\u0443\u0441\u0442\u043e\u0435.\n\n\u0421\u0435\u0440\u0432\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u044d\u0442\u043e\u0442 \u0437\u0430\u043a\u0440\u044b\u0442\u044b\u0439 \u043a\u043b\u044e\u0447 \u0434\u043b\u044f \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f HTTP-\u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u043f\u043e SSL. \u0424\u0430\u0439\u043b \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 PEM.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_77\n\n\n### subtree_docs_cache\n\n\n\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u043a\u044d\u0448\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043e\u0431\u0449\u0435\u0433\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0435\u0432\u0430 \u043d\u0430 \u0437\u0430\u043f\u0440\u043e\u0441. \u041d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u2014 0 (\u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u043e).\n\n\u042d\u0442\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u043c \u043e\u0431\u0449\u0435\u0433\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0435\u0432\u0430 (\u0441\u043c. [\u043c\u0443\u043b\u044c\u0442\u0438\u0437\u0430\u043f\u0440\u043e\u0441\u044b](../Searching/Multi-queries.md)). \u041c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u0441\u0442\u043e\u043b\u044c\u043a\u043e \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0442\u0440\u0430\u0447\u0435\u043d\u043e \u043d\u0430 \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430. \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043b\u0438\u043c\u0438\u0442\u0430 \u0432 0 \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0442\u043e\u0440.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_78\n\n\n### subtree_hits_cache\n\n\n\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u043a\u044d\u0448\u0430 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0439 \u043e\u0431\u0449\u0435\u0433\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0435\u0432\u0430 \u043d\u0430 \u0437\u0430\u043f\u0440\u043e\u0441. \u041d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u2014 0 (\u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u043e).\n\n\u042d\u0442\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u043c \u043e\u0431\u0449\u0435\u0433\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0435\u0432\u0430 (\u0441\u043c. [\u043c\u0443\u043b\u044c\u0442\u0438\u0437\u0430\u043f\u0440\u043e\u0441\u044b](../Searching/Multi-queries.md)). \u041c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u0441\u0442\u043e\u043b\u044c\u043a\u043e \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0442\u0440\u0430\u0447\u0435\u043d\u043e \u043d\u0430 \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0439 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0441\u043b\u043e\u0432 (\u0445\u0438\u0442\u043e\u0432) \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430. \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043b\u0438\u043c\u0438\u0442\u0430 \u0432 0 \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0442\u043e\u0440.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_79\n\n\n### threads\n\n\n\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0440\u0430\u0431\u043e\u0447\u0438\u0445 \u043f\u043e\u0442\u043e\u043a\u043e\u0432 (\u0438\u043b\u0438 \u0440\u0430\u0437\u043c\u0435\u0440 \u043f\u0443\u043b\u0430 \u043f\u043e\u0442\u043e\u043a\u043e\u0432) \u0434\u043b\u044f \u0434\u0435\u043c\u043e\u043d\u0430 Manticore. Manticore \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u044d\u0442\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u041e\u0421 \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435, \u0438 \u043e\u043d\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442 \u0432\u0441\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0432\u043d\u0443\u0442\u0440\u0438 \u0434\u0435\u043c\u043e\u043d\u0430, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432, \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u043d\u0438\u043f\u043f\u0435\u0442\u043e\u0432 \u0438 \u0442.\u0434. \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u044b \u043d\u0430 \u043f\u043e\u0434\u0437\u0430\u0434\u0430\u0447\u0438 \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:\n\n* \u041f\u043e\u0438\u0441\u043a \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438\n* \u041f\u043e\u0438\u0441\u043a \u0432 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435, \u0441\u043e\u0441\u0442\u043e\u044f\u0449\u0435\u0439 \u0438\u0437 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0442\u0430\u0431\u043b\u0438\u0446\n* \u0412\u044b\u0437\u043e\u0432 \u043f\u0435\u0440\u043a\u043e\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u043e\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430\n* \u0438 \u0434\u0440\u0443\u0433\u0438\u0435\n\n\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0440\u0430\u0432\u043d\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443 \u044f\u0434\u0435\u0440 \u0426\u041f \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435. Manticore \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043f\u043e\u0442\u043e\u043a\u0438 \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u0438 \u0445\u0440\u0430\u043d\u0438\u0442 \u0438\u0445 \u0434\u043e \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438. \u041a\u0430\u0436\u0434\u0430\u044f \u043f\u043e\u0434\u0437\u0430\u0434\u0430\u0447\u0430 \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u0434\u0438\u043d \u0438\u0437 \u043f\u043e\u0442\u043e\u043a\u043e\u0432, \u043a\u043e\u0433\u0434\u0430 \u043e\u043d \u0435\u0439 \u043d\u0443\u0436\u0435\u043d. \u041a\u043e\u0433\u0434\u0430 \u043f\u043e\u0434\u0437\u0430\u0434\u0430\u0447\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442\u0441\u044f, \u043e\u043d\u0430 \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0430\u0435\u0442 \u043f\u043e\u0442\u043e\u043a, \u0447\u0442\u043e\u0431\u044b \u0434\u0440\u0443\u0433\u0430\u044f \u043f\u043e\u0434\u0437\u0430\u0434\u0430\u0447\u0430 \u043c\u043e\u0433\u043b\u0430 \u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c.\n\n\u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u0438\u043d\u0442\u0435\u043d\u0441\u0438\u0432\u043d\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0442\u0438\u043f\u0430 I/O \u043c\u043e\u0436\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u0441\u043c\u044b\u0441\u043b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432\u044b\u0448\u0435, \u0447\u0435\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044f\u0434\u0435\u0440 \u0426\u041f.\n\n\nCODE_BLOCK_80\n\n\n\n### thread_stack\n\n\n\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0441\u0442\u0435\u043a\u0430 \u0434\u043b\u044f \u0437\u0430\u0434\u0430\u0447\u0438 (\u043a\u043e\u0440\u0443\u0442\u0438\u043d\u044b, \u043e\u0434\u0438\u043d \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0440\u043e\u0434\u0438\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0434\u0430\u0447/\u043a\u043e\u0440\u0443\u0442\u0438\u043d). \u041d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u2014 128K.\n\n\u041a\u0430\u0436\u0434\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430 \u0438\u043c\u0435\u0435\u0442 \u0441\u0432\u043e\u0439 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0441\u0442\u0435\u043a \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c 128K. \u041f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u0435\u043a\u0430 \u0435\u043c\u0443 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f. \u0415\u0441\u043b\u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445 128K \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e, \u043e\u043d \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f. \u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0435, \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0434\u0440\u0443\u0433\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430 \u0441 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u043d\u044b\u043c \u0441\u0442\u0435\u043a\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443. \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0442\u0430\u043a\u043e\u0433\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u043e\u0433\u043e \u0441\u0442\u0435\u043a\u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d \u044d\u0442\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u043e\u0439.\n\n\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043d\u0430 \u0440\u0430\u0437\u0443\u043c\u043d\u043e \u0432\u044b\u0441\u043e\u043a\u0438\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u043e\u0447\u0435\u043d\u044c \u0433\u043b\u0443\u0431\u043e\u043a\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0431\u0435\u0437 \u0447\u0440\u0435\u0437\u043c\u0435\u0440\u043d\u043e\u0433\u043e \u0440\u043e\u0441\u0442\u0430 \u043e\u0431\u0449\u0435\u0433\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u044f \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 1G \u043d\u0435 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u043a\u0430\u0436\u0434\u0430\u044f \u043d\u043e\u0432\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c 1G \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438, \u043d\u043e \u0435\u0441\u043b\u0438 \u043c\u044b \u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u0435\u0439 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f, \u0441\u043a\u0430\u0436\u0435\u043c, 100M \u0441\u0442\u0435\u043a\u0430, \u043c\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u044b\u0434\u0435\u043b\u044f\u0435\u043c 100M \u0434\u043b\u044f \u0437\u0430\u0434\u0430\u0447\u0438. \u0414\u0440\u0443\u0433\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 \u0442\u043e \u0436\u0435 \u0432\u0440\u0435\u043c\u044f \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u0441\u043e \u0441\u0432\u043e\u0438\u043c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u043c \u0441\u0442\u0435\u043a\u043e\u043c \u0432 128K. \u0422\u0430\u043a\u0438\u043c \u0436\u0435 \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0435\u0449\u0451 \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043d\u0443\u0436\u043d\u043e 500M. \u0418 \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u043b\u0438 \u043c\u044b **\u0443\u0432\u0438\u0434\u0438\u043c** \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435, \u0447\u0442\u043e \u0437\u0430\u0434\u0430\u0447\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0431\u043e\u043b\u0435\u0435 1G \u0441\u0442\u0435\u043a\u0430, \u043c\u044b \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u043c\u0441\u044f \u0441 \u043e\u0448\u0438\u0431\u043a\u043e\u0439 \u0438 \u0441\u043e\u043e\u0431\u0449\u0438\u043c \u043e \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043d\u0438\u0437\u043a\u043e\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0438 thread_stack.\n\n\u041e\u0434\u043d\u0430\u043a\u043e \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0434\u0430\u0436\u0435 \u0437\u0430\u043f\u0440\u043e\u0441, \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f 16M \u0441\u0442\u0435\u043a\u0430, \u0447\u0430\u0441\u0442\u043e \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0441\u043b\u043e\u0436\u043d\u044b\u043c \u0434\u043b\u044f \u0440\u0430\u0437\u0431\u043e\u0440\u0430 \u0438 \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u044f\u0435\u0442 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0434\u0435\u043c\u043e\u043d \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0435\u0433\u043e, \u043d\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0442\u0430\u043a\u0438\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u043e\u0439 `thread_stack` \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0432\u043f\u043e\u043b\u043d\u0435 \u0440\u0430\u0437\u0443\u043c\u043d\u044b\u043c.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_81\n\n\n### unlink_old\n\n\n\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442, \u0443\u0434\u0430\u043b\u044f\u0442\u044c \u043b\u0438 \u043a\u043e\u043f\u0438\u0438 \u0442\u0430\u0431\u043b\u0438\u0446 `.old` \u043f\u0440\u0438 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0439 \u0440\u043e\u0442\u0430\u0446\u0438\u0438. \u041d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u2014 1 (\u0443\u0434\u0430\u043b\u044f\u0442\u044c).\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_82\n\n\n### watchdog\n\n\n\u041c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439 \u0441\u0442\u043e\u0440\u043e\u0436\u0435\u0432\u043e\u0439 \u0442\u0430\u0439\u043c\u0435\u0440. \u041d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u2014 1 (\u0441\u0442\u043e\u0440\u043e\u0436\u0435\u0432\u043e\u0439 \u0442\u0430\u0439\u043c\u0435\u0440 \u0432\u043a\u043b\u044e\u0447\u0451\u043d)." + }, + "is_code_or_comment": false, + "model": "deepseek/deepseek-v3.2", + "updated_at": 1773763270 + }, + "d85aafdf99b28c3bc1eb1867b45fb6fc74bbb906158d24003d420dbea59fd3fa": { + "original": "\nMaximum allowed per-filter values count. This setting is only used for internal sanity checks and does not directly affect RAM usage or performance. Optional, the default is 4096.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_42\n\n\n### max_open_files\n\n\nThe maximum number of files that the server is allowed to open is called the \"soft limit\". Note that serving large fragmented real-time tables may require this limit to be set high, as each disk chunk may occupy a dozen or more files. For example, a real-time table with 1000 chunks may require thousands of files to be opened simultaneously. If you encounter the error 'Too many open files' in the logs, try adjusting this option, as it may help resolve the issue.\n\nThere is also a \"hard limit\" that cannot be exceeded by the option. This limit is defined by the system and can be changed in the file `/etc/security/limits.conf` on Linux. Other operating systems may have different approaches, so consult your manuals for more information.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_43\n\n\n\nApart from direct numeric values, you can use the magic word 'max' to set the limit equal to the available current hard limit.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_44\n\n\n### max_packet_size\n\n\nMaximum allowed network packet size. This setting limits both query packets from clients and response packets from remote agents in a distributed environment. Only used for internal sanity checks, it does not directly affect RAM usage or performance. Optional, the default is 128M.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_45\n\n\n### mysql_version_string\n\n\nA server version string to return via the MySQL protocol. Optional, the default is empty (returns the Manticore version).\n\nSeveral picky MySQL client libraries depend on a particular version number format used by MySQL, and moreover, sometimes choose a different execution path based on the reported version number (rather than the indicated capabilities flags). For instance, Python MySQLdb 1.2.2 throws an exception when the version number is not in X.Y.ZZ format; MySQL .NET connector 6.3.x fails internally on version numbers 1.x along with a certain combination of flags, etc. To work around that, you can use the `mysql_version_string` directive and have `searchd` report a different version to clients connecting over the MySQL protocol. (By default, it reports its own version.)\n\n\n##### Example:\n\n\n\nCODE_BLOCK_46\n\n\n### net_workers\n\nNumber of network threads, the default is 1.\n\nThis setting is useful for extremely high query rates when just one thread is not enough to manage all the incoming queries.\n\n### net_wait_tm\n\nControls the busy loop interval of the network thread. The default is -1, and it can be set to -1, 0, or a positive integer.\n\nIn cases where the server is configured as a pure master and just routes requests to agents, it is important to handle requests without delays and not allow the network thread to sleep. There is a busy loop for that. After an incoming request, the network thread uses CPU poll for `10 * net_wait_tm` milliseconds if `net_wait_tm` is a positive number or polls only with the CPU if `net_wait_tm` is `0`. Also, the busy loop can be disabled with `net_wait_tm = -1` - in this case, the poller sets the timeout to the actual agent's timeouts on the system polling call.\n\n> **WARNING:** A CPU busy loop actually loads the CPU core, so setting this value to any non-default value will cause noticeable CPU usage even with an idle server.\n\n### net_throttle_accept\n\nDefines how many clients are accepted on each iteration of the network loop. Default is 0 (unlimited), which should be fine for most users. This is a fine-tuning option to control the throughput of the network loop in high load scenarios.\n\n### net_throttle_action\n\nDefines how many requests are processed on each iteration of the network loop. The default is 0 (unlimited), which should be fine for most users. This is a fine-tuning option to control the throughput of the network loop in high load scenarios.\n\n### network_timeout\n\n\nNetwork client request read/write timeout, in seconds (or [special_suffixes](../Server_settings/Special_suffixes.md)). Optional, the default is 5 seconds. `searchd` will forcibly close a client connection which fails to send a query or read a result within this timeout.\n\nNote also the [reset_network_timeout_on_packet](../Server_settings/Searchd.md#reset_network_timeout_on_packet) parameter. This parameter alters the behavior of `network_timeout` from applying to the entire `query` or `result` to individual packets instead. Typically, a query/result fits within one or two packets. However, in cases where a large amount of data is required, this parameter can be invaluable in maintaining active operations.\n\n\n\nCODE_BLOCK_47\n\n\n### node_address\n\n\nThis setting allows you to specify the network address of the node. By default, it is set to the replication [listen](../Server_settings/Searchd.md#listen) address. This is correct in most cases; however, there are situations where you have to specify it manually:\n\n* Node behind a firewall\n* Network address translation enabled (NAT)\n* Container deployments, such as Docker or cloud deployments\n* Clusters with nodes in more than one region\n\n\n##### Example:\n\n\n\nCODE_BLOCK_48\n\n\n### not_terms_only_allowed\n\n\nThis setting determines whether to allow queries with only the [negation](../Searching/Full_text_matching/Operators.md#Negation-operator) full-text operator. Optional, the default is 0 (fail queries with only the NOT operator).", + "translations": { + "russian": "\n\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043d\u0430 \u0444\u0438\u043b\u044c\u0442\u0440. \u042d\u0442\u043e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0445 \u043f\u0440\u043e\u0432\u0435\u0440\u043e\u043a \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u0438 \u0438 \u043d\u0435 \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u0438\u043b\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c. \u041d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439, \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 4096.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_42\n\n\n### max_open_files\n\n\n\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0444\u0430\u0439\u043b\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u0443 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u043e \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0442\u044c, \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \"\u043c\u044f\u0433\u043a\u0438\u043c \u043b\u0438\u043c\u0438\u0442\u043e\u043c\". \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u0435 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0442\u0430\u0431\u043b\u0438\u0446 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0432\u044b\u0441\u043e\u043a\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u043b\u0438\u043c\u0438\u0442\u0430, \u0442\u0430\u043a \u043a\u0430\u043a \u043a\u0430\u0436\u0434\u044b\u0439 \u0434\u0438\u0441\u043a\u043e\u0432\u044b\u0439 \u0447\u0430\u043d\u043a \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c \u0434\u044e\u0436\u0438\u043d\u0443 \u0438\u043b\u0438 \u0431\u043e\u043b\u0435\u0435 \u0444\u0430\u0439\u043b\u043e\u0432. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0441 1000 \u0447\u0430\u043d\u043a\u043e\u0432 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u044c \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u044f \u0442\u044b\u0441\u044f\u0447 \u0444\u0430\u0439\u043b\u043e\u0432. \u0415\u0441\u043b\u0438 \u0432 \u0436\u0443\u0440\u043d\u0430\u043b\u0430\u0445 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043e\u0448\u0438\u0431\u043a\u0430 'Too many open files', \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440, \u0442\u0430\u043a \u043a\u0430\u043a \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043c\u043e\u0447\u044c \u0440\u0435\u0448\u0438\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443.\n\n\u0422\u0430\u043a\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \"\u0436\u0435\u0441\u0442\u043a\u0438\u0439 \u043b\u0438\u043c\u0438\u0442\", \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u0435\u0432\u044b\u0448\u0435\u043d \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u044d\u0442\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430. \u042d\u0442\u043e\u0442 \u043b\u0438\u043c\u0438\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \u0438 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d \u0432 \u0444\u0430\u0439\u043b\u0435 `/etc/security/limits.conf` \u0432 Linux. \u0412 \u0434\u0440\u0443\u0433\u0438\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044b, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435\u0441\u044c \u043a \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0430\u043c \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_43\n\n\n\n\u041f\u043e\u043c\u0438\u043c\u043e \u043f\u0440\u044f\u043c\u044b\u0445 \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043c\u0430\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0441\u043b\u043e\u0432\u043e 'max', \u0447\u0442\u043e\u0431\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043b\u0438\u043c\u0438\u0442 \u0440\u0430\u0432\u043d\u044b\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u043c\u0443 \u0442\u0435\u043a\u0443\u0449\u0435\u043c\u0443 \u0436\u0435\u0441\u0442\u043a\u043e\u043c\u0443 \u043b\u0438\u043c\u0438\u0442\u0443.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_44\n\n\n### max_packet_size\n\n\n\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e \u043f\u0430\u043a\u0435\u0442\u0430. \u042d\u0442\u043e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0435\u0442 \u043a\u0430\u043a \u043f\u0430\u043a\u0435\u0442\u044b \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043e\u0442 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432, \u0442\u0430\u043a \u0438 \u043f\u0430\u043a\u0435\u0442\u044b \u043e\u0442\u0432\u0435\u0442\u043e\u0432 \u043e\u0442 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0445 \u0430\u0433\u0435\u043d\u0442\u043e\u0432 \u0432 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0441\u0440\u0435\u0434\u0435. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0445 \u043f\u0440\u043e\u0432\u0435\u0440\u043e\u043a \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u0438, \u043d\u0435 \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u0438\u043b\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c. \u041d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439, \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 128M.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_45\n\n\n### mysql_version_string\n\n\n\u0421\u0442\u0440\u043e\u043a\u0430 \u0432\u0435\u0440\u0441\u0438\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u0430\u044f \u043f\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443 MySQL. \u041d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439, \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043f\u0443\u0441\u0442\u0430\u044f (\u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0432\u0435\u0440\u0441\u0438\u044e Manticore).\n\n\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u0432\u0435\u0440\u0435\u0434\u043b\u0438\u0432\u044b\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 MySQL \u0437\u0430\u0432\u0438\u0441\u044f\u0442 \u043e\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u043d\u043e\u043c\u0435\u0440\u0430 \u0432\u0435\u0440\u0441\u0438\u0438, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u0433\u043e MySQL, \u0438 \u0431\u043e\u043b\u0435\u0435 \u0442\u043e\u0433\u043e, \u0438\u043d\u043e\u0433\u0434\u0430 \u0432\u044b\u0431\u0438\u0440\u0430\u044e\u0442 \u0434\u0440\u0443\u0433\u043e\u0439 \u043f\u0443\u0442\u044c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u043c\u043e\u0433\u043e \u043d\u043e\u043c\u0435\u0440\u0430 \u0432\u0435\u0440\u0441\u0438\u0438 (\u0430 \u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0445 \u0444\u043b\u0430\u0433\u043e\u0432 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439). \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, Python MySQLdb 1.2.2 \u0432\u044b\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u0442 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435, \u043a\u043e\u0433\u0434\u0430 \u043d\u043e\u043c\u0435\u0440 \u0432\u0435\u0440\u0441\u0438\u0438 \u043d\u0435 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 X.Y.ZZ; MySQL .NET connector 6.3.x \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442\u0441\u044f \u043e\u0448\u0438\u0431\u043a\u043e\u0439 \u043d\u0430 \u043d\u043e\u043c\u0435\u0440\u0430\u0445 \u0432\u0435\u0440\u0441\u0438\u0439 1.x \u0432 \u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u0438 \u0441 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0435\u0439 \u0444\u043b\u0430\u0433\u043e\u0432 \u0438 \u0442.\u0434. \u0427\u0442\u043e\u0431\u044b \u043e\u0431\u043e\u0439\u0442\u0438 \u044d\u0442\u043e, \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u0443 `mysql_version_string` \u0438 \u0437\u0430\u0441\u0442\u0430\u0432\u0438\u0442\u044c `searchd` \u0441\u043e\u043e\u0431\u0449\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u044e\u0449\u0438\u043c\u0441\u044f \u043f\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443 MySQL. (\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043e\u043d \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u0442 \u0441\u0432\u043e\u044e \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e.)\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_46\n\n\n### net_workers\n\n\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u043f\u043e\u0442\u043e\u043a\u043e\u0432, \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 1.\n\n\u042d\u0442\u043e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043f\u043e\u043b\u0435\u0437\u0435\u043d \u043f\u0440\u0438 \u0447\u0440\u0435\u0437\u0432\u044b\u0447\u0430\u0439\u043d\u043e \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432, \u043a\u043e\u0433\u0434\u0430 \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0432\u0441\u0435\u0445 \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432.\n\n### net_wait_tm\n\n\u0423\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u043e\u043c \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430 \u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e -1, \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e \u0432 -1, 0 \u0438\u043b\u0438 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0446\u0435\u043b\u043e\u0435 \u0447\u0438\u0441\u043b\u043e.\n\n\u0412 \u0441\u043b\u0443\u0447\u0430\u044f\u0445, \u043a\u043e\u0433\u0434\u0430 \u0441\u0435\u0440\u0432\u0435\u0440 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d \u043a\u0430\u043a \u0447\u0438\u0441\u0442\u044b\u0439 \u043c\u0430\u0441\u0442\u0435\u0440 \u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0430\u0433\u0435\u043d\u0442\u0430\u043c, \u0432\u0430\u0436\u043d\u043e \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0431\u0435\u0437 \u0437\u0430\u0434\u0435\u0440\u0436\u0435\u043a \u0438 \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0442\u044c \u0441\u0435\u0442\u0435\u0432\u043e\u043c\u0443 \u043f\u043e\u0442\u043e\u043a\u0443 \u0441\u043f\u0430\u0442\u044c. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0446\u0438\u043a\u043b. \u041f\u043e\u0441\u043b\u0435 \u0432\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u043f\u043e\u0442\u043e\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043e\u043f\u0440\u043e\u0441 CPU \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 `10 * net_wait_tm` \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434, \u0435\u0441\u043b\u0438 `net_wait_tm` \u2014 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e, \u0438\u043b\u0438 \u043e\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e CPU, \u0435\u0441\u043b\u0438 `net_wait_tm` \u0440\u0430\u0432\u0435\u043d `0`. \u0422\u0430\u043a\u0436\u0435 \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0446\u0438\u043a\u043b \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e `net_wait_tm = -1` \u2014 \u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u043e\u043b\u043b\u0435\u0440 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0442\u0430\u0439\u043c\u0430\u0443\u0442 \u043d\u0430 \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f \u0430\u0433\u0435\u043d\u0442\u043e\u0432 \u043f\u0440\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u043c \u0432\u044b\u0437\u043e\u0432\u0435 \u043e\u043f\u0440\u043e\u0441\u0430.\n\n> **\u0412\u041d\u0418\u041c\u0410\u041d\u0418\u0415:** \u0410\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0446\u0438\u043a\u043b CPU \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u044f\u0434\u0440\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u044d\u0442\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u043b\u044e\u0431\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043e\u0442\u043b\u0438\u0447\u043d\u043e\u0435 \u043e\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u0432\u044b\u0437\u043e\u0432\u0435\u0442 \u0437\u0430\u043c\u0435\u0442\u043d\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 CPU \u0434\u0430\u0436\u0435 \u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u0430\u0438\u0432\u0430\u044e\u0449\u0435\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435.\n\n### net_throttle_accept\n\n\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 0 (\u0431\u0435\u0437 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439), \u0447\u0442\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439. \u042d\u0442\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0442\u043e\u043d\u043a\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c\u044e \u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430 \u0432 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044f\u0445 \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438.\n\n### net_throttle_action\n\n\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 0 (\u0431\u0435\u0437 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439), \u0447\u0442\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439. \u042d\u0442\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0442\u043e\u043d\u043a\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c\u044e \u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430 \u0432 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044f\u0445 \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438.\n\n### network_timeout\n\n\n\u0422\u0430\u0439\u043c\u0430\u0443\u0442 \u0447\u0442\u0435\u043d\u0438\u044f/\u0437\u0430\u043f\u0438\u0441\u0438 \u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0430, \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0430\u0445 (\u0438\u043b\u0438 \u0441 [\u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0441\u0443\u0444\u0444\u0438\u043a\u0441\u0430\u043c\u0438](../Server_settings/Special_suffixes.md)). \u041d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439, \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 5 \u0441\u0435\u043a\u0443\u043d\u0434. `searchd` \u043f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0437\u0430\u043a\u0440\u043e\u0435\u0442 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441 \u0438\u043b\u0438 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u0442\u0430\u0439\u043c\u0430\u0443\u0442\u0430.\n\n\u0422\u0430\u043a\u0436\u0435 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 [reset_network_timeout_on_packet](../Server_settings/Searchd.md#reset_network_timeout_on_packet). \u042d\u0442\u043e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u0442 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 `network_timeout` \u0441 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043a\u043e \u0432\u0441\u0435\u043c\u0443 `\u0437\u0430\u043f\u0440\u043e\u0441\u0443` \u0438\u043b\u0438 `\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0443` \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043a \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c \u043f\u0430\u043a\u0435\u0442\u0430\u043c. \u041e\u0431\u044b\u0447\u043d\u043e \u0437\u0430\u043f\u0440\u043e\u0441/\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0443\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u043e\u0434\u0438\u043d \u0438\u043b\u0438 \u0434\u0432\u0430 \u043f\u0430\u043a\u0435\u0442\u0430. \u041e\u0434\u043d\u0430\u043a\u043e \u0432 \u0441\u043b\u0443\u0447\u0430\u044f\u0445, \u043a\u043e\u0433\u0434\u0430 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043e\u0431\u044a\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0445, \u044d\u0442\u043e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0435\u043e\u0446\u0435\u043d\u0438\u043c \u0434\u043b\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044f \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439.\n\n\n\nCODE_BLOCK_47\n\n\n### node_address\n\n\n\u042d\u0442\u043e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0430\u0434\u0440\u0435\u0441 \u0443\u0437\u043b\u0430. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043e\u043d \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u0430\u0434\u0440\u0435\u0441 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438 [listen](../Server_settings/Searchd.md#listen). \u042d\u0442\u043e \u0432\u0435\u0440\u043d\u043e \u0432 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u0441\u043b\u0443\u0447\u0430\u0435\u0432; \u043e\u0434\u043d\u0430\u043a\u043e \u0431\u044b\u0432\u0430\u044e\u0442 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438, \u043a\u043e\u0433\u0434\u0430 \u0435\u0433\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0432\u0440\u0443\u0447\u043d\u0443\u044e:\n\n* \u0423\u0437\u0435\u043b \u0437\u0430 \u0431\u0440\u0430\u043d\u0434\u043c\u0430\u0443\u044d\u0440\u043e\u043c\n* \u0412\u043a\u043b\u044e\u0447\u0435\u043d \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044f \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u0430\u0434\u0440\u0435\u0441\u043e\u0432 (NAT)\n* \u0420\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u0445, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a Docker \u0438\u043b\u0438 \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0435 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f\n* \u041a\u043b\u0430\u0441\u0442\u0435\u0440\u044b \u0441 \u0443\u0437\u043b\u0430\u043c\u0438 \u0431\u043e\u043b\u0435\u0435 \u0447\u0435\u043c \u0432 \u043e\u0434\u043d\u043e\u043c \u0440\u0435\u0433\u0438\u043e\u043d\u0435\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_48\n\n\n### not_terms_only_allowed\n\n\n\u042d\u0442\u043e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442, \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0442\u044c \u043b\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u044b, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 [\u043e\u0442\u0440\u0438\u0446\u0430\u043d\u0438\u044f](../Searching/Full_text_matching/Operators.md#Negation-operator) \u043f\u043e\u043b\u043d\u043e\u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u0438\u0441\u043a\u0430. \u041d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439, \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 0 (\u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u043c NOT \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u044e\u0442\u0441\u044f \u043e\u0448\u0438\u0431\u043a\u043e\u0439).", + "chinese": "\n\u6bcf\u4e2a\u8fc7\u6ee4\u5668\u5141\u8bb8\u7684\u6700\u5927\u503c\u6570\u91cf\u3002\u6b64\u8bbe\u7f6e\u4ec5\u7528\u4e8e\u5185\u90e8\u5408\u7406\u6027\u68c0\u67e5\uff0c\u4e0d\u4f1a\u76f4\u63a5\u5f71\u54cd\u5185\u5b58\u4f7f\u7528\u6216\u6027\u80fd\u3002\u53ef\u9009\uff0c\u9ed8\u8ba4\u503c\u4e3a4096\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_42\n\n\n### max_open_files\n\n\n\u670d\u52a1\u5668\u5141\u8bb8\u6253\u5f00\u7684\u6700\u5927\u6587\u4ef6\u6570\u79f0\u4e3a\u201c\u8f6f\u9650\u5236\u201d\u3002\u8bf7\u6ce8\u610f\uff0c\u670d\u52a1\u5927\u578b\u788e\u7247\u5316\u5b9e\u65f6\u8868\u53ef\u80fd\u9700\u8981\u5c06\u6b64\u9650\u5236\u8bbe\u7f6e\u5f97\u8f83\u9ad8\uff0c\u56e0\u4e3a\u6bcf\u4e2a\u78c1\u76d8\u5757\u53ef\u80fd\u5360\u7528\u5341\u51e0\u4e2a\u6216\u66f4\u591a\u7684\u6587\u4ef6\u3002\u4f8b\u5982\uff0c\u4e00\u4e2a\u5305\u542b1000\u4e2a\u5757\u7684\u5b9e\u65f6\u8868\u53ef\u80fd\u9700\u8981\u540c\u65f6\u6253\u5f00\u6570\u5343\u4e2a\u6587\u4ef6\u3002\u5982\u679c\u5728\u65e5\u5fd7\u4e2d\u9047\u5230\u201cToo many open files\u201d\u9519\u8bef\uff0c\u8bf7\u5c1d\u8bd5\u8c03\u6574\u6b64\u9009\u9879\uff0c\u8fd9\u53ef\u80fd\u6709\u52a9\u4e8e\u89e3\u51b3\u95ee\u9898\u3002\n\n\u8fd8\u6709\u4e00\u4e2a\u201c\u786c\u9650\u5236\u201d\uff0c\u8be5\u9650\u5236\u65e0\u6cd5\u901a\u8fc7\u9009\u9879\u8d85\u8fc7\u3002\u6b64\u9650\u5236\u7531\u7cfb\u7edf\u5b9a\u4e49\uff0c\u53ef\u4ee5\u5728Linux\u4e0a\u7684\u6587\u4ef6`/etc/security/limits.conf`\u4e2d\u66f4\u6539\u3002\u5176\u4ed6\u64cd\u4f5c\u7cfb\u7edf\u53ef\u80fd\u6709\u4e0d\u540c\u7684\u65b9\u6cd5\uff0c\u56e0\u6b64\u8bf7\u53c2\u9605\u76f8\u5173\u624b\u518c\u4ee5\u83b7\u53d6\u66f4\u591a\u4fe1\u606f\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_43\n\n\n\n\u9664\u4e86\u76f4\u63a5\u7684\u6570\u5b57\u503c\u5916\uff0c\u8fd8\u53ef\u4ee5\u4f7f\u7528\u201cmax\u201d\u8fd9\u4e2a\u9b54\u6cd5\u8bcd\u5c06\u9650\u5236\u8bbe\u7f6e\u4e3a\u5f53\u524d\u53ef\u7528\u7684\u786c\u9650\u5236\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_44\n\n\n### max_packet_size\n\n\n\u6700\u5927\u5141\u8bb8\u7684\u7f51\u7edc\u6570\u636e\u5305\u5927\u5c0f\u3002\u6b64\u8bbe\u7f6e\u9650\u5236\u4e86\u5ba2\u6237\u7aef\u7684\u67e5\u8be2\u6570\u636e\u5305\u548c\u5206\u5e03\u5f0f\u73af\u5883\u4e2d\u8fdc\u7a0b\u4ee3\u7406\u7684\u54cd\u5e94\u6570\u636e\u5305\u3002\u4ec5\u7528\u4e8e\u5185\u90e8\u5408\u7406\u6027\u68c0\u67e5\uff0c\u4e0d\u4f1a\u76f4\u63a5\u5f71\u54cd\u5185\u5b58\u4f7f\u7528\u6216\u6027\u80fd\u3002\u53ef\u9009\uff0c\u9ed8\u8ba4\u503c\u4e3a128M\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_45\n\n\n### mysql_version_string\n\n\n\u901a\u8fc7MySQL\u534f\u8bae\u8fd4\u56de\u7684\u670d\u52a1\u5668\u7248\u672c\u5b57\u7b26\u4e32\u3002\u53ef\u9009\uff0c\u9ed8\u8ba4\u4e3a\u7a7a\uff08\u8fd4\u56deManticore\u7248\u672c\uff09\u3002\n\n\u4e00\u4e9b\u6311\u5254\u7684MySQL\u5ba2\u6237\u7aef\u5e93\u4f9d\u8d56\u4e8eMySQL\u4f7f\u7528\u7684\u7279\u5b9a\u7248\u672c\u53f7\u683c\u5f0f\uff0c\u800c\u4e14\u6709\u65f6\u4f1a\u6839\u636e\u62a5\u544a\u7684\u7248\u672c\u53f7\uff08\u800c\u4e0d\u662f\u6307\u793a\u7684\u80fd\u529b\u6807\u5fd7\uff09\u9009\u62e9\u4e0d\u540c\u7684\u6267\u884c\u8def\u5f84\u3002\u4f8b\u5982\uff0cPython MySQLdb 1.2.2\u5728\u7248\u672c\u53f7\u4e0d\u662fX.Y.ZZ\u683c\u5f0f\u65f6\u4f1a\u629b\u51fa\u5f02\u5e38\uff1bMySQL .NET\u8fde\u63a5\u56686.3.x\u5728\u7248\u672c\u53f7\u4e3a1.x\u5e76\u7ed3\u5408\u67d0\u4e9b\u6807\u5fd7\u7ec4\u5408\u65f6\u4f1a\u5185\u90e8\u5931\u8d25\u7b49\u3002\u4e3a\u4e86\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\uff0c\u53ef\u4ee5\u4f7f\u7528`mysql_version_string`\u6307\u4ee4\uff0c\u5e76\u8ba9`searchd`\u901a\u8fc7MySQL\u534f\u8bae\u5411\u5ba2\u6237\u7aef\u62a5\u544a\u4e0d\u540c\u7684\u7248\u672c\u53f7\u3002\uff08\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u5b83\u4f1a\u62a5\u544a\u81ea\u5df1\u7684\u7248\u672c\u3002\uff09\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_46\n\n\n### net_workers\n\n\u7f51\u7edc\u7ebf\u7a0b\u6570\u91cf\uff0c\u9ed8\u8ba4\u4e3a1\u3002\n\n\u5f53\u4ec5\u6709\u4e00\u4e2a\u7ebf\u7a0b\u4e0d\u8db3\u4ee5\u5904\u7406\u6240\u6709\u4f20\u5165\u67e5\u8be2\u65f6\uff0c\u6b64\u8bbe\u7f6e\u5728\u6781\u9ad8\u67e5\u8be2\u7387\u7684\u60c5\u51b5\u4e0b\u975e\u5e38\u6709\u7528\u3002\n\n### net_wait_tm\n\n\u63a7\u5236\u7f51\u7edc\u7ebf\u7a0b\u7684\u7e41\u5fd9\u5faa\u73af\u95f4\u9694\u3002\u9ed8\u8ba4\u503c\u4e3a-1\uff0c\u53ef\u4ee5\u8bbe\u7f6e\u4e3a-1\u30010\u6216\u6b63\u6574\u6570\u3002\n\n\u5f53\u670d\u52a1\u5668\u914d\u7f6e\u4e3a\u7eaf\u4e3b\u8282\u70b9\u5e76\u4ec5\u5c06\u8bf7\u6c42\u8def\u7531\u5230\u4ee3\u7406\u65f6\uff0c\u91cd\u8981\u7684\u662f\u8981\u65e0\u5ef6\u8fdf\u5730\u5904\u7406\u8bf7\u6c42\uff0c\u5e76\u4e14\u4e0d\u5141\u8bb8\u7f51\u7edc\u7ebf\u7a0b\u7761\u7720\u3002\u4e3a\u6b64\u6709\u4e00\u4e2a\u7e41\u5fd9\u5faa\u73af\u3002\u5982\u679c`net_wait_tm`\u662f\u6b63\u6570\uff0c\u5219\u5728\u4f20\u5165\u8bf7\u6c42\u540e\uff0c\u7f51\u7edc\u7ebf\u7a0b\u4f7f\u7528CPU\u8f6e\u8be2`10 * net_wait_tm`\u6beb\u79d2\uff1b\u5982\u679c`net_wait_tm`\u4e3a0\uff0c\u5219\u4ec5\u4f7f\u7528CPU\u8f6e\u8be2\u3002\u6b64\u5916\uff0c\u53ef\u4ee5\u901a\u8fc7`net_wait_tm = -1`\u7981\u7528\u7e41\u5fd9\u5faa\u73af - \u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0c\u8f6e\u8be2\u5668\u5728\u7cfb\u7edf\u8f6e\u8be2\u8c03\u7528\u4e2d\u5c06\u8d85\u65f6\u8bbe\u7f6e\u4e3a\u5b9e\u9645\u4ee3\u7406\u7684\u8d85\u65f6\u3002\n\n> **\u8b66\u544a\uff1a** CPU\u7e41\u5fd9\u5faa\u73af\u5b9e\u9645\u4e0a\u4f1a\u52a0\u8f7dCPU\u6838\u5fc3\uff0c\u56e0\u6b64\u5c06\u6b64\u503c\u8bbe\u7f6e\u4e3a\u4efb\u4f55\u975e\u9ed8\u8ba4\u503c\u4f1a\u5bfc\u81f4\u5373\u4f7f\u5728\u7a7a\u95f2\u670d\u52a1\u5668\u4e0a\u4e5f\u4f1a\u51fa\u73b0\u660e\u663e\u7684CPU\u4f7f\u7528\u7387\u3002\n\n### net_throttle_accept\n\n\u5b9a\u4e49\u7f51\u7edc\u5faa\u73af\u7684\u6bcf\u6b21\u8fed\u4ee3\u4e2d\u63a5\u53d7\u7684\u5ba2\u6237\u7aef\u6570\u91cf\u3002\u9ed8\u8ba4\u503c\u4e3a0\uff08\u65e0\u9650\u5236\uff09\uff0c\u5bf9\u4e8e\u5927\u591a\u6570\u7528\u6237\u6765\u8bf4\u5e94\u8be5\u8db3\u591f\u3002\u8fd9\u662f\u4e00\u4e2a\u5fae\u8c03\u9009\u9879\uff0c\u7528\u4e8e\u5728\u9ad8\u8d1f\u8f7d\u573a\u666f\u4e0b\u63a7\u5236\u7f51\u7edc\u5faa\u73af\u7684\u541e\u5410\u91cf\u3002\n\n### net_throttle_action\n\n\u5b9a\u4e49\u7f51\u7edc\u5faa\u73af\u7684\u6bcf\u6b21\u8fed\u4ee3\u4e2d\u5904\u7406\u7684\u8bf7\u6c42\u6570\u91cf\u3002\u9ed8\u8ba4\u503c\u4e3a0\uff08\u65e0\u9650\u5236\uff09\uff0c\u5bf9\u4e8e\u5927\u591a\u6570\u7528\u6237\u6765\u8bf4\u5e94\u8be5\u8db3\u591f\u3002\u8fd9\u662f\u4e00\u4e2a\u5fae\u8c03\u9009\u9879\uff0c\u7528\u4e8e\u5728\u9ad8\u8d1f\u8f7d\u573a\u666f\u4e0b\u63a7\u5236\u7f51\u7edc\u5faa\u73af\u7684\u541e\u5410\u91cf\u3002\n\n### network_timeout\n\n\n\u7f51\u7edc\u5ba2\u6237\u7aef\u8bf7\u6c42\u7684\u8bfb\u5199\u8d85\u65f6\u65f6\u95f4\uff0c\u4ee5\u79d2\u4e3a\u5355\u4f4d\uff08\u6216 [special_suffixes](../Server_settings/Special_suffixes.md)\uff09\u3002\u53ef\u9009\uff0c\u9ed8\u8ba4\u503c\u4e3a5\u79d2\u3002`searchd`\u5c06\u5f3a\u5236\u5173\u95ed\u5728\u8d85\u65f6\u5185\u672a\u80fd\u53d1\u9001\u67e5\u8be2\u6216\u8bfb\u53d6\u7ed3\u679c\u7684\u5ba2\u6237\u7aef\u8fde\u63a5\u3002\n\n\u8fd8\u8981\u6ce8\u610f [reset_network_timeout_on_packet](../Server_settings/Searchd.md#reset_network_timeout_on_packet) \u53c2\u6570\u3002\u6b64\u53c2\u6570\u4f1a\u6539\u53d8`network_timeout`\u7684\u884c\u4e3a\uff0c\u4f7f\u5176\u9002\u7528\u4e8e\u6bcf\u4e2a\u6570\u636e\u5305\u800c\u4e0d\u662f\u6574\u4e2a`query`\u6216`result`\u3002\u901a\u5e38\uff0c\u67e5\u8be2/\u7ed3\u679c\u9002\u5408\u4e00\u4e24\u4e2a\u6570\u636e\u5305\u3002\u7136\u800c\uff0c\u5728\u9700\u8981\u5927\u91cf\u6570\u636e\u7684\u60c5\u51b5\u4e0b\uff0c\u6b64\u53c2\u6570\u5728\u4fdd\u6301\u64cd\u4f5c\u6d3b\u8dc3\u65b9\u9762\u53ef\u80fd\u975e\u5e38\u6709\u4ef7\u503c\u3002\n\n\n\nCODE_BLOCK_47\n\n\n### node_address\n\n\n\u6b64\u8bbe\u7f6e\u5141\u8bb8\u60a8\u6307\u5b9a\u8282\u70b9\u7684\u7f51\u7edc\u5730\u5740\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u5b83\u8bbe\u7f6e\u4e3a\u590d\u5236\u7684 [listen](../Server_settings/Searchd.md#listen) \u5730\u5740\u3002\u8fd9\u5728\u5927\u591a\u6570\u60c5\u51b5\u4e0b\u662f\u6b63\u786e\u7684\uff1b\u4f46\u662f\uff0c\u6709\u4e9b\u60c5\u51b5\u4e0b\u60a8\u5fc5\u987b\u624b\u52a8\u6307\u5b9a\u5b83\uff1a\n\n* \u9632\u706b\u5899\u540e\u7684\u8282\u70b9\n* \u542f\u7528\u4e86\u7f51\u7edc\u5730\u5740\u8f6c\u6362\uff08NAT\uff09\n* \u5bb9\u5668\u90e8\u7f72\uff0c\u5982Docker\u6216\u4e91\u90e8\u7f72\n* \u8de8\u591a\u4e2a\u533a\u57df\u7684\u96c6\u7fa4\u4e2d\u7684\u8282\u70b9\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_48\n\n\n### not_terms_only_allowed\n\n\n\u6b64\u8bbe\u7f6e\u786e\u5b9a\u662f\u5426\u5141\u8bb8\u4ec5\u4f7f\u7528 [negation](../Searching/Full_text_matching/Operators.md#Negation-operator) \u5168\u6587\u641c\u7d22\u64cd\u4f5c\u7b26\u7684\u67e5\u8be2\u3002\u53ef\u9009\uff0c\u9ed8\u8ba4\u503c\u4e3a0\uff08\u4ec5\u4f7f\u7528NOT\u64cd\u4f5c\u7b26\u7684\u67e5\u8be2\u5931\u8d25\uff09\u3002" + }, + "is_code_or_comment": false, + "model": "qwen/qwen3-14b", + "updated_at": 1773763271 + }, + "5462d06bf859f595cd2caf8dfe067b8b90867ce539a7076bf6e8f3213a7513aa": { + "original": "When querying, some reads know in advance exactly how much data is there to be read, but some currently do not. Most prominently, hit list size is not currently known in advance. This setting lets you control how much data to read in such cases. It impacts hit list I/O time, reducing it for lists larger than unhinted read size, but raising it for smaller lists. It does **not** affect RAM usage because the read buffer will already be allocated. So it should not be greater than read_buffer.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_61\n\n\n### reset_network_timeout_on_packet\n\n\nRefines the behavior of networking timeouts (such as `network_timeout` and `agent_query_timeout`).\n\nWhen set to 0, timeouts limit the maximum time for sending the entire request/query.\nWhen set to 1 (default), timeouts limit the maximum time between network activities.\n\nWith replication, a node may need to send a large file (for example, 100GB) to another node. Assume the network can transfer data at 1GB/s, with a series of packets of 4-5MB each. To transfer the entire file, you would need 100 seconds. A default timeout of 5 seconds would only allow the transfer of 5GB before the connection is dropped. Increasing the timeout could be a workaround, but it is not scalable (for instance, the next file might be 150GB, leading to failure again). However, with the default `reset_network_timeout_on_packet` set to 1, the timeout is applied not to the entire transfer but to individual packets. As long as the transfer is in progress (and data is actually being received over the network during the timeout period), it is kept alive. If the transfer gets stuck, such that a timeout occurs between packets, it will be dropped.\n\nNote that if you set up a distributed table, each node \u2014 both master and agents \u2014 should be tuned. On the master side, `agent_query_timeout` is affected; on agents, `network_timeout` is relevant.\n\n\n\n##### Example:\n\n\n\nCODE_BLOCK_62\n\n\n\n### rt_flush_period\n\n\nRT tables RAM chunk flush check period, in seconds (or [special_suffixes](../Server_settings/Special_suffixes.md)). Optional, default is 10 hours.\n\nActively updated RT tables that fully fit in RAM chunks can still result in ever-growing binlogs, impacting disk use and crash recovery time. With this directive, the search server performs periodic flush checks, and eligible RAM chunks can be saved, enabling consequential binlog cleanup. See [Binary logging](../Logging/Binary_logging.md) for more details.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_63\n\n\n### rt_merge_iops\n\n\nA maximum number of I/O operations (per second) that the RT chunks merge thread is allowed to start. Optional, default is 0 (no limit).\n\nThis directive lets you throttle down the I/O impact arising from the `OPTIMIZE` statements. It is guaranteed that all RT optimization activities will not generate more disk IOPS (I/Os per second) than the configured limit. Limiting rt_merge_iops can reduce search performance degradation caused by merging.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_64\n\n\n### rt_merge_maxiosize\n\n\nA maximum size of an I/O operation that the RT chunks merge thread is allowed to start. Optional, default is 0 (no limit).\n\nThis directive lets you throttle down the I/O impact arising from the `OPTIMIZE` statements. I/Os larger than this limit will be broken down into two or more I/Os, which will then be accounted for as separate I/Os with regards to the [rt_merge_iops](../Server_settings/Searchd.md#rt_merge_iops) limit. Thus, it is guaranteed that all optimization activities will not generate more than (rt_merge_iops * rt_merge_maxiosize) bytes of disk I/O per second.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_65\n\n\n### seamless_rotate\n\n\nPrevents `searchd` stalls while rotating tables with huge amounts of data to precache. Optional, default is 1 (enable seamless rotation). On Windows systems, seamless rotation is disabled by default.\n\nTables may contain some data that needs to be precached in RAM. At the moment, `.spa`, `.spb`, `.spi`, and `.spm` files are fully precached (they contain attribute data, blob attribute data, keyword table, and killed row map, respectively.) Without seamless rotate, rotating a table tries to use as little RAM as possible and works as follows:\n\n1. New queries are temporarily rejected (with \"retry\" error code);\n2. `searchd` waits for all currently running queries to finish;\n3. The old table is deallocated, and its files are renamed;\n4. New table files are renamed, and required RAM is allocated;\n5. New table attribute and dictionary data are preloaded to RAM;\n6. `searchd` resumes serving queries from the new table.\n\nHowever, if there's a lot of attribute or dictionary data, then the preloading step could take a noticeable amount of time - up to several minutes in the case of preloading 1-5+ GB files.\n\nWith seamless rotate enabled, rotation works as follows:\n\n1. New table RAM storage is allocated;\n2. New table attribute and dictionary data are asynchronously preloaded to RAM;\n3. On success, the old table is deallocated, and both tables' files are renamed;\n4. On failure, the new table is deallocated;\n5. At any given moment, queries are served either from the old or new table copy.\n\nSeamless rotate comes at the cost of higher peak memory usage during the rotation (because both old and new copies of `.spa/.spb/.spi/.spm` data need to be in RAM while preloading the new copy). Average usage remains the same.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_66\n\n\n### secondary_index_block_cache\n", + "translations": { + "chinese": "\u5f53\u67e5\u8be2\u65f6\uff0c\u67d0\u4e9b\u8bfb\u53d6\u64cd\u4f5c\u63d0\u524d\u77e5\u9053\u786e\u5207\u9700\u8981\u8bfb\u53d6\u7684\u6570\u636e\u91cf\uff0c\u4f46\u6709\u4e9b\u76ee\u524d\u8fd8\u4e0d\u77e5\u9053\u3002\u6700\u660e\u663e\u7684\u662f\u547d\u4e2d\u5217\u8868\u7684\u5927\u5c0f\u76ee\u524d\u65e0\u6cd5\u63d0\u524d\u77e5\u9053\u3002\u6b64\u8bbe\u7f6e\u53ef\u8ba9\u60a8\u63a7\u5236\u5728\u8fd9\u4e9b\u60c5\u51b5\u4e0b\u8bfb\u53d6\u591a\u5c11\u6570\u636e\u3002\u5b83\u4f1a\u5f71\u54cd\u547d\u4e2d\u5217\u8868\u7684I/O\u65f6\u95f4\uff0c\u5bf9\u4e8e\u5927\u4e8e\u672a\u63d0\u793a\u8bfb\u53d6\u5927\u5c0f\u7684\u5217\u8868\u4f1a\u51cf\u5c11I/O\u65f6\u95f4\uff0c\u4f46\u5bf9\u4e8e\u8f83\u5c0f\u7684\u5217\u8868\u4f1a\u589e\u52a0I/O\u65f6\u95f4\u3002\u5b83**\u4e0d\u4f1a**\u5f71\u54cdRAM\u4f7f\u7528\uff0c\u56e0\u4e3a\u8bfb\u53d6\u7f13\u51b2\u533a\u5df2\u7ecf\u5206\u914d\u3002\u56e0\u6b64\uff0c\u5b83\u4e0d\u5e94\u5927\u4e8eread_buffer\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_61\n\n\n### reset_network_timeout_on_packet\n\n\n\u7ec6\u5316\u7f51\u7edc\u8d85\u65f6\u884c\u4e3a\uff08\u5982`network_timeout`\u548c`agent_query_timeout`\uff09\u3002\n\n\u5f53\u8bbe\u7f6e\u4e3a0\u65f6\uff0c\u8d85\u65f6\u9650\u5236\u53d1\u9001\u6574\u4e2a\u8bf7\u6c42/\u67e5\u8be2\u7684\u6700\u957f\u65f6\u95f4\u3002\n\u5f53\u8bbe\u7f6e\u4e3a1\uff08\u9ed8\u8ba4\u503c\uff09\u65f6\uff0c\u8d85\u65f6\u9650\u5236\u7f51\u7edc\u6d3b\u52a8\u4e4b\u95f4\u7684\u6700\u5927\u65f6\u95f4\u3002\n\n\u5728\u590d\u5236\u73af\u5883\u4e2d\uff0c\u4e00\u4e2a\u8282\u70b9\u53ef\u80fd\u9700\u8981\u5c06\u4e00\u4e2a\u5927\u6587\u4ef6\uff08\u4f8b\u5982100GB\uff09\u53d1\u9001\u5230\u53e6\u4e00\u4e2a\u8282\u70b9\u3002\u5047\u8bbe\u7f51\u7edc\u4f20\u8f93\u901f\u7387\u4e3a1GB/s\uff0c\u6570\u636e\u5305\u5927\u5c0f\u4e3a4-5MB\u3002\u4f20\u8f93\u6574\u4e2a\u6587\u4ef6\u9700\u8981100\u79d2\u3002\u9ed8\u8ba4\u8d85\u65f6\u4e3a5\u79d2\uff0c\u4ec5\u5141\u8bb8\u4f20\u8f935GB\u540e\u8fde\u63a5\u65ad\u5f00\u3002\u589e\u52a0\u8d85\u65f6\u53ef\u80fd\u662f\u89e3\u51b3\u65b9\u6cd5\uff0c\u4f46\u4e0d\u53ef\u6269\u5c55\uff08\u4f8b\u5982\uff0c\u4e0b\u4e00\u4e2a\u6587\u4ef6\u53ef\u80fd\u662f150GB\uff0c\u518d\u6b21\u5bfc\u81f4\u5931\u8d25\uff09\u3002\u7136\u800c\uff0c\u9ed8\u8ba4`reset_network_timeout_on_packet`\u8bbe\u7f6e\u4e3a1\u65f6\uff0c\u8d85\u65f6\u4e0d\u662f\u9488\u5bf9\u6574\u4e2a\u4f20\u8f93\uff0c\u800c\u662f\u9488\u5bf9\u5355\u4e2a\u6570\u636e\u5305\u3002\u53ea\u8981\u4f20\u8f93\u6b63\u5728\u8fdb\u884c\uff08\u5728\u8d85\u65f6\u671f\u95f4\u5b9e\u9645\u901a\u8fc7\u7f51\u7edc\u63a5\u6536\u6570\u636e\uff09\uff0c\u8fde\u63a5\u5c31\u4f1a\u4fdd\u6301\u6d3b\u8dc3\u3002\u5982\u679c\u4f20\u8f93\u5361\u4f4f\uff0c\u5bfc\u81f4\u6570\u636e\u5305\u4e4b\u95f4\u51fa\u73b0\u8d85\u65f6\uff0c\u5219\u8fde\u63a5\u4f1a\u88ab\u4e22\u5f03\u3002\n\n\u8bf7\u6ce8\u610f\uff0c\u5982\u679c\u60a8\u8bbe\u7f6e\u4e86\u5206\u5e03\u5f0f\u8868\uff0c\u6bcf\u4e2a\u8282\u70b9\u2014\u2014\u5305\u62ec\u4e3b\u8282\u70b9\u548c\u4ee3\u7406\u8282\u70b9\u2014\u2014\u90fd\u5e94\u8fdb\u884c\u8c03\u6574\u3002\u5728\u4e3b\u8282\u70b9\u7aef\uff0c`agent_query_timeout`\u53d7\u5f71\u54cd\uff1b\u5728\u4ee3\u7406\u8282\u70b9\u7aef\uff0c`network_timeout`\u76f8\u5173\u3002\n\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_62\n\n\n\n### rt_flush_period\n\n\nRT\u8868RAM\u5757\u5237\u65b0\u68c0\u67e5\u5468\u671f\uff0c\u4ee5\u79d2\u4e3a\u5355\u4f4d\uff08\u6216[special_suffixes](../Server_settings/Special_suffixes.md)\uff09\u3002\u53ef\u9009\uff0c\u9ed8\u8ba4\u4e3a10\u5c0f\u65f6\u3002\n\n\u5373\u4f7f\u4e3b\u52a8\u66f4\u65b0\u7684RT\u8868\u5b8c\u5168\u9002\u5408RAM\u5757\uff0c\u4ecd\u53ef\u80fd\u5bfc\u81f4binlog\u6301\u7eed\u589e\u957f\uff0c\u5f71\u54cd\u78c1\u76d8\u4f7f\u7528\u548c\u5d29\u6e83\u6062\u590d\u65f6\u95f4\u3002\u901a\u8fc7\u6b64\u6307\u4ee4\uff0c\u641c\u7d22\u670d\u52a1\u5668\u6267\u884c\u5b9a\u671f\u5237\u65b0\u68c0\u67e5\uff0c\u7b26\u5408\u6761\u4ef6\u7684RAM\u5757\u53ef\u4ee5\u4fdd\u5b58\uff0c\u4ece\u800c\u5b9e\u73b0\u540e\u7eed\u7684binlog\u6e05\u7406\u3002\u6709\u5173\u66f4\u591a\u8be6\u7ec6\u4fe1\u606f\uff0c\u8bf7\u53c2\u9605[\u4e8c\u8fdb\u5236\u65e5\u5fd7](../Logging/Binary_logging.md)\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_63\n\n\n### rt_merge_iops\n\n\nRT\u5757\u5408\u5e76\u7ebf\u7a0b\u5141\u8bb8\u542f\u52a8\u7684\u6700\u5927I/O\u64cd\u4f5c\u6570\uff08\u6bcf\u79d2\uff09\u3002\u53ef\u9009\uff0c\u9ed8\u8ba4\u4e3a0\uff08\u65e0\u9650\u5236\uff09\u3002\n\n\u6b64\u6307\u4ee4\u53ef\u9650\u5236\u7531`OPTIMIZE`\u8bed\u53e5\u5f15\u8d77\u7684I/O\u5f71\u54cd\u3002\u53ef\u4ee5\u4fdd\u8bc1\u6240\u6709RT\u4f18\u5316\u6d3b\u52a8\u4e0d\u4f1a\u751f\u6210\u8d85\u8fc7\u914d\u7f6e\u9650\u5236\u7684\u78c1\u76d8IOPS\uff08\u6bcf\u79d2I/O\u6570\uff09\u3002\u9650\u5236rt_merge_iops\u53ef\u4ee5\u51cf\u5c11\u5408\u5e76\u5f15\u8d77\u7684\u641c\u7d22\u6027\u80fd\u4e0b\u964d\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_64\n\n\n### rt_merge_maxiosize\n\n\nRT\u5757\u5408\u5e76\u7ebf\u7a0b\u5141\u8bb8\u542f\u52a8\u7684I/O\u64cd\u4f5c\u6700\u5927\u5927\u5c0f\u3002\u53ef\u9009\uff0c\u9ed8\u8ba4\u4e3a0\uff08\u65e0\u9650\u5236\uff09\u3002\n\n\u6b64\u6307\u4ee4\u53ef\u9650\u5236\u7531`OPTIMIZE`\u8bed\u53e5\u5f15\u8d77\u7684I/O\u5f71\u54cd\u3002\u8d85\u8fc7\u6b64\u9650\u5236\u7684I/O\u5c06\u88ab\u62c6\u5206\u4e3a\u4e24\u4e2a\u6216\u66f4\u591aI/O\uff0c\u7136\u540e\u5c06\u88ab\u89c6\u4e3a\u5355\u72ec\u7684I/O\uff0c\u4e0e[rt_merge_iops](../Server_settings/Searchd.md#rt_merge_iops)\u9650\u5236\u76f8\u5173\u3002\u56e0\u6b64\uff0c\u53ef\u4ee5\u4fdd\u8bc1\u6240\u6709\u4f18\u5316\u6d3b\u52a8\u4e0d\u4f1a\u751f\u6210\u8d85\u8fc7\uff08rt_merge_iops * rt_merge_maxiosize\uff09\u5b57\u8282\u7684\u78c1\u76d8I/O\u6bcf\u79d2\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_65\n\n\n### seamless_rotate\n\n\n\u5728\u65cb\u8f6c\u5305\u542b\u5927\u91cf\u6570\u636e\u7684\u8868\u65f6\u9632\u6b62`searchd`\u505c\u6ede\u3002\u53ef\u9009\uff0c\u9ed8\u8ba4\u4e3a1\uff08\u542f\u7528\u65e0\u7f1d\u65cb\u8f6c\uff09\u3002\u5728Windows\u7cfb\u7edf\u4e2d\uff0c\u9ed8\u8ba4\u7981\u7528\u65e0\u7f1d\u65cb\u8f6c\u3002\n\n\u8868\u53ef\u80fd\u5305\u542b\u9700\u8981\u9884\u52a0\u8f7d\u5230RAM\u4e2d\u7684\u67d0\u4e9b\u6570\u636e\u3002\u76ee\u524d\uff0c`.spa`\u3001`.spb`\u3001`.spi`\u548c`.spm`\u6587\u4ef6\u4f1a\u88ab\u5b8c\u5168\u9884\u52a0\u8f7d\uff08\u5b83\u4eec\u5206\u522b\u5305\u542b\u5c5e\u6027\u6570\u636e\u3001blob\u5c5e\u6027\u6570\u636e\u3001\u5173\u952e\u5b57\u8868\u548c\u5df2\u5220\u9664\u884c\u6620\u5c04\uff09\u3002\u5982\u679c\u6ca1\u6709\u542f\u7528\u65e0\u7f1d\u65cb\u8f6c\uff0c\u65cb\u8f6c\u8868\u4f1a\u5c1d\u8bd5\u4f7f\u7528\u5c3d\u53ef\u80fd\u5c11\u7684RAM\uff0c\u5e76\u6309\u4ee5\u4e0b\u6b65\u9aa4\u5de5\u4f5c\uff1a\n\n1. \u65b0\u67e5\u8be2\u6682\u65f6\u88ab\u62d2\u7edd\uff08\u5e26\u6709\u201cretry\u201d\u9519\u8bef\u4ee3\u7801\uff09\uff1b\n2. `searchd`\u7b49\u5f85\u6240\u6709\u5f53\u524d\u8fd0\u884c\u7684\u67e5\u8be2\u5b8c\u6210\uff1b\n3. \u65e7\u8868\u88ab\u91ca\u653e\uff0c\u5176\u6587\u4ef6\u88ab\u91cd\u547d\u540d\uff1b\n4. \u65b0\u8868\u6587\u4ef6\u88ab\u91cd\u547d\u540d\uff0c\u5e76\u5206\u914d\u6240\u9700\u7684RAM\uff1b\n5. \u65b0\u8868\u7684\u5c5e\u6027\u548c\u5b57\u5178\u6570\u636e\u88ab\u9884\u52a0\u8f7d\u5230RAM\uff1b\n6. `searchd`\u4ece\u65b0\u8868\u6062\u590d\u67e5\u8be2\u670d\u52a1\u3002\n\n\u7136\u800c\uff0c\u5982\u679c\u6709\u5f88\u591a\u5c5e\u6027\u6216\u5b57\u5178\u6570\u636e\uff0c\u9884\u52a0\u8f7d\u6b65\u9aa4\u53ef\u80fd\u9700\u8981\u660e\u663e\u7684\u65f6\u95f4\u2014\u2014\u5728\u9884\u52a0\u8f7d1-5+GB\u6587\u4ef6\u7684\u60c5\u51b5\u4e0b\uff0c\u53ef\u80fd\u9700\u8981\u51e0\u5206\u949f\u3002\n\n\u542f\u7528\u65e0\u7f1d\u65cb\u8f6c\u540e\uff0c\u65cb\u8f6c\u5de5\u4f5c\u5982\u4e0b\uff1a\n\n1. \u4e3a\u65b0\u8868\u5206\u914dRAM\u5b58\u50a8\uff1b\n2. \u65b0\u8868\u7684\u5c5e\u6027\u548c\u5b57\u5178\u6570\u636e\u5f02\u6b65\u9884\u52a0\u8f7d\u5230RAM\uff1b\n3. \u6210\u529f\u65f6\uff0c\u65e7\u8868\u88ab\u91ca\u653e\uff0c\u4e24\u4e2a\u8868\u7684\u6587\u4ef6\u88ab\u91cd\u547d\u540d\uff1b\n4. \u5931\u8d25\u65f6\uff0c\u65b0\u8868\u88ab\u91ca\u653e\uff1b\n5. \u5728\u4efb\u4f55\u65f6\u523b\uff0c\u67e5\u8be2\u4ece\u65e7\u8868\u6216\u65b0\u8868\u526f\u672c\u4e2d\u63d0\u4f9b\u670d\u52a1\u3002\n\n\u65e0\u7f1d\u65cb\u8f6c\u7684\u4ee3\u4ef7\u662f\u5728\u65cb\u8f6c\u671f\u95f4\u66f4\u9ad8\u7684\u5cf0\u503c\u5185\u5b58\u4f7f\u7528\uff08\u56e0\u4e3a\u65e7\u8868\u548c\u65b0\u8868\u7684`.spa/.spb/.spi/.spm`\u6570\u636e\u90fd\u9700\u8981\u5728RAM\u4e2d\uff0c\u76f4\u5230\u9884\u52a0\u8f7d\u65b0\u526f\u672c\uff09\u3002\u5e73\u5747\u4f7f\u7528\u91cf\u4fdd\u6301\u4e0d\u53d8\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_66\n\n\n### secondary_index_block_cache\n", + "russian": "\u041f\u0440\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0447\u0442\u0435\u043d\u0438\u044f \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u0437\u043d\u0430\u044e\u0442 \u0442\u043e\u0447\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0435\u0434\u0441\u0442\u043e\u0438\u0442 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c, \u043d\u043e \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u044d\u0442\u043e \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e. \u041d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0437\u0430\u043c\u0435\u0442\u043d\u043e, \u0447\u0442\u043e \u0440\u0430\u0437\u043c\u0435\u0440 \u0441\u043f\u0438\u0441\u043a\u0430 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0439 \u0432 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043d \u0437\u0430\u0440\u0430\u043d\u0435\u0435. \u042d\u0442\u043e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u0430\u043d\u043d\u044b\u0445 \u0447\u0438\u0442\u0430\u0442\u044c \u0432 \u0442\u0430\u043a\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445. \u041e\u043d \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u0432\u0440\u0435\u043c\u044f \u0432\u0432\u043e\u0434\u0430-\u0432\u044b\u0432\u043e\u0434\u0430 \u0441\u043f\u0438\u0441\u043a\u0430 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0439, \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u044f \u0435\u0433\u043e \u0434\u043b\u044f \u0441\u043f\u0438\u0441\u043a\u043e\u0432, \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u044e\u0449\u0438\u0445 \u0440\u0430\u0437\u043c\u0435\u0440 \u0447\u0442\u0435\u043d\u0438\u044f \u0431\u0435\u0437 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0438, \u043d\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u044f \u0434\u043b\u044f \u043c\u0435\u043d\u044c\u0448\u0438\u0445 \u0441\u043f\u0438\u0441\u043a\u043e\u0432. \u041e\u043d **\u043d\u0435** \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0431\u0443\u0444\u0435\u0440 \u0447\u0442\u0435\u043d\u0438\u044f \u0443\u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0434\u0435\u043b\u0435\u043d. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u043d \u043d\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u0442\u044c read_buffer.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_61\n\n\n### reset_network_timeout_on_packet\n\n\n\u0423\u0442\u043e\u0447\u043d\u044f\u0435\u0442 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u0442\u0430\u0439\u043c\u0430\u0443\u0442\u043e\u0432 (\u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a `network_timeout` \u0438 `agent_query_timeout`).\n\n\u0415\u0441\u043b\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 0, \u0442\u0430\u0439\u043c\u0430\u0443\u0442\u044b \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u044e\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0434\u043b\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0432\u0441\u0435\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430/\u0437\u0430\u043f\u0440\u043e\u0441\u0430.\n\u0415\u0441\u043b\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 1 (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e), \u0442\u0430\u0439\u043c\u0430\u0443\u0442\u044b \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u044e\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043c\u0435\u0436\u0434\u0443 \u0441\u0435\u0442\u0435\u0432\u044b\u043c\u0438 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044f\u043c\u0438.\n\n\u041f\u0440\u0438 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0443\u0437\u043b\u0443 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0444\u0430\u0439\u043b (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, 100 \u0413\u0411) \u0434\u0440\u0443\u0433\u043e\u043c\u0443 \u0443\u0437\u043b\u0443. \u041f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u043c, \u0441\u0435\u0442\u044c \u043c\u043e\u0436\u0435\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e 1 \u0413\u0411/\u0441, \u0441 \u0441\u0435\u0440\u0438\u0435\u0439 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u043f\u043e 4-5 \u041c\u0411 \u043a\u0430\u0436\u0434\u044b\u0439. \u0414\u043b\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0432\u0441\u0435\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f 100 \u0441\u0435\u043a\u0443\u043d\u0434. \u0422\u0430\u0439\u043c\u0430\u0443\u0442 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0432 5 \u0441\u0435\u043a\u0443\u043d\u0434 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e 5 \u0413\u0411 \u0434\u043e \u0440\u0430\u0437\u0440\u044b\u0432\u0430 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f. \u0423\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0435 \u0442\u0430\u0439\u043c\u0430\u0443\u0442\u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043e\u0431\u0445\u043e\u0434\u043d\u044b\u043c \u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c, \u043d\u043e \u043e\u043d\u043e \u043d\u0435 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u0442\u0441\u044f (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0444\u0430\u0439\u043b \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c 150 \u0413\u0411, \u0447\u0442\u043e \u0441\u043d\u043e\u0432\u0430 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u0442 \u043a \u0441\u0431\u043e\u044e). \u041e\u0434\u043d\u0430\u043a\u043e \u043f\u0440\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0438 `reset_network_timeout_on_packet` \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u0440\u0430\u0432\u043d\u043e\u043c 1, \u0442\u0430\u0439\u043c\u0430\u0443\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u0435 \u043a\u043e \u0432\u0441\u0435\u0439 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0435, \u0430 \u043a \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c \u043f\u0430\u043a\u0435\u0442\u0430\u043c. \u041f\u043e\u043a\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442\u0441\u044f (\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0442\u0441\u044f \u043f\u043e \u0441\u0435\u0442\u0438 \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0438\u043e\u0434\u0430 \u0442\u0430\u0439\u043c\u0430\u0443\u0442\u0430), \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u043c. \u0415\u0441\u043b\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u0437\u0430\u0432\u0438\u0441\u043d\u0435\u0442, \u0442\u0430\u043a \u0447\u0442\u043e \u043c\u0435\u0436\u0434\u0443 \u043f\u0430\u043a\u0435\u0442\u0430\u043c\u0438 \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0435\u0442 \u0442\u0430\u0439\u043c\u0430\u0443\u0442, \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0437\u043e\u0440\u0432\u0430\u043d\u043e.\n\n\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u0432\u044b \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442\u0435 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u0443\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u0443, \u043a\u0430\u0436\u0434\u044b\u0439 \u0443\u0437\u0435\u043b \u2014 \u043a\u0430\u043a \u043c\u0430\u0441\u0442\u0435\u0440, \u0442\u0430\u043a \u0438 \u0430\u0433\u0435\u043d\u0442\u044b \u2014 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d. \u041d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u043c\u0430\u0441\u0442\u0435\u0440\u0430 \u0437\u0430\u0442\u0440\u0430\u0433\u0438\u0432\u0430\u0435\u0442\u0441\u044f `agent_query_timeout`; \u043d\u0430 \u0430\u0433\u0435\u043d\u0442\u0430\u0445 \u0430\u043a\u0442\u0443\u0430\u043b\u0435\u043d `network_timeout`.\n\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_62\n\n\n\n### rt_flush_period\n\n\n\u041f\u0435\u0440\u0438\u043e\u0434 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0441\u0431\u0440\u043e\u0441\u0430 RAM-\u0447\u0430\u043d\u043a\u043e\u0432 RT-\u0442\u0430\u0431\u043b\u0438\u0446 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0430\u0445 (\u0438\u043b\u0438 [\u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0443\u0444\u0444\u0438\u043a\u0441\u044b](../Server_settings/Special_suffixes.md)). \u041d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440, \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 10 \u0447\u0430\u0441\u043e\u0432.\n\n\u0410\u043a\u0442\u0438\u0432\u043d\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c\u044b\u0435 RT-\u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u043e\u043c\u0435\u0449\u0430\u044e\u0442\u0441\u044f \u0432 RAM-\u0447\u0430\u043d\u043a\u0438, \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u044c \u043a \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0440\u0430\u0441\u0442\u0443\u0449\u0438\u043c \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u043c \u043b\u043e\u0433\u0430\u043c, \u0432\u043b\u0438\u044f\u044f \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u0438\u0441\u043a\u0430 \u0438 \u0432\u0440\u0435\u043c\u044f \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u0441\u043b\u0435 \u0441\u0431\u043e\u044f. \u0421 \u044d\u0442\u043e\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u043e\u0439 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0441\u0431\u0440\u043e\u0441\u0430, \u0438 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0435 RAM-\u0447\u0430\u043d\u043a\u0438 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u044b, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043e\u0447\u0438\u0441\u0442\u043a\u0443 \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0433\u043e \u043b\u043e\u0433\u0430. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0441\u043c. [\u0411\u0438\u043d\u0430\u0440\u043d\u043e\u0435 \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435](../Logging/Binary_logging.md).\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_63\n\n\n### rt_merge_iops\n\n\n\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0432\u0432\u043e\u0434\u0430-\u0432\u044b\u0432\u043e\u0434\u0430 (\u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443), \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043f\u043e\u0442\u043e\u043a\u0443 \u0441\u043b\u0438\u044f\u043d\u0438\u044f RT-\u0447\u0430\u043d\u043a\u043e\u0432. \u041d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440, \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 0 (\u0431\u0435\u0437 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439).\n\n\u042d\u0442\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043d\u0438\u0437\u0438\u0442\u044c \u0432\u043b\u0438\u044f\u043d\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0432\u0432\u043e\u0434\u0430-\u0432\u044b\u0432\u043e\u0434\u0430, \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0449\u0438\u0445 \u0438\u0437-\u0437\u0430 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432 `OPTIMIZE`. \u0413\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0432\u0441\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 RT \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u0434\u0438\u0441\u043a\u043e\u0432\u044b\u0445 IOPS (\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0432\u0432\u043e\u0434\u0430-\u0432\u044b\u0432\u043e\u0434\u0430 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443), \u0447\u0435\u043c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u043b\u0438\u043c\u0438\u0442. \u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 rt_merge_iops \u043c\u043e\u0436\u0435\u0442 \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u0434\u0435\u0433\u0440\u0430\u0434\u0430\u0446\u0438\u044e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043f\u043e\u0438\u0441\u043a\u0430, \u0432\u044b\u0437\u0432\u0430\u043d\u043d\u0443\u044e \u0441\u043b\u0438\u044f\u043d\u0438\u0435\u043c.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_64\n\n\n### rt_merge_maxiosize\n\n\n\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0432\u0432\u043e\u0434\u0430-\u0432\u044b\u0432\u043e\u0434\u0430, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043f\u043e\u0442\u043e\u043a\u0443 \u0441\u043b\u0438\u044f\u043d\u0438\u044f RT-\u0447\u0430\u043d\u043a\u043e\u0432. \u041d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440, \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 0 (\u0431\u0435\u0437 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439).\n\n\u042d\u0442\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043d\u0438\u0437\u0438\u0442\u044c \u0432\u043b\u0438\u044f\u043d\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0432\u0432\u043e\u0434\u0430-\u0432\u044b\u0432\u043e\u0434\u0430, \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0449\u0438\u0445 \u0438\u0437-\u0437\u0430 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432 `OPTIMIZE`. \u041e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0432\u0432\u043e\u0434\u0430-\u0432\u044b\u0432\u043e\u0434\u0430, \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u044e\u0449\u0438\u0435 \u044d\u0442\u043e\u0442 \u043b\u0438\u043c\u0438\u0442, \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0437\u0431\u0438\u0442\u044b \u043d\u0430 \u0434\u0432\u0435 \u0438\u043b\u0438 \u0431\u043e\u043b\u0435\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u0430\u0442\u0435\u043c \u0431\u0443\u0434\u0443\u0442 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0432\u0432\u043e\u0434\u0430-\u0432\u044b\u0432\u043e\u0434\u0430 \u0432 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f [rt_merge_iops](../Server_settings/Searchd.md#rt_merge_iops). \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0432\u0441\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0431\u043e\u043b\u0435\u0435 (rt_merge_iops * rt_merge_maxiosize) \u0431\u0430\u0439\u0442 \u0434\u0438\u0441\u043a\u043e\u0432\u043e\u0433\u043e \u0432\u0432\u043e\u0434\u0430-\u0432\u044b\u0432\u043e\u0434\u0430 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_65\n\n\n### seamless_rotate\n\n\n\u041f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043f\u0440\u043e\u0441\u0442\u043e\u0438 `searchd` \u043f\u0440\u0438 \u0440\u043e\u0442\u0430\u0446\u0438\u0438 \u0442\u0430\u0431\u043b\u0438\u0446 \u0441 \u043e\u0433\u0440\u043e\u043c\u043d\u044b\u043c\u0438 \u043e\u0431\u044a\u0435\u043c\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u041d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440, \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 1 (\u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0431\u0435\u0441\u0448\u043e\u0432\u043d\u0443\u044e \u0440\u043e\u0442\u0430\u0446\u0438\u044e). \u0412 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 Windows \u0431\u0435\u0441\u0448\u043e\u0432\u043d\u0430\u044f \u0440\u043e\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0430.\n\n\u0422\u0430\u0431\u043b\u0438\u0446\u044b \u043c\u043e\u0433\u0443\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438. \u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u0444\u0430\u0439\u043b\u044b `.spa`, `.spb`, `.spi` \u0438 `.spm` \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043a\u044d\u0448\u0438\u0440\u0443\u044e\u0442\u0441\u044f (\u043e\u043d\u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432, \u0434\u0430\u043d\u043d\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432-\u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432, \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0441\u043b\u043e\u0432 \u0438 \u043a\u0430\u0440\u0442\u0443 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0445 \u0441\u0442\u0440\u043e\u043a \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e.) \u0411\u0435\u0437 \u0431\u0435\u0441\u0448\u043e\u0432\u043d\u043e\u0439 \u0440\u043e\u0442\u0430\u0446\u0438\u0438 \u0440\u043e\u0442\u0430\u0446\u0438\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u043c\u0435\u043d\u044c\u0448\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:\n\n1. \u041d\u043e\u0432\u044b\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043e\u0442\u043a\u043b\u043e\u043d\u044f\u044e\u0442\u0441\u044f (\u0441 \u043a\u043e\u0434\u043e\u043c \u043e\u0448\u0438\u0431\u043a\u0438 \"\u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c\");\n2. `searchd` \u043e\u0436\u0438\u0434\u0430\u0435\u0442 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0432\u0441\u0435\u0445 \u0442\u0435\u043a\u0443\u0449\u0438\u0445 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432;\n3. \u0421\u0442\u0430\u0440\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0430\u0435\u0442\u0441\u044f, \u0438 \u0435\u0435 \u0444\u0430\u0439\u043b\u044b \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u044b\u0432\u0430\u044e\u0442\u0441\u044f;\n4. \u0424\u0430\u0439\u043b\u044b \u043d\u043e\u0432\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u044b\u0432\u0430\u044e\u0442\u0441\u044f, \u0438 \u0432\u044b\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0430\u044f \u043f\u0430\u043c\u044f\u0442\u044c;\n5. \u0414\u0430\u043d\u043d\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u0438 \u0441\u043b\u043e\u0432\u0430\u0440\u044f \u043d\u043e\u0432\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u044e\u0442\u0441\u044f \u0432 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0443\u044e \u043f\u0430\u043c\u044f\u0442\u044c;\n6. `searchd` \u0432\u043e\u0437\u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442 \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0438\u0437 \u043d\u043e\u0432\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b.\n\n\u041e\u0434\u043d\u0430\u043a\u043e, \u0435\u0441\u043b\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u0438\u043b\u0438 \u0441\u043b\u043e\u0432\u0430\u0440\u044f \u043c\u043d\u043e\u0433\u043e, \u044d\u0442\u0430\u043f \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u043d\u044f\u0442\u044c \u0437\u0430\u043c\u0435\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u2014 \u0434\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043c\u0438\u043d\u0443\u0442 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0444\u0430\u0439\u043b\u043e\u0432 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c 1-5+ \u0413\u0411.\n\n\u041f\u0440\u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u043e\u0439 \u0431\u0435\u0441\u0448\u043e\u0432\u043d\u043e\u0439 \u0440\u043e\u0442\u0430\u0446\u0438\u0438 \u0440\u043e\u0442\u0430\u0446\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:\n\n1. \u0412\u044b\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u0434\u043b\u044f \u043d\u043e\u0432\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b;\n2. \u0414\u0430\u043d\u043d\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u0438 \u0441\u043b\u043e\u0432\u0430\u0440\u044f \u043d\u043e\u0432\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u044e\u0442\u0441\u044f \u0432 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0443\u044e \u043f\u0430\u043c\u044f\u0442\u044c;\n3. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u0443\u0441\u043f\u0435\u0445\u0430 \u0441\u0442\u0430\u0440\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0430\u0435\u0442\u0441\u044f, \u0438 \u0444\u0430\u0439\u043b\u044b \u043e\u0431\u0435\u0438\u0445 \u0442\u0430\u0431\u043b\u0438\u0446 \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u044b\u0432\u0430\u044e\u0442\u0441\u044f;\n4. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441\u0431\u043e\u044f \u043d\u043e\u0432\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0430\u0435\u0442\u0441\u044f;\n5. \u0412 \u043b\u044e\u0431\u043e\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043b\u0438\u0431\u043e \u0438\u0437 \u0441\u0442\u0430\u0440\u043e\u0439, \u043b\u0438\u0431\u043e \u0438\u0437 \u043d\u043e\u0432\u043e\u0439 \u043a\u043e\u043f\u0438\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044b.\n\n\u0411\u0435\u0441\u0448\u043e\u0432\u043d\u0430\u044f \u0440\u043e\u0442\u0430\u0446\u0438\u044f \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0435\u0442\u0441\u044f \u0437\u0430 \u0441\u0447\u0435\u0442 \u0431\u043e\u043b\u0435\u0435 \u0432\u044b\u0441\u043e\u043a\u043e\u0433\u043e \u043f\u0438\u043a\u043e\u0432\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0440\u043e\u0442\u0430\u0446\u0438\u0438 (\u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043a\u0430\u043a \u0441\u0442\u0430\u0440\u0430\u044f, \u0442\u0430\u043a \u0438 \u043d\u043e\u0432\u0430\u044f \u043a\u043e\u043f\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 `.spa/.spb/.spi/.spm` \u0434\u043e\u043b\u0436\u043d\u044b \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0432 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043d\u043e\u0432\u043e\u0439 \u043a\u043e\u043f\u0438\u0438). \u0421\u0440\u0435\u0434\u043d\u0435\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u0442\u0435\u043c \u0436\u0435.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_66\n\n\n### secondary_index_block_cache\n" + }, + "is_code_or_comment": false, + "model": "deepseek/deepseek-v3.2", + "updated_at": 1773763273 + }, + "bfc1a9a7fb6d37e7630324a4bd84344d78e45bfc59a886aeeee09c6275ab859b": { + "original": "* **Not specified** - Manticore will accept connections at this port from:\n - other Manticore agents (i.e., a remote distributed table)\n - clients via HTTP and HTTPS\n - [Manticore Buddy](https://manticoresearch.com/blog/manticoresearch-buddy-intro/). **Ensure you have a listener of this kind (or an `http` listener, as mentioned below) to avoid limitations in Manticore functionality.**\n* `mysql` MySQL protocol for connections from MySQL clients. Note:\n - Compressed protocol is also supported.\n - If [SSL](../Security/SSL.md#SSL) is enabled, you can make an encrypted connection.\n* `replication` - replication protocol used for nodes communication. More details can be found in the [replication](../Creating_a_cluster/Setting_up_replication/Setting_up_replication.md) section. You can specify multiple replication listeners, but they must all listen on the same IP; only the ports can be different. When you define a replication listener with a port range (e.g., `listen = 192.168.0.1:9320-9328:replication`), Manticore doesn't immediately start listening on these ports. Instead, it will take random free ports from the specified range only when you start using replication. At least 2 ports are required in the range for replication to work properly.\n* `http` - same as **Not specified**. Manticore will accept connections at this port from remote agents and clients via HTTP and HTTPS.\n* `https` - HTTPS protocol. Manticore will accept **only** HTTPS connections at this port. More details can be found in section [SSL](../Security/SSL.md).\n* `sphinx` - legacy binary protocol. Used to serve connections from remote [SphinxSE](../Extensions/SphinxSE.md) clients. Some Sphinx API clients implementations (an example is the Java one) require the explicit declaration of the listener.\n\nAdding suffix `_vip` to client protocols (that is, all except `replication`, for instance `mysql_vip` or `http_vip` or just `_vip`) forces creating a dedicated thread for the connection to bypass different limitations. That's useful for node maintenance in case of severe overload when the server would either stall or not let you connect via a regular port otherwise.\n\nSuffix `_readonly` sets [read-only mode](../Security/Read_only.md) for the listener and limits it to accept only read queries.\n\n\n##### Example:\n\n\n\nCODE_BLOCK_36\n\n\nThere can be multiple `listen` directives. `searchd` will listen for client connections on all specified ports and sockets. The default config provided in Manticore packages defines listening on ports:\n* `9308` and `9312` for connections from remote agents and non-MySQL based clients\n* and on port `9306` for MySQL connections.\n\nIf you don't specify any `listen` in the configuration at all, Manticore will wait for connections on:\n* `127.0.0.1:9306` for MySQL clients\n* `127.0.0.1:9312` for HTTP/HTTPS and connections from other Manticore nodes and clients based on the Manticore binary API.\n\n#### Listening on privileged ports\n\nBy default, Linux won't allow you to let Manticore listen on a port below 1024 (e.g. `listen = 127.0.0.1:80:http` or `listen = 127.0.0.1:443:https`) unless you run searchd under root. If you still want to be able to start Manticore, so it listens on ports < 1024 under a non-root user, consider doing one of the following (either of these should work):\n* Run the command `setcap CAP_NET_BIND_SERVICE=+eip /usr/bin/searchd`\n* Add `AmbientCapabilities=CAP_NET_BIND_SERVICE` to Manticore's systemd unit and reload the daemon (`systemctl daemon-reload`).\n\n#### Technical details about Sphinx API protocol and TFO\n
\nLegacy Sphinx protocol has 2 phases: handshake exchanging and data flow. The handshake consists of a packet of 4 bytes from the client, and a packet of 4 bytes from the daemon with only one purpose - the client determines that the remote is a real Sphinx daemon, the daemon determines that the remote is a real Sphinx client. The main dataflow is quite simple: let's both sides declare their handshakes, and the opposite check them. That exchange with short packets implies using special `TCP_NODELAY` flag, which switches off Nagle's TCP algorithm and declares that the TCP connection will be performed as a dialogue of small packages.\nHowever, it is not strictly defined who speaks first in this negotiation. Historically, all clients that use the binary API speak first: send handshake, then read 4 bytes from a daemon, then send a request and read an answer from the daemon.\nWhen we improved Sphinx protocol compatibility, we considered these things:\n\n1. Usually, master-agent communication is established from a known client to a known host on a known port. So, it is quite not possible that the endpoint will provide a wrong handshake. So, we may implicitly assume that both sides are valid and really speak in Sphinx proto.\n2. Given this assumption, we can 'glue' a handshake to the real request and send it in one packet. If the backend is a legacy Sphinx daemon, it will just read this glued packet as 4 bytes of a handshake, then request body. Since they both came in one packet, the backend socket has -1 RTT, and the frontend buffer still works despite that fact usual way.\n3. Continuing the assumption: since the 'query' packet is quite small, and the handshake is even smaller, let's send both in the initial 'SYN' TCP package using modern TFO (tcp-fast-open) technique. That is: we connect to a remote node with the glued handshake + body package. The daemon accepts the connection and immediately has both the handshake and the body in a socket buffer, as they came in the very first TCP 'SYN' packet. That eliminates another one RTT.\n4. Finally, teach the daemon to accept this improvement. Actually, from the application, it implies NOT to use `TCP_NODELAY`. And, from the system side, it implies to ensure that on the daemon side, accepting TFO is activated, and on the client side, sending TFO is also activated. By default, in modern systems, client TFO is already activated by default, so you only have to tune the server TFO for all things to work.", + "translations": { + "chinese": "* **\u672a\u6307\u5b9a** - Manticore \u5c06\u63a5\u53d7\u6b64\u7aef\u53e3\u7684\u8fde\u63a5\u6765\u81ea\uff1a\n - \u5176\u4ed6 Manticore \u4ee3\u7406\uff08\u5373\u8fdc\u7a0b\u5206\u5e03\u5f0f\u8868\uff09\n - \u901a\u8fc7 HTTP \u548c HTTPS \u7684\u5ba2\u6237\u7aef\n - [Manticore Buddy](https://manticoresearch.com/blog/manticoresearch-buddy-intro/)\u3002**\u786e\u4fdd\u60a8\u6709\u6b64\u7c7b\u76d1\u542c\u5668\uff08\u6216\u5982\u4e0b\u9762\u63d0\u5230\u7684 `http` \u76d1\u542c\u5668\uff09\uff0c\u4ee5\u907f\u514d Manticore \u529f\u80fd\u7684\u9650\u5236\u3002**\n* `mysql` - \u7528\u4e8e\u6765\u81ea MySQL \u5ba2\u6237\u7aef\u7684\u8fde\u63a5\u7684 MySQL \u534f\u8bae\u3002\u6ce8\u610f\uff1a\n - \u4e5f\u652f\u6301\u538b\u7f29\u534f\u8bae\u3002\n - \u5982\u679c\u542f\u7528\u4e86 [SSL](../Security/SSL.md#SSL)\uff0c\u60a8\u53ef\u4ee5\u5efa\u7acb\u52a0\u5bc6\u8fde\u63a5\u3002\n* `replication` - \u7528\u4e8e\u8282\u70b9\u901a\u4fe1\u7684\u590d\u5236\u534f\u8bae\u3002\u66f4\u591a\u7ec6\u8282\u8bf7\u53c2\u89c1 [\u590d\u5236](../Creating_a_cluster/Setting_up_replication/Setting_up_replication.md) \u90e8\u5206\u3002\u60a8\u53ef\u4ee5\u6307\u5b9a\u591a\u4e2a\u590d\u5236\u76d1\u542c\u5668\uff0c\u4f46\u5b83\u4eec\u5fc5\u987b\u5168\u90e8\u76d1\u542c\u540c\u4e00 IP\uff1b\u53ea\u6709\u7aef\u53e3\u53ef\u4ee5\u4e0d\u540c\u3002\u5f53\u60a8\u4f7f\u7528\u7aef\u53e3\u8303\u56f4\u5b9a\u4e49\u590d\u5236\u76d1\u542c\u5668\uff08\u4f8b\u5982 `listen = 192.168.0.1:9320-9328:replication`\uff09\u65f6\uff0cManticore \u4e0d\u4f1a\u7acb\u5373\u5728\u8fd9\u4e9b\u7aef\u53e3\u4e0a\u5f00\u59cb\u76d1\u542c\u3002\u76f8\u53cd\uff0c\u5b83\u4ec5\u5728\u60a8\u5f00\u59cb\u4f7f\u7528\u590d\u5236\u65f6\uff0c\u4ece\u6307\u5b9a\u8303\u56f4\u5185\u968f\u673a\u9009\u62e9\u7a7a\u95f2\u7aef\u53e3\u3002\u590d\u5236\u6b63\u5e38\u5de5\u4f5c\u81f3\u5c11\u9700\u8981\u8303\u56f4\u4e2d\u6709 2 \u4e2a\u7aef\u53e3\u3002\n* `http` - \u4e0e **\u672a\u6307\u5b9a** \u76f8\u540c\u3002Manticore \u5c06\u901a\u8fc7\u6b64\u7aef\u53e3\u63a5\u53d7\u6765\u81ea\u8fdc\u7a0b\u4ee3\u7406\u548c\u5ba2\u6237\u7aef\u7684 HTTP \u548c HTTPS \u8fde\u63a5\u3002\n* `https` - HTTPS \u534f\u8bae\u3002Manticore \u5c06\u5728\u6b64\u7aef\u53e3\u4e0a**\u4ec5**\u63a5\u53d7 HTTPS \u8fde\u63a5\u3002\u66f4\u591a\u7ec6\u8282\u8bf7\u53c2\u89c1 [SSL](../Security/SSL.md) \u90e8\u5206\u3002\n* `sphinx` - \u65e7\u7248\u4e8c\u8fdb\u5236\u534f\u8bae\u3002\u7528\u4e8e\u4e3a\u8fdc\u7a0b [SphinxSE](../Extensions/SphinxSE.md) \u5ba2\u6237\u7aef\u63d0\u4f9b\u670d\u52a1\u3002\u67d0\u4e9b Sphinx API \u5ba2\u6237\u7aef\u5b9e\u73b0\uff08\u4f8b\u5982 Java \u5ba2\u6237\u7aef\uff09\u9700\u8981\u663e\u5f0f\u58f0\u660e\u76d1\u542c\u5668\u3002\n\n\u5c06\u540e\u7f00 `_vip` \u6dfb\u52a0\u5230\u5ba2\u6237\u7aef\u534f\u8bae\uff08\u5373\u6240\u6709\u534f\u8bae\uff0c\u9664\u4e86 `replication`\uff0c\u4f8b\u5982 `mysql_vip` \u6216 `http_vip` \u6216\u4ec5 `_vip`\uff09\u4f1a\u5f3a\u5236\u4e3a\u8fde\u63a5\u521b\u5efa\u4e13\u7528\u7ebf\u7a0b\uff0c\u4ee5\u7ed5\u8fc7\u4e0d\u540c\u9650\u5236\u3002\u8fd9\u5728\u670d\u52a1\u5668\u4e25\u91cd\u8fc7\u8f7d\u65f6\u8fdb\u884c\u8282\u70b9\u7ef4\u62a4\u5f88\u6709\u7528\uff0c\u56e0\u4e3a\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0c\u670d\u52a1\u5668\u53ef\u80fd\u4f1a\u505c\u6ede\u6216\u5426\u5219\u4e0d\u5141\u8bb8\u60a8\u901a\u8fc7\u5e38\u89c4\u7aef\u53e3\u8fde\u63a5\u3002\n\n\u540e\u7f00 `_readonly` \u4f1a\u4e3a\u76d1\u542c\u5668\u8bbe\u7f6e [\u53ea\u8bfb\u6a21\u5f0f](../Security/Read_only.md)\uff0c\u5e76\u9650\u5236\u5176\u4ec5\u63a5\u53d7\u8bfb\u53d6\u67e5\u8be2\u3002\n\n\n##### \u793a\u4f8b\uff1a\n\n\n\nCODE_BLOCK_36\n\n\n\u53ef\u4ee5\u6709\u591a\u4e2a `listen` \u6307\u4ee4\u3002`searchd` \u5c06\u5728\u6240\u6709\u6307\u5b9a\u7684\u7aef\u53e3\u548c\u5957\u63a5\u5b57\u4e0a\u76d1\u542c\u5ba2\u6237\u7aef\u8fde\u63a5\u3002Manticore \u8f6f\u4ef6\u5305\u4e2d\u63d0\u4f9b\u7684\u9ed8\u8ba4\u914d\u7f6e\u5b9a\u4e49\u4e86\u76d1\u542c\u7aef\u53e3\uff1a\n* `9308` \u548c `9312` \u7528\u4e8e\u6765\u81ea\u8fdc\u7a0b\u4ee3\u7406\u548c\u975e MySQL \u57fa\u7840\u5ba2\u6237\u7aef\u7684\u8fde\u63a5\n* \u4ee5\u53ca\u7aef\u53e3 `9306` \u7528\u4e8e MySQL \u8fde\u63a5\u3002\n\n\u5982\u679c\u60a8\u5728\u914d\u7f6e\u4e2d\u5b8c\u5168\u672a\u6307\u5b9a\u4efb\u4f55 `listen`\uff0cManticore \u5c06\u7b49\u5f85\u8fde\u63a5\uff1a\n* `127.0.0.1:9306` \u7528\u4e8e MySQL \u5ba2\u6237\u7aef\n* `127.0.0.1:9312` \u7528\u4e8e HTTP/HTTPS \u548c\u6765\u81ea\u5176\u4ed6 Manticore \u8282\u70b9\u548c\u57fa\u4e8e Manticore \u4e8c\u8fdb\u5236 API \u7684\u5ba2\u6237\u7aef\u7684\u8fde\u63a5\u3002\n\n#### \u5728\u7279\u6743\u7aef\u53e3\u4e0a\u76d1\u542c\n\n\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0cLinux \u4e0d\u5141\u8bb8\u60a8\u8ba9 Manticore \u5728 1024 \u4ee5\u4e0b\u7684\u7aef\u53e3\uff08\u4f8b\u5982 `listen = 127.0.0.1:80:http` \u6216 `listen = 127.0.0.1:443:https`\uff09\u4e0a\u76d1\u542c\uff0c\u9664\u975e\u60a8\u4ee5 root \u8eab\u4efd\u8fd0\u884c searchd\u3002\u5982\u679c\u60a8\u4ecd\u7136\u5e0c\u671b\u80fd\u591f\u5728\u975e root \u7528\u6237\u4e0b\u542f\u52a8 Manticore\uff0c\u4f7f\u5176\u76d1\u542c 1024 \u4ee5\u4e0b\u7684\u7aef\u53e3\uff0c\u8bf7\u8003\u8651\u4ee5\u4e0b\u4efb\u4e00\u65b9\u6cd5\uff08\u4efb\u4e00\u65b9\u6cd5\u90fd\u5e94\u6709\u6548\uff09\uff1a\n* \u8fd0\u884c\u547d\u4ee4 `setcap CAP_NET_BIND_SERVICE=+eip /usr/bin/searchd`\n* \u5c06 `AmbientCapabilities=CAP_NET_BIND_SERVICE` \u6dfb\u52a0\u5230 Manticore \u7684 systemd \u5355\u5143\u5e76\u91cd\u65b0\u52a0\u8f7d\u5b88\u62a4\u8fdb\u7a0b\uff08`systemctl daemon-reload`\uff09\u3002\n\n#### \u5173\u4e8e Sphinx API \u534f\u8bae\u548c TFO \u7684\u6280\u672f\u7ec6\u8282\n
\n\u65e7\u7248 Sphinx \u534f\u8bae\u6709 2 \u4e2a\u9636\u6bb5\uff1a\u63e1\u624b\u4ea4\u6362\u548c\u6570\u636e\u6d41\u3002\u63e1\u624b\u5305\u62ec\u6765\u81ea\u5ba2\u6237\u7aef\u7684 4 \u5b57\u8282\u6570\u636e\u5305\uff0c\u4ee5\u53ca\u6765\u81ea\u5b88\u62a4\u8fdb\u7a0b\u7684 4 \u5b57\u8282\u6570\u636e\u5305\uff0c\u5176\u552f\u4e00\u76ee\u7684\u662f\u8ba9\u5ba2\u6237\u7aef\u786e\u5b9a\u8fdc\u7a0b\u7aef\u662f\u771f\u6b63\u7684 Sphinx \u5b88\u62a4\u8fdb\u7a0b\uff0c\u800c\u5b88\u62a4\u8fdb\u7a0b\u786e\u5b9a\u8fdc\u7a0b\u7aef\u662f\u771f\u6b63\u7684 Sphinx \u5ba2\u6237\u7aef\u3002\u4e3b\u8981\u6570\u636e\u6d41\u76f8\u5f53\u7b80\u5355\uff1a\u8ba9\u53cc\u65b9\u58f0\u660e\u5404\u81ea\u7684\u63e1\u624b\uff0c\u5e76\u7531\u5bf9\u65b9\u68c0\u67e5\u5b83\u4eec\u3002\u8fd9\u79cd\u77ed\u6570\u636e\u5305\u7684\u4ea4\u6362\u610f\u5473\u7740\u4f7f\u7528\u7279\u6b8a\u7684 `TCP_NODELAY` \u6807\u5fd7\uff0c\u8be5\u6807\u5fd7\u5173\u95ed Nagle \u7684 TCP \u7b97\u6cd5\uff0c\u5e76\u58f0\u660e TCP \u8fde\u63a5\u5c06\u4f5c\u4e3a\u5c0f\u6570\u636e\u5305\u7684\u5bf9\u8bdd\u8fdb\u884c\u3002\n\u7136\u800c\uff0c\u8fd9\u79cd\u534f\u5546\u4e2d\u8c01\u5148\u53d1\u8a00\u5e76\u672a\u4e25\u683c\u5b9a\u4e49\u3002\u5386\u53f2\u4e0a\uff0c\u6240\u6709\u4f7f\u7528\u4e8c\u8fdb\u5236 API \u7684\u5ba2\u6237\u7aef\u90fd\u4f1a\u5148\u53d1\u8a00\uff1a\u53d1\u9001\u63e1\u624b\uff0c\u7136\u540e\u4ece\u5b88\u62a4\u8fdb\u7a0b\u4e2d\u8bfb\u53d6 4 \u5b57\u8282\uff0c\u7136\u540e\u53d1\u9001\u8bf7\u6c42\u5e76\u4ece\u5b88\u62a4\u8fdb\u7a0b\u4e2d\u8bfb\u53d6\u54cd\u5e94\u3002\n\u5f53\u6211\u4eec\u6539\u8fdb Sphinx \u534f\u8bae\u517c\u5bb9\u6027\u65f6\uff0c\u6211\u4eec\u8003\u8651\u4e86\u4ee5\u4e0b\u51e0\u70b9\uff1a\n\n1. \u901a\u5e38\uff0c\u4e3b\u4ee3\u7406\u901a\u4fe1\u662f\u4ece\u5df2\u77e5\u5ba2\u6237\u7aef\u5230\u5df2\u77e5\u4e3b\u673a\u7684\u5df2\u77e5\u7aef\u53e3\u5efa\u7acb\u7684\u3002\u56e0\u6b64\uff0c\u7aef\u70b9\u63d0\u4f9b\u9519\u8bef\u63e1\u624b\u7684\u53ef\u80fd\u6027\u975e\u5e38\u5c0f\u3002\u56e0\u6b64\uff0c\u6211\u4eec\u53ef\u4ee5\u9690\u5f0f\u5047\u8bbe\u53cc\u65b9\u90fd\u662f\u6709\u6548\u7684\uff0c\u5e76\u4e14\u786e\u5b9e\u4f7f\u7528 Sphinx \u534f\u8bae\u8fdb\u884c\u901a\u4fe1\u3002\n2. \u57fa\u4e8e\u8fd9\u4e00\u5047\u8bbe\uff0c\u6211\u4eec\u53ef\u4ee5\u5c06\u63e1\u624b\u4e0e\u771f\u5b9e\u8bf7\u6c42\u201c\u7c98\u5408\u201d\u5728\u4e00\u8d77\uff0c\u5e76\u5c06\u5176\u53d1\u9001\u5728\u4e00\u4e2a\u6570\u636e\u5305\u4e2d\u3002\u5982\u679c\u540e\u7aef\u662f\u65e7\u7248 Sphinx \u5b88\u62a4\u8fdb\u7a0b\uff0c\u5b83\u5c06\u53ea\u662f\u5c06\u6b64\u7c98\u5408\u6570\u636e\u5305\u8bfb\u53d6\u4e3a 4 \u5b57\u8282\u7684\u63e1\u624b\uff0c\u7136\u540e\u662f\u8bf7\u6c42\u6b63\u6587\u3002\u7531\u4e8e\u5b83\u4eec\u90fd\u5305\u542b\u5728\u4e00\u4e2a\u6570\u636e\u5305\u4e2d\uff0c\u540e\u7aef\u5957\u63a5\u5b57\u7684 RTT \u4e3a -1\uff0c\u800c\u524d\u7aef\u7f13\u51b2\u533a\u4ecd\u7136\u53ef\u4ee5\u6b63\u5e38\u5de5\u4f5c\uff0c\u5c3d\u7ba1\u901a\u5e38\u65b9\u5f0f\u5e76\u975e\u5982\u6b64\u3002\n3. \u7ee7\u7eed\u8fd9\u4e00\u5047\u8bbe\uff1a\u7531\u4e8e\u201c\u67e5\u8be2\u201d\u6570\u636e\u5305\u76f8\u5f53\u5c0f\uff0c\u800c\u63e1\u624b\u751a\u81f3\u66f4\u5c0f\uff0c\u8ba9\u6211\u4eec\u4f7f\u7528\u73b0\u4ee3 TFO\uff08tcp-fast-open\uff09\u6280\u672f\u5728\u521d\u59cb\u7684\u201cSYN\u201dTCP \u5305\u4e2d\u53d1\u9001\u4e24\u8005\u3002\u4e5f\u5c31\u662f\u8bf4\uff1a\u6211\u4eec\u901a\u8fc7\u7c98\u5408\u7684\u63e1\u624b + \u6b63\u6587\u5305\u8fde\u63a5\u5230\u8fdc\u7a0b\u8282\u70b9\u3002\u5b88\u62a4\u8fdb\u7a0b\u63a5\u53d7\u8fde\u63a5\uff0c\u5e76\u7acb\u5373\u5728\u5957\u63a5\u5b57\u7f13\u51b2\u533a\u4e2d\u540c\u65f6\u62e5\u6709\u63e1\u624b\u548c\u6b63\u6587\uff0c\u56e0\u4e3a\u5b83\u4eec\u90fd\u5305\u542b\u5728\u7b2c\u4e00\u4e2a TCP \u201cSYN\u201d \u5305\u4e2d\u3002\u8fd9\u6d88\u9664\u4e86\u53e6\u4e00\u4e2a RTT\u3002\n4. \u6700\u540e\uff0c\u6559\u4f1a\u5b88\u62a4\u8fdb\u7a0b\u63a5\u53d7\u8fd9\u4e00\u6539\u8fdb\u3002\u5b9e\u9645\u4e0a\uff0c\u4ece\u5e94\u7528\u7a0b\u5e8f\u7684\u89d2\u5ea6\u6765\u770b\uff0c\u8fd9\u610f\u5473\u7740**\u4e0d\u8981\u4f7f\u7528 `TCP_NODELAY`**\u3002\u4ece\u7cfb\u7edf\u89d2\u5ea6\u6765\u770b\uff0c\u8fd9\u610f\u5473\u7740\u786e\u4fdd\u5728\u5b88\u62a4\u8fdb\u7a0b\u7aef\u6fc0\u6d3b TFO \u63a5\u6536\uff0c\u5e76\u5728\u5ba2\u6237\u7aef\u7aef\u6fc0\u6d3b TFO \u53d1\u9001\u3002\u5728\u73b0\u4ee3\u7cfb\u7edf\u4e2d\uff0c\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u5ba2\u6237\u7aef TFO \u5df2\u7ecf\u6fc0\u6d3b\uff0c\u56e0\u6b64\u60a8\u53ea\u9700\u8c03\u6574\u670d\u52a1\u5668 TFO \u4ee5\u4f7f\u6240\u6709\u5185\u5bb9\u6b63\u5e38\u5de5\u4f5c\u3002", + "russian": "* **\u041d\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u043e** - Manticore \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043d\u0430 \u044d\u0442\u043e\u043c \u043f\u043e\u0440\u0442\u0443 \u043e\u0442:\n - \u0434\u0440\u0443\u0433\u0438\u0445 \u0430\u0433\u0435\u043d\u0442\u043e\u0432 Manticore (\u0442.\u0435. \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0439 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b)\n - \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u0447\u0435\u0440\u0435\u0437 HTTP \u0438 HTTPS\n - [Manticore Buddy](https://manticoresearch.com/blog/manticoresearch-buddy-intro/). **\u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u0441\u043b\u0443\u0448\u0430\u0442\u0435\u043b\u044c \u0442\u0430\u043a\u043e\u0433\u043e \u0442\u0438\u043f\u0430 (\u0438\u043b\u0438 \u0441\u043b\u0443\u0448\u0430\u0442\u0435\u043b\u044c `http`, \u043a\u0430\u043a \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u043e \u043d\u0438\u0436\u0435), \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439 \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 Manticore.**\n* `mysql` \u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b MySQL \u0434\u043b\u044f \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439 \u043e\u0442 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 MySQL. \u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435:\n - \u0421\u0436\u0430\u0442\u044b\u0439 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f.\n - \u0415\u0441\u043b\u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d [SSL](../Security/SSL.md#SSL), \u043c\u043e\u0436\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435.\n* `replication` - \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0439 \u0434\u043b\u044f \u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u0443\u0437\u043b\u0430\u043c\u0438. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043c\u043e\u0436\u043d\u043e \u0443\u0437\u043d\u0430\u0442\u044c \u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 [\u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u044f](../Creating_a_cluster/Setting_up_replication/Setting_up_replication.md). \u041c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043b\u0443\u0448\u0430\u0442\u0435\u043b\u0435\u0439 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438, \u043d\u043e \u0432\u0441\u0435 \u043e\u043d\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u043b\u0443\u0448\u0430\u0442\u044c \u043d\u0430 \u043e\u0434\u043d\u043e\u043c IP-\u0430\u0434\u0440\u0435\u0441\u0435; \u043c\u043e\u0433\u0443\u0442 \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0440\u0442\u044b. \u041a\u043e\u0433\u0434\u0430 \u0432\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0435 \u0441\u043b\u0443\u0448\u0430\u0442\u0435\u043b\u044c \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0441 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u043e\u043c \u043f\u043e\u0440\u0442\u043e\u0432 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, `listen = 192.168.0.1:9320-9328:replication`), Manticore \u043d\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u043d\u0435\u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e \u0441\u043b\u0443\u0448\u0430\u0442\u044c \u043d\u0430 \u044d\u0442\u0438\u0445 \u043f\u043e\u0440\u0442\u0430\u0445. \u0412\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e \u043e\u043d \u0437\u0430\u0439\u043c\u0435\u0442 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0435 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u0435 \u043f\u043e\u0440\u0442\u044b \u0438\u0437 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0433\u043e \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u043e\u0433\u0434\u0430, \u043a\u043e\u0433\u0434\u0430 \u0432\u044b \u043d\u0430\u0447\u043d\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u044e. \u0414\u043b\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0432 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c 2 \u043f\u043e\u0440\u0442\u0430.\n* `http` - \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435, \u0447\u0442\u043e \u0438 **\u041d\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u043e**. Manticore \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043d\u0430 \u044d\u0442\u043e\u043c \u043f\u043e\u0440\u0442\u0443 \u043e\u0442 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0445 \u0430\u0433\u0435\u043d\u0442\u043e\u0432 \u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u0447\u0435\u0440\u0435\u0437 HTTP \u0438 HTTPS.\n* `https` - \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b HTTPS. Manticore \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c **\u0442\u043e\u043b\u044c\u043a\u043e** HTTPS-\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043d\u0430 \u044d\u0442\u043e\u043c \u043f\u043e\u0440\u0442\u0443. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043c\u043e\u0436\u043d\u043e \u0443\u0437\u043d\u0430\u0442\u044c \u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 [SSL](../Security/SSL.md).\n* `sphinx` - \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0439 \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0439 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439 \u043e\u0442 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 [SphinxSE](../Extensions/SphinxSE.md). \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 Sphinx API (\u043f\u0440\u0438\u043c\u0435\u0440 - Java) \u0442\u0440\u0435\u0431\u0443\u044e\u0442 \u044f\u0432\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u043b\u0443\u0448\u0430\u0442\u0435\u043b\u044f.\n\n\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0443\u0444\u0444\u0438\u043a\u0441\u0430 `_vip` \u043a \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u043c \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430\u043c (\u0442\u043e \u0435\u0441\u0442\u044c \u043a\u043e \u0432\u0441\u0435\u043c, \u043a\u0440\u043e\u043c\u0435 `replication`, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 `mysql_vip` \u0438\u043b\u0438 `http_vip` \u0438\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e `_vip`) \u0437\u0430\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u043f\u043e\u0442\u043e\u043a \u0434\u043b\u044f \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f, \u0447\u0442\u043e\u0431\u044b \u043e\u0431\u043e\u0439\u0442\u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f. \u042d\u0442\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u0434\u043b\u044f \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u0443\u0437\u043b\u0430 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441\u0438\u043b\u044c\u043d\u043e\u0439 \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u043a\u0438, \u043a\u043e\u0433\u0434\u0430 \u0441\u0435\u0440\u0432\u0435\u0440 \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043b\u0438\u0431\u043e \u0437\u0430\u0432\u0438\u0441\u043d\u0435\u0442, \u043b\u0438\u0431\u043e \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u043f\u043e\u0440\u0442.\n\n\u0421\u0443\u0444\u0444\u0438\u043a\u0441 `_readonly` \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 [\u0440\u0435\u0436\u0438\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f](../Security/Read_only.md) \u0434\u043b\u044f \u0441\u043b\u0443\u0448\u0430\u0442\u0435\u043b\u044f \u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0435\u0442 \u0435\u0433\u043e \u043f\u0440\u0438\u0435\u043c\u043e\u043c \u0442\u043e\u043b\u044c\u043a\u043e read-\u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432.\n\n\n##### \u041f\u0440\u0438\u043c\u0435\u0440:\n\n\n\nCODE_BLOCK_36\n\n\n\u0414\u0438\u0440\u0435\u043a\u0442\u0438\u0432 `listen` \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e. `searchd` \u0431\u0443\u0434\u0435\u0442 \u0441\u043b\u0443\u0448\u0430\u0442\u044c \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043d\u0430 \u0432\u0441\u0435\u0445 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u0440\u0442\u0430\u0445 \u0438 \u0441\u043e\u043a\u0435\u0442\u0430\u0445. \u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c\u0430\u044f \u0432 \u043f\u0430\u043a\u0435\u0442\u0430\u0445 Manticore, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043f\u0440\u043e\u0441\u043b\u0443\u0448\u0438\u0432\u0430\u043d\u0438\u0435 \u043d\u0430 \u043f\u043e\u0440\u0442\u0430\u0445:\n* `9308` \u0438 `9312` \u0434\u043b\u044f \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439 \u043e\u0442 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0445 \u0430\u0433\u0435\u043d\u0442\u043e\u0432 \u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432, \u043d\u0435 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 MySQL\n* \u0438 \u043d\u0430 \u043f\u043e\u0440\u0442\u0443 `9306` \u0434\u043b\u044f MySQL-\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439.\n\n\u0415\u0441\u043b\u0438 \u0432\u044b \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u0443\u043a\u0430\u0436\u0435\u0442\u0435 `listen` \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438, Manticore \u0431\u0443\u0434\u0435\u0442 \u043e\u0436\u0438\u0434\u0430\u0442\u044c \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439 \u043d\u0430:\n* `127.0.0.1:9306` \u0434\u043b\u044f MySQL-\u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432\n* `127.0.0.1:9312` \u0434\u043b\u044f HTTP/HTTPS \u0438 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439 \u043e\u0442 \u0434\u0440\u0443\u0433\u0438\u0445 \u0443\u0437\u043b\u043e\u0432 Manticore \u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432, \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u043c API Manticore.\n\n#### \u041f\u0440\u043e\u0441\u043b\u0443\u0448\u0438\u0432\u0430\u043d\u0438\u0435 \u043d\u0430 \u043f\u0440\u0438\u0432\u0438\u043b\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u0440\u0442\u0430\u0445\n\n\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e Linux \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0432\u0430\u043c \u0437\u0430\u0441\u0442\u0430\u0432\u0438\u0442\u044c Manticore \u0441\u043b\u0443\u0448\u0430\u0442\u044c \u043d\u0430 \u043f\u043e\u0440\u0442\u0443 \u043d\u0438\u0436\u0435 1024 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, `listen = 127.0.0.1:80:http` \u0438\u043b\u0438 `listen = 127.0.0.1:443:https`), \u0435\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 searchd \u043e\u0442 \u0438\u043c\u0435\u043d\u0438 root. \u0415\u0441\u043b\u0438 \u0432\u044b \u0432\u0441\u0435 \u0436\u0435 \u0445\u043e\u0442\u0438\u0442\u0435 \u0438\u043c\u0435\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c Manticore \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u043e\u043d \u0441\u043b\u0443\u0448\u0430\u043b \u043d\u0430 \u043f\u043e\u0440\u0442\u0430\u0445 < 1024 \u043f\u043e\u0434 \u043d\u0435\u043f\u0440\u0438\u0432\u0438\u043b\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c, \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u043e\u0434\u0438\u043d \u0438\u0437 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 (\u043b\u044e\u0431\u043e\u0439 \u0438\u0437 \u043d\u0438\u0445 \u0434\u043e\u043b\u0436\u0435\u043d \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c):\n* \u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u0443 `setcap CAP_NET_BIND_SERVICE=+eip /usr/bin/searchd`\n* \u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 `AmbientCapabilities=CAP_NET_BIND_SERVICE` \u0432 systemd-\u044e\u043d\u0438\u0442 Manticore \u0438 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0435 \u0434\u0435\u043c\u043e\u043d (`systemctl daemon-reload`).\n\n#### \u0422\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0434\u0435\u0442\u0430\u043b\u0438 \u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0435 Sphinx API \u0438 TFO\n
\n\u0423\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0439 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b Sphinx \u0438\u043c\u0435\u0435\u0442 2 \u0444\u0430\u0437\u044b: \u043e\u0431\u043c\u0435\u043d \u0440\u0443\u043a\u043e\u043f\u043e\u0436\u0430\u0442\u0438\u0435\u043c \u0438 \u043f\u043e\u0442\u043e\u043a \u0434\u0430\u043d\u043d\u044b\u0445. \u0420\u0443\u043a\u043e\u043f\u043e\u0436\u0430\u0442\u0438\u0435 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u043f\u0430\u043a\u0435\u0442\u0430 \u0432 4 \u0431\u0430\u0439\u0442\u0430 \u043e\u0442 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u0438 \u043f\u0430\u043a\u0435\u0442\u0430 \u0432 4 \u0431\u0430\u0439\u0442\u0430 \u043e\u0442 \u0434\u0435\u043c\u043e\u043d\u0430 \u0441 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u0446\u0435\u043b\u044c\u044e - \u043a\u043b\u0438\u0435\u043d\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442, \u0447\u0442\u043e \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u0430\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u043c \u0434\u0435\u043c\u043e\u043d\u043e\u043c Sphinx, \u0430 \u0434\u0435\u043c\u043e\u043d \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442, \u0447\u0442\u043e \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u0430\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u043c \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u043c Sphinx. \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043f\u043e\u0442\u043e\u043a \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442: \u043f\u0443\u0441\u0442\u044c \u043e\u0431\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u043e\u0431\u044a\u044f\u0432\u044f\u0442 \u0441\u0432\u043e\u0438 \u0440\u0443\u043a\u043e\u043f\u043e\u0436\u0430\u0442\u0438\u044f, \u0430 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u043f\u043e\u043b\u043e\u0436\u043d\u0430\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442 \u0438\u0445. \u042d\u0442\u043e\u0442 \u043e\u0431\u043c\u0435\u043d \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u043c\u0438 \u043f\u0430\u043a\u0435\u0442\u0430\u043c\u0438 \u043f\u043e\u0434\u0440\u0430\u0437\u0443\u043c\u0435\u0432\u0430\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0444\u043b\u0430\u0433\u0430 `TCP_NODELAY`, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c Nagle \u0432 TCP \u0438 \u043e\u0431\u044a\u044f\u0432\u043b\u044f\u0435\u0442, \u0447\u0442\u043e TCP-\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u0434\u0438\u0430\u043b\u043e\u0433 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432.\n\u041e\u0434\u043d\u0430\u043a\u043e, \u0441\u0442\u0440\u043e\u0433\u043e \u043d\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e, \u043a\u0442\u043e \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043f\u0435\u0440\u0432\u044b\u043c \u0432 \u044d\u0442\u043e\u043c \u043f\u0435\u0440\u0435\u0433\u043e\u0432\u043e\u0440\u0435. \u0418\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0441\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u044b, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0435 \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0439 API, \u0433\u043e\u0432\u043e\u0440\u044f\u0442 \u043f\u0435\u0440\u0432\u044b\u043c\u0438: \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442 \u0440\u0443\u043a\u043e\u043f\u043e\u0436\u0430\u0442\u0438\u0435, \u0437\u0430\u0442\u0435\u043c \u0447\u0438\u0442\u0430\u044e\u0442 4 \u0431\u0430\u0439\u0442\u0430 \u043e\u0442 \u0434\u0435\u043c\u043e\u043d\u0430, \u0437\u0430\u0442\u0435\u043c \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442 \u0437\u0430\u043f\u0440\u043e\u0441 \u0438 \u0447\u0438\u0442\u0430\u044e\u0442 \u043e\u0442\u0432\u0435\u0442 \u043e\u0442 \u0434\u0435\u043c\u043e\u043d\u0430.\n\u041a\u043e\u0433\u0434\u0430 \u043c\u044b \u0443\u043b\u0443\u0447\u0448\u0430\u043b\u0438 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 Sphinx, \u043c\u044b \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u043b\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:\n\n1. \u041e\u0431\u044b\u0447\u043d\u043e \u0441\u0432\u044f\u0437\u044c \u043c\u0430\u0441\u0442\u0435\u0440-\u0430\u0433\u0435\u043d\u0442 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0433\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u043a \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u043c\u0443 \u0445\u043e\u0441\u0442\u0443 \u043d\u0430 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u043c \u043f\u043e\u0440\u0442\u0443. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u0430\u043b\u043e\u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e, \u0447\u0442\u043e \u043a\u043e\u043d\u0435\u0447\u043d\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0435 \u0440\u0443\u043a\u043e\u043f\u043e\u0436\u0430\u0442\u0438\u0435. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043d\u0435\u044f\u0432\u043d\u043e \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c, \u0447\u0442\u043e \u043e\u0431\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u043c\u0438 \u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0431\u0449\u0430\u044e\u0442\u0441\u044f \u043f\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443 Sphinx.\n2. \u0418\u0441\u0445\u043e\u0434\u044f \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \"\u0441\u043a\u043b\u0435\u0438\u0442\u044c\" \u0440\u0443\u043a\u043e\u043f\u043e\u0436\u0430\u0442\u0438\u0435 \u0441 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u043c \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0435\u0433\u043e \u0432 \u043e\u0434\u043d\u043e\u043c \u043f\u0430\u043a\u0435\u0442\u0435. \u0415\u0441\u043b\u0438 \u0431\u044d\u043a\u0435\u043d\u0434 - \u044d\u0442\u043e \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0439 \u0434\u0435\u043c\u043e\u043d Sphinx, \u043e\u043d \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0435\u0442 \u044d\u0442\u043e\u0442 \u0441\u043a\u043b\u0435\u0435\u043d\u043d\u044b\u0439 \u043f\u0430\u043a\u0435\u0442 \u043a\u0430\u043a 4 \u0431\u0430\u0439\u0442\u0430 \u0440\u0443\u043a\u043e\u043f\u043e\u0436\u0430\u0442\u0438\u044f, \u0430 \u0437\u0430\u0442\u0435\u043c \u0442\u0435\u043b\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043e\u043d\u0438 \u043e\u0431\u0430 \u043f\u0440\u0438\u0448\u043b\u0438 \u0432 \u043e\u0434\u043d\u043e\u043c \u043f\u0430\u043a\u0435\u0442\u0435, \u0441\u043e\u043a\u0435\u0442 \u0431\u044d\u043a\u0435\u043d\u0434\u0430 \u0438\u043c\u0435\u0435\u0442 -1 RTT, \u0430 \u0431\u0443\u0444\u0435\u0440 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430 \u0432\u0441\u0435 \u0435\u0449\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043e\u0431\u044b\u0447\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u044d\u0442\u043e\u0442 \u0444\u0430\u043a\u0442.\n3. \u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044f \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435: \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043f\u0430\u043a\u0435\u0442 \"\u0437\u0430\u043f\u0440\u043e\u0441\u0430\" \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043c\u0430\u043b, \u0430 \u0440\u0443\u043a\u043e\u043f\u043e\u0436\u0430\u0442\u0438\u0435 \u0435\u0449\u0435 \u043c\u0435\u043d\u044c\u0448\u0435, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u043c \u043e\u0431\u0430 \u0432 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u043c TCP-\u043f\u0430\u043a\u0435\u0442\u0435 'SYN', \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0442\u0435\u0445\u043d\u0438\u043a\u0443 TFO (tcp-fast-open). \u0422\u043e \u0435\u0441\u0442\u044c: \u043c\u044b \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u0441\u044f \u043a \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u043c\u0443 \u0443\u0437\u043b\u0443 \u0441\u043e \u0441\u043a\u043b\u0435\u0435\u043d\u043d\u044b\u043c \u043f\u0430\u043a\u0435\u0442\u043e\u043c \u0440\u0443\u043a\u043e\u043f\u043e\u0436\u0430\u0442\u0438\u044f + \u0442\u0435\u043b\u0430. \u0414\u0435\u043c\u043e\u043d \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0438 \u0441\u0440\u0430\u0437\u0443 \u0436\u0435 \u0438\u043c\u0435\u0435\u0442 \u0438 \u0440\u0443\u043a\u043e\u043f\u043e\u0436\u0430\u0442\u0438\u0435, \u0438 \u0442\u0435\u043b\u043e \u0432 \u0431\u0443\u0444\u0435\u0440\u0435 \u0441\u043e\u043a\u0435\u0442\u0430, \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u043d\u0438 \u043f\u0440\u0438\u0448\u043b\u0438 \u0432 \u0441\u0430\u043c\u043e\u043c \u043f\u0435\u0440\u0432\u043e\u043c TCP-\u043f\u0430\u043a\u0435\u0442\u0435 'SYN'. \u042d\u0442\u043e \u0443\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442 \u0435\u0449\u0435 \u043e\u0434\u0438\u043d RTT.\n4. \u041d\u0430\u043a\u043e\u043d\u0435\u0446, \u043d\u0430\u0443\u0447\u0438\u043c \u0434\u0435\u043c\u043e\u043d\u0430 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u044d\u0442\u043e \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0435. \u0424\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438, \u0441\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u044d\u0442\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0443\u043c\u0435\u0432\u0430\u0435\u0442 \u041d\u0415 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c `TCP_NODELAY`. \u0410 \u0441\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u044d\u0442\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0443\u043c\u0435\u0432\u0430\u0435\u0442 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u0435 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u0434\u0435\u043c\u043e\u043d\u0430 \u043f\u0440\u0438\u0435\u043c TFO \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d, \u0430 \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 TFO \u0442\u0430\u043a\u0436\u0435 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0430. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0432 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0439 TFO \u0443\u0436\u0435 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439 TFO, \u0447\u0442\u043e\u0431\u044b \u0432\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e." + }, + "is_code_or_comment": false, + "model": "deepseek/deepseek-v3.2", + "updated_at": 1773763273 } } \ No newline at end of file diff --git a/manual/chinese/References.md b/manual/chinese/References.md index e525253299..64c39aa3b7 100644 --- a/manual/chinese/References.md +++ b/manual/chinese/References.md @@ -466,6 +466,7 @@ index_converter {--config /path/to/config|--path} * [log](Server_settings/Searchd.md#log) - Manticore 服务器日志文件路径 * [max_batch_queries](Server_settings/Searchd.md#max_batch_queries) - 限制每批查询的数量 * [max_connections](Server_settings/Searchd.md#max_connections) - 最大活动连接数 + * [merge_chunks_per_job](Server_settings/Searchd.md#merge_chunks_per_job) - 每个 OPTIMIZE 任务合并的 RT 磁盘块数量 * [max_filters](Server_settings/Searchd.md#max_filters) - 每个查询允许的最大过滤器数量 * [max_filter_values](Server_settings/Searchd.md#max_filter_values) - 每个过滤器允许的最大值数量 * [max_open_files](Server_settings/Searchd.md#max_open_files) - 服务器允许打开的最大文件数 @@ -478,6 +479,7 @@ index_converter {--config /path/to/config|--path} * [network_timeout](Server_settings/Searchd.md#network_timeout) - 客户端请求的网络超时 * [node_address](Server_settings/Searchd.md#node_address) - 指定节点的网络地址 * [persistent_connections_limit](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent) - 到远程持久代理的持久连接最大数量 + * [parallel_chunk_merges](Server_settings/Searchd.md#parallel_chunk_merges) - 在 OPTIMIZE 期间可以并行运行的 RT 磁盘块合并数量 * [pid_file](Server_settings/Searchd.md#pid_file) - Manticore 服务器 pid 文件路径 * [preopen_tables](Server_settings/Searchd.md#preopen_tables) - 确定是否在启动时强制预打开所有表 * [pseudo_sharding](Server_settings/Searchd.md#pseudo_sharding) - 为对普通表和实时表的搜索查询启用伪分片 diff --git a/manual/chinese/Securing_and_compacting_a_table/Compacting_a_table.md b/manual/chinese/Securing_and_compacting_a_table/Compacting_a_table.md index b58344bd84..459cba1434 100644 --- a/manual/chinese/Securing_and_compacting_a_table/Compacting_a_table.md +++ b/manual/chinese/Securing_and_compacting_a_table/Compacting_a_table.md @@ -111,4 +111,3 @@ ALTER CLUSTER mycluster ADD myindex; 在优化过程中,可以在任何节点上正常使用搜索操作。 - diff --git a/manual/chinese/Server_settings/Common.md b/manual/chinese/Server_settings/Common.md index daa069189e..46b54df4c1 100644 --- a/manual/chinese/Server_settings/Common.md +++ b/manual/chinese/Server_settings/Common.md @@ -16,7 +16,7 @@ lemmatizer_base = /usr/share/manticore/ progressive_merge ------------------ -progressive_merge 是一个配置指令,启用后,会将实时表的磁盘块从小到大合并。这种方式加快了合并过程,减少了读写放大。默认情况下,此设置是启用的。如果禁用,块将按创建顺序合并。 +progressive_merge 是一个配置指令,启用后会将实时表的磁盘块从较小的合并到较大的块中。这种方法加快了合并过程并减少了读写放大。此设置始终启用,仅保留配置中以保持向后兼容性。 json_autoconv_keynames ------------------------ diff --git a/manual/chinese/Server_settings/Searchd.md b/manual/chinese/Server_settings/Searchd.md index f2cb195dee..bb35f646c0 100644 --- a/manual/chinese/Server_settings/Searchd.md +++ b/manual/chinese/Server_settings/Searchd.md @@ -107,6 +107,55 @@ auto_optimize = 2 # OPTIMIZE starts at 16 chunks (on 4 cpu cores server) +### parallel_chunk_merges + + +此设置控制服务器在 [OPTIMIZE](../Securing_and_compacting_a_table/Compacting_a_table.md#OPTIMIZE-TABLE) 过程中允许并行运行的磁盘块合并任务数量,适用于实时表。 + +这仅影响磁盘块合并(压缩),不影响查询并行性。 + +将其设置为 `1` 以禁用并行块合并(合并任务将逐个运行)。较高的值可能会在具有快速存储的系统上加快压缩速度,但会增加并发磁盘 I/O。 + +默认值为 `max(1, min(2, threads/2))`。 + +此值可以通过 `SET GLOBAL parallel_chunk_merges = N` 在运行时更改,并通过 `SHOW VARIABLES` 查看。 + + +##### 示例: + + +```ini +parallel_chunk_merges = 1 +``` + + +```ini +parallel_chunk_merges = 4 +``` + + + +### merge_chunks_per_job + + +此设置控制在单个 OPTIMIZE 任务中合并多少个 RT 磁盘块(N 路合并)。如果可用块少于此数量,任务将合并它能合并的块(最少 2 个)。 + +较低的值允许更多任务并行调度;较高的值会减少任务数量但增加每次合并的规模。 + +默认值为 `2`。 + +此值可以通过 `SET GLOBAL merge_chunks_per_job = N` 在运行时更改,并通过 `SHOW VARIABLES` 查看。 + + +##### 示例: + + +```ini +merge_chunks_per_job = 4 +``` + + + ### auto_schema @@ -1730,4 +1779,3 @@ watchdog = 0 # disable watchdog ``` - diff --git a/manual/russian/References.md b/manual/russian/References.md index 94c0f41ac4..49b780f648 100644 --- a/manual/russian/References.md +++ b/manual/russian/References.md @@ -466,6 +466,7 @@ index_converter {--config /path/to/config|--path} * [log](Server_settings/Searchd.md#log) - Путь к файлу журнала сервера Manticore * [max_batch_queries](Server_settings/Searchd.md#max_batch_queries) - Ограничивает количество запросов в пакете * [max_connections](Server_settings/Searchd.md#max_connections) - Максимальное количество активных соединений + * [merge_chunks_per_job](Server_settings/Searchd.md#merge_chunks_per_job) - Сколько RT-дисковых чанков объединяется за одну задачу OPTIMIZE * [max_filters](Server_settings/Searchd.md#max_filters) - Максимально допустимое количество фильтров на запрос * [max_filter_values](Server_settings/Searchd.md#max_filter_values) - Максимально допустимое количество значений на фильтр * [max_open_files](Server_settings/Searchd.md#max_open_files) - Максимальное количество файлов, разрешенных для открытия сервером @@ -478,6 +479,7 @@ index_converter {--config /path/to/config|--path} * [network_timeout](Server_settings/Searchd.md#network_timeout) - Сетевой таймаут для запросов клиентов * [node_address](Server_settings/Searchd.md#node_address) - Определяет сетевой адрес узла * [persistent_connections_limit](Creating_a_table/Creating_a_distributed_table/Remote_tables.md#agent) - Максимальное количество одновременных постоянных соединений с удаленными постоянными агентами + * [parallel_chunk_merges](Server_settings/Searchd.md#parallel_chunk_merges) - Сколько слияний RT-дисковых чанков может выполняться параллельно во время OPTIMIZE * [pid_file](Server_settings/Searchd.md#pid_file) - Путь к pid-файлу сервера Manticore * [preopen_tables](Server_settings/Searchd.md#preopen_tables) - Определяет, следует ли принудительно предварительно открывать все таблицы при запуске * [pseudo_sharding](Server_settings/Searchd.md#pseudo_sharding) - Включает псевдошардинг для поисковых запросов к обычным и реального времени таблицам diff --git a/manual/russian/Securing_and_compacting_a_table/Compacting_a_table.md b/manual/russian/Securing_and_compacting_a_table/Compacting_a_table.md index 8b32e7d7b3..3989acc68e 100644 --- a/manual/russian/Securing_and_compacting_a_table/Compacting_a_table.md +++ b/manual/russian/Securing_and_compacting_a_table/Compacting_a_table.md @@ -111,4 +111,3 @@ ALTER CLUSTER mycluster ADD myindex; Операции поиска доступны как обычно в процессе на любом из узлов. - diff --git a/manual/russian/Server_settings/Common.md b/manual/russian/Server_settings/Common.md index 7c3685c415..7680b07b4a 100644 --- a/manual/russian/Server_settings/Common.md +++ b/manual/russian/Server_settings/Common.md @@ -16,7 +16,7 @@ lemmatizer_base = /usr/share/manticore/ progressive_merge ------------------ -`progressive_merge` — это директива конфигурации, которая при включении объединяет дисковые чанки реального времени таблицы от меньших к большим. Такой подход ускоряет процесс слияния и уменьшает усиление при чтении/записи. По умолчанию эта настройка включена. Если выключена, чанки объединяются в порядке их создания. +`progressive_merge` — это директива конфигурации, которая при включении объединяет дисковые чанки таблиц реального времени от меньших к большим. Этот подход ускоряет процесс объединения и снижает усиление чтения/записи. Эта настройка всегда включена и оставлена в конфигурации только для обратной совместимости. json_autoconv_keynames ------------------------ diff --git a/manual/russian/Server_settings/Searchd.md b/manual/russian/Server_settings/Searchd.md index 14ad2b289c..793caefc90 100644 --- a/manual/russian/Server_settings/Searchd.md +++ b/manual/russian/Server_settings/Searchd.md @@ -107,6 +107,55 @@ auto_optimize = 2 # OPTIMIZE starts at 16 chunks (on 4 cpu cores server) +### parallel_chunk_merges + + +Эта настройка управляет тем, сколько заданий слияния дисковых чанков серверу разрешено выполнять параллельно во время [OPTIMIZE](../Securing_and_compacting_a_table/Compacting_a_table.md#OPTIMIZE-TABLE) для таблиц реального времени. + +Это влияет только на слияние дисковых чанков (уплотнение), а не на параллелизм запросов. + +Установите значение `1`, чтобы отключить параллельное слияние чанков (задания слияния будут выполняться одно за другим). Более высокие значения могут ускорить уплотнение на системах с быстрым хранилищем, но увеличат одновременный ввод-вывод на диск. + +По умолчанию `max(1, min(2, threads/2))`. + +Это значение можно изменить во время выполнения с помощью `SET GLOBAL parallel_chunk_merges = N` и проверить через `SHOW VARIABLES`. + + +##### Пример: + + +```ini +parallel_chunk_merges = 1 +``` + + +```ini +parallel_chunk_merges = 4 +``` + + + +### merge_chunks_per_job + + +Эта настройка управляет тем, сколько RT дисковых чанков объединяется в одном задании OPTIMIZE (N-стороннее слияние). Если доступно меньше этого числа, задание объединит то, что может (минимум 2). + +Более низкие значения позволяют планировать больше заданий параллельно; более высокие значения уменьшают количество заданий, но увеличивают размер каждого слияния. + +По умолчанию `2`. + +Это значение можно изменить во время выполнения с помощью `SET GLOBAL merge_chunks_per_job = N` и проверить через `SHOW VARIABLES`. + + +##### Пример: + + +```ini +merge_chunks_per_job = 4 +``` + + + ### auto_schema @@ -1730,4 +1779,3 @@ watchdog = 0 # disable watchdog ``` -