Trie क्षेत्रों सीमा निश्चित सीमा परिणाम precomputing और भंडारण के द्वारा तेजी से प्रश्नों बनाने "TrieRange का केवल कमियां क्योंकि अतिरिक्त अनुक्रमित पदों की, एक छोटा सा बड़ा सूचकांक आकार हैं" उन्हें सूचकांक में एक रिकॉर्ड के रूप में। स्पष्टता के लिए, मेरा उदाहरण आधार दस में पूर्णांक का उपयोग करेगा। एक ही अवधारणा सभी trie प्रकारों पर लागू होती है। इसमें तिथियां शामिल हैं, क्योंकि दिनांक, 1 9 70 के बाद से सेकंड की संख्या के रूप में प्रदर्शित किया जा सकता है।
मान लें कि हम 12345678
नंबर को इंडेक्स करते हैं। हम इसे निम्नलिखित टोकन में टोकननाइज़ कर सकते हैं।
12345678
123456xx
1234xxxx
12xxxxxx
12345678
टोकन वास्तविक पूर्णांक मान का प्रतिनिधित्व करता है। x
अंकों के साथ टोकन रेंज का प्रतिनिधित्व करते हैं।123456xx
12345600
से 12345699
तक का प्रतिनिधित्व करता है, और उस श्रेणी में टोकन वाले सभी दस्तावेज़ों से मेल खाता है।
ध्यान दें कि सूची में प्रत्येक टोकन में x
अंकों की संख्या कितनी है। यह सटीक कदम से नियंत्रित है। मेरे उदाहरण में, आप कह सकते हैं कि मैं 2 का सटीक चरण उपयोग कर रहा था, क्योंकि मैं प्रत्येक अतिरिक्त टोकन बनाने के लिए 2 अंक ट्रिम करता हूं। अगर मैं 3 के सटीक चरण का उपयोग करना चाहता था, तो मुझे इन टोकन मिलेंगे।
12345678
12345xxx
12xxxxxx
4 का एक सटीक कदम:
12345678
1234xxxx
1 का एक सटीक कदम:
12345678
1234567x
123456xx
12345xxx
1234xxxx
123xxxxx
12xxxxxx
1xxxxxxx
यह देखना आसान है कि कैसे एक छोटे और अधिक टोकन में सटीक कदम परिणाम और आकार बढ़ जाती है सूचकांक का। हालांकि, यह सीमा प्रश्नों को भी गति देता है।
trie क्षेत्र के बिना, अगर मैं 1250 से 1275 के लिए एक सीमा क्वेरी करने के लिए चाहता था, Lucene 25 प्रविष्टियों को लाने के लिए होता है (1250
, 1251
, 1252
, ..., 1275
) और खोज परिणामों को जोड़ सकते। एक Trie क्षेत्र (और 1 की शुद्धता कदम) के साथ, हम 8 प्रविष्टियों को लाते समय के साथ भाग मिल सकता है (125x
, 126x
, 1270
, 1271
, 1272
, 1273
, 1274
, 1275
), क्योंकि 125x
1250
के precomputed एकत्रीकरण है - 1259
। अगर मैं 1 से बड़े परिशुद्धता चरण का उपयोग करना चाहता था, तो क्वेरी सभी 25 व्यक्तिगत प्रविष्टियों को लाने के लिए वापस जायेगी।
नोट: असल में, सटीक चरण प्रत्येक टोकन के लिए छंटनी की बिट्स की संख्या को संदर्भित करता है। यदि आप हेक्साडेसिमल में अपनी संख्याएं लिखना चाहते थे, तो 4 का एक सटीक चरण प्रत्येक टोकन के लिए एक हेक्स अंक को ट्रिम करेगा। 8 का एक सटीक चरण दो हेक्स अंकों को ट्रिम करेगा।
5 साल बाद, अभी भी Google, सोलर मैनुअल, सोलर विकी आदि के साथ एक ही स्थिति है। ओह, नहीं, कुछ बदल गया है: Google अब यहां इंगित करता है :) – alisa