Esempio n. 1
0
        private void PutPostingsInContainer(PostingsFile posting)
        {
            var containerId = posting.Field.ToPostingsContainerId();
            PostingsContainer container;

            if (!_postingsContainers.TryGetValue(containerId, out container))
            {
                container = new PostingsContainer(_directory, containerId);
            }
            container.Put(posting);
            _postingsContainers[container.Id] = container;
        }
Esempio n. 2
0
        private PostingsFile GetPostingsFile(string field, string token)
        {
            var containerId = field.ToPostingsContainerId();
            PostingsContainer container;

            if (!_postingContainers.TryGetValue(containerId, out container))
            {
                container = new PostingsContainer(_directory, containerId, eager: false);
                _postingContainers[containerId] = container;
            }
            return(container.Get(token));
        }
Esempio n. 3
0
        private PostingsFile GetPostingsFile(string field, string token)
        {
            var          fieldTokenId = string.Format("{0}.{1}", field, token);
            PostingsFile file;

            if (!_postingsFiles.TryGetValue(fieldTokenId, out file))
            {
                var containerId = field.ToPostingsContainerId();
                PostingsContainer container;
                if (!_postingsContainers.TryGetValue(containerId, out container))
                {
                    container = new PostingsContainer(_directory, containerId);
                }
                _postingsContainers[containerId] = container;

                if (!container.TryGet(token, out file))
                {
                    file = new PostingsFile(field, token);
                }
                _postingsFiles[fieldTokenId] = file;
            }
            return(file);
        }