mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-29 10:57:44 +09:00 
			
		
		
		
	[Vendor] blevesearch v0.8.1 -> v1.0.7 (#11360)
* Update blevesearch v0.8.1 -> v1.0.7 * make vendor Co-authored-by: zeripath <art27@cantab.net>
This commit is contained in:
		
							
								
								
									
										54
									
								
								vendor/github.com/blevesearch/zap/v12/chunk.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								vendor/github.com/blevesearch/zap/v12/chunk.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,54 @@ | ||||
| //  Copyright (c) 2019 Couchbase, Inc. | ||||
| // | ||||
| // Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| // you may not use this file except in compliance with the License. | ||||
| // You may obtain a copy of the License at | ||||
| // | ||||
| //              http://www.apache.org/licenses/LICENSE-2.0 | ||||
| // | ||||
| // Unless required by applicable law or agreed to in writing, software | ||||
| // distributed under the License is distributed on an "AS IS" BASIS, | ||||
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| // See the License for the specific language governing permissions and | ||||
| // limitations under the License. | ||||
|  | ||||
| package zap | ||||
|  | ||||
| import ( | ||||
| 	"fmt" | ||||
| ) | ||||
|  | ||||
| // LegacyChunkMode was the original chunk mode (always chunk size 1024) | ||||
| // this mode is still used for chunking doc values. | ||||
| var LegacyChunkMode uint32 = 1024 | ||||
|  | ||||
| // DefaultChunkMode is the most recent improvement to chunking and should | ||||
| // be used by default. | ||||
| var DefaultChunkMode uint32 = 1025 | ||||
|  | ||||
| func getChunkSize(chunkMode uint32, cardinality uint64, maxDocs uint64) (uint64, error) { | ||||
| 	switch { | ||||
| 	// any chunkMode <= 1024 will always chunk with chunkSize=chunkMode | ||||
| 	case chunkMode <= 1024: | ||||
| 		// legacy chunk size | ||||
| 		return uint64(chunkMode), nil | ||||
|  | ||||
| 	case chunkMode == 1025: | ||||
| 		// attempt at simple improvement | ||||
| 		// theory - the point of chunking is to put a bound on the maximum number of | ||||
| 		// calls to Next() needed to find a random document.  ie, you should be able | ||||
| 		// to do one jump to the correct chunk, and then walk through at most | ||||
| 		// chunk-size items | ||||
| 		// previously 1024 was chosen as the chunk size, but this is particularly | ||||
| 		// wasteful for low cardinality terms.  the observation is that if there | ||||
| 		// are less than 1024 items, why not put them all in one chunk, | ||||
| 		// this way you'll still achieve the same goal of visiting at most | ||||
| 		// chunk-size items. | ||||
| 		// no attempt is made to tweak any other case | ||||
| 		if cardinality <= 1024 { | ||||
| 			return maxDocs, nil | ||||
| 		} | ||||
| 		return 1024, nil | ||||
| 	} | ||||
| 	return 0, fmt.Errorf("unknown chunk mode %d", chunkMode) | ||||
| } | ||||
		Reference in New Issue
	
	Block a user