示例#1
0
		internal SpanScorer(Spans spans, Weight weight, Similarity similarity, byte[] norms) : base(similarity)
		{
			this.spans = spans;
			this.norms = norms;
			this.weight = weight;
			this.value_Renamed = weight.Value;
		}
示例#2
0
		protected internal SpanScorer(Spans spans, Weight weight, Similarity similarity, byte[] norms):base(similarity)
		{
			this.spans = spans;
			this.norms = norms;
			this.weight = weight;
			this.value_Renamed = weight.Value;
			if (this.spans.Next())
			{
				doc = - 1;
			}
			else
			{
				doc = NO_MORE_DOCS;
				more = false;
			}
		}
            public SpansCell(NearSpans enclosingInstance, Spans spans, int index)
			{
				InitBlock(enclosingInstance);
                this.spans = spans;
                this.index = index;
            }
示例#4
0
 // Get the payloads associated with all underlying subspans
 public virtual void GetPayloads(Spans[] subSpans)
 {
     for (var i = 0; i < subSpans.Length; i++)
     {
         var span = subSpans[i] as NearSpansOrdered;
         if (span != null)
         {
             if (span.PayloadAvailable)
             {
                 ProcessPayloads(span.Payload, subSpans[i].Start(), subSpans[i].End());
             }
             GetPayloads(span.SubSpans);
         }
         else
         {
             var unordered = subSpans[i] as NearSpansUnordered;
             if (unordered != null)
             {
                 if (unordered.PayloadAvailable)
                 {
                     ProcessPayloads(unordered.Payload, subSpans[i].Start(), subSpans[i].End());
                 }
                 GetPayloads(unordered.SubSpans);
             }
         }
     }
 }
示例#5
0
 // Get the payloads associated with all underlying subspans
 public virtual void GetPayloads(Spans[] subSpans)
 {
     for (int i = 0; i < subSpans.Length; i++)
     {
         if (subSpans[i] is NearSpansOrdered)
         {
             if (((NearSpansOrdered)subSpans[i]).PayloadAvailable)
             {
                 ProcessPayloads(((NearSpansOrdered)subSpans[i]).Payload, subSpans[i].Start(), subSpans[i].End());
             }
             GetPayloads(((NearSpansOrdered)subSpans[i]).SubSpans);
         }
         else if (subSpans[i] is NearSpansUnordered)
         {
             if (((NearSpansUnordered)subSpans[i]).PayloadAvailable)
             {
                 ProcessPayloads(((NearSpansUnordered)subSpans[i]).Payload, subSpans[i].Start(), subSpans[i].End());
             }
             GetPayloads(((NearSpansUnordered)subSpans[i]).SubSpans);
         }
     }
 }
示例#6
0
 public void ClearSpanBuffer()
 {
     Spans.Clear();
 }
示例#7
0
 internal QueryTextSpan GetSpanWithCurrentTextCursor()
 => Spans.OfType <QueryTextSpan>().SingleOrDefault();
示例#8
0
 public Parenthetical(FountainBlockElement Parenthetical)
 {
     FSarpParenthetical = (FountainBlockElement.Parenthetical)Parenthetical;
     Spans = new Spans(FSarpParenthetical.Item1);
     Range = FSarpParenthetical.Item2;
 }
示例#9
0
 public Dialogue(FountainBlockElement Dialogue)
 {
     FSharpDialogue = (FountainBlockElement.Dialogue)Dialogue;
     Spans          = new Spans(FSharpDialogue.Item1);
     Range          = FSharpDialogue.Item2;
 }
示例#10
0
 public void ClearSelectedSpan()
 {
     Spans[Spans.IndexOf(_selectedSpan)].Clear();
     SelectedUserSpan.Clear();
 }
示例#11
0
 /// <summary>
 /// returns the points uniformly distributed over the entries
 /// </summary>
 /// <returns></returns>
 public IEnumerable <Point> GetEntryPoints()
 {
     return(Spans.SelectMany(SpanPoints));
 }
示例#12
0
 public SpansCell(NearSpans enclosingInstance, Spans spans, int index)
 {
     InitBlock(enclosingInstance);
     this.spans = spans;
     this.index = index;
 }
示例#13
0
        //每个RuleSet节点的样子:<RuleSet ignorecase = "false">......</RuleSet>
        public HighlightRuleSet(XmlElement el)
        {
            if (el.Attributes["name"] != null)
            {
                Name = el.Attributes["name"].InnerText;
            }

            if (el.Attributes["noescapesequences"] != null)
            {
                noEscapeSequences = Boolean.Parse(el.Attributes["noescapesequences"].InnerText);
            }

            if (el.Attributes["reference"] != null)
            {
                reference = el.Attributes["reference"].InnerText;
            }

            if (el.Attributes["ignorecase"] != null)
            {
                ignoreCase = Boolean.Parse(el.Attributes["ignorecase"].InnerText);
            }

            for (int i = 0; i < Delimiters.Length; ++i)
            {
                Delimiters[i] = false;
            }

            if (el["Delimiters"] != null)
            {
                string delimiterString = el["Delimiters"].InnerText;
                foreach (char ch in delimiterString)
                {
                    Delimiters[(int)ch] = true;                    //将当前字符置为分隔符.
                }
            }

            XmlNodeList nodes = null;

            //以下是初始化Span.
            nodes = el.GetElementsByTagName("Span");
            foreach (XmlElement el2 in nodes)
            {
                Spans.Add(new Span(el2));
            }

            keyWords    = new LookupTable(!IgnoreCase);
            prevMarkers = new LookupTable(!IgnoreCase);
            nextMarkers = new LookupTable(!IgnoreCase);

            //以下是初始化KeyWords.
            nodes = el.GetElementsByTagName("KeyWords");
            foreach (XmlElement el2 in nodes)
            {
                HighlightColor color = new HighlightColor(el2);

                XmlNodeList keys = el2.GetElementsByTagName("Key");
                foreach (XmlElement node in keys)
                {
                    keyWords[node.Attributes["word"].InnerText] = color;                    //为每个关键字都赋予一个HighLightColor对象.
                }
            }

            //每个MarkPrevious节点的样子:
            //<MarkPrevious bold = "true" italic = "false" color = "MidnightBlue">(</MarkPrevious>
            nodes = el.GetElementsByTagName("MarkPrevious");
            foreach (XmlElement el2 in nodes)
            {
                PrevMarker prev = new PrevMarker(el2);
                prevMarkers[prev.What] = prev;
            }
            //每个MarkFollowing节点的样子和MarkFollowing的样子完全一样.
            nodes = el.GetElementsByTagName("MarkFollowing");
            foreach (XmlElement el2 in nodes)
            {
                NextMarker next = new NextMarker(el2);
                nextMarkers[next.What] = next;
            }
        }
 private void InitBlock(IndexReader reader, SpanLastQuery enclosingInstance)
 {
     this.reader            = reader;
     this.enclosingInstance = enclosingInstance;
     this.spans             = this.Enclosing_Instance.match.GetSpans(reader);
 }
示例#15
0
 public int GetSpanCount()
 {
     return(Spans.Count());
 }
示例#16
0
 public Centered(FountainBlockElement Centered)
 {
     FSharpCentered = (FountainBlockElement.Centered)Centered;
     Spans          = new Spans(FSharpCentered.Item1);
     Range          = FSharpCentered.Item2;
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="HighlightRuleSet"/> class.
        /// </summary>
        /// <param name="el">The XML element that describes the rule set.</param>
        public HighlightRuleSet(XmlElement el)
        {
            if (el.Attributes["name"] != null)
            {
                Name = el.Attributes["name"].InnerText;
            }

            if (el.HasAttribute("escapecharacter"))
            {
                escapeCharacter = el.GetAttribute("escapecharacter")[0];
            }

            if (el.Attributes["reference"] != null)
            {
                reference = el.Attributes["reference"].InnerText;
            }

            if (el.Attributes["ignorecase"] != null)
            {
                ignoreCase = Boolean.Parse(el.Attributes["ignorecase"].InnerText);
            }

            if (el.Attributes["highlightDigits"] != null)
            {
                highlightDigits = Boolean.Parse(el.Attributes["highlightDigits"].InnerText);
            }

            for (int i = 0; i < Delimiters.Length; ++i)
            {
                delimiters[i] = false;
            }

            if (el["Delimiters"] != null)
            {
                string delimiterString = el["Delimiters"].InnerText;
                foreach (char ch in delimiterString)
                {
                    delimiters[ch] = true;
                }
            }

            keyWords    = new LookupTable(!IgnoreCase);
            prevMarkers = new LookupTable(!IgnoreCase);
            nextMarkers = new LookupTable(!IgnoreCase);

            XmlNodeList nodes = el.GetElementsByTagName("KeyWords");

            foreach (XmlElement el2 in nodes)
            {
                HighlightColor color = new HighlightColor(el2);

                XmlNodeList keys = el2.GetElementsByTagName("Key");
                foreach (XmlElement node in keys)
                {
                    keyWords[node.Attributes["word"].InnerText] = color;
                }
            }

            nodes = el.GetElementsByTagName("Span");
            foreach (XmlElement el2 in nodes)
            {
                Spans.Add(new Span(el2));
            }

            nodes = el.GetElementsByTagName("MarkPrevious");
            foreach (XmlElement el2 in nodes)
            {
                PrevMarker prev = new PrevMarker(el2);
                prevMarkers[prev.What] = prev;
            }

            nodes = el.GetElementsByTagName("MarkFollowing");
            foreach (XmlElement el2 in nodes)
            {
                NextMarker next = new NextMarker(el2);
                nextMarkers[next.What] = next;
            }
        }
示例#18
0
 public Lyrics(FountainBlockElement Lyrics)
 {
     FSharpLyrics = (FountainBlockElement.Lyrics)Lyrics;
     Spans        = new Spans(FSharpLyrics.Item1);
     Range        = FSharpLyrics.Item2;
 }
示例#19
0
        public HighlightRuleSet(XmlElement el)
        {
            XmlNodeList nodes;

            if (el.Attributes["name"] != null)
            {
                Name = el.Attributes["name"].InnerText;
            }

            if (el.Attributes["noescapesequences"] != null)
            {
                noEscapeSequences = Boolean.Parse(el.Attributes["noescapesequences"].InnerText);
            }

            if (el.Attributes["reference"] != null)
            {
                reference = el.Attributes["reference"].InnerText;
            }

            if (el.Attributes["ignorecase"] != null)
            {
                ignoreCase = Boolean.Parse(el.Attributes["ignorecase"].InnerText);
            }

            for (int i = 0; i < Delimiters.Length; ++i)
            {
                delimiters[i] = false;
            }

            if (el["Delimiters"] != null)
            {
                string delimiterString = el["Delimiters"].InnerText;
                foreach (char ch in delimiterString)
                {
                    delimiters[(int)ch] = true;
                }
            }

//			Spans       = new LookupTable(!IgnoreCase);

            keyWords    = new LookupTable(!IgnoreCase);
            prevMarkers = new LookupTable(!IgnoreCase);
            nextMarkers = new LookupTable(!IgnoreCase);

            nodes = el.GetElementsByTagName("KeyWords");
            foreach (XmlElement el2 in nodes)
            {
                HighlightColor color = new HighlightColor(el2);

                XmlNodeList keys = el2.GetElementsByTagName("Key");
                foreach (XmlElement node in keys)
                {
                    keyWords[node.Attributes["word"].InnerText] = color;
                }
            }

            nodes = el.GetElementsByTagName("Span");
            foreach (XmlElement el2 in nodes)
            {
                Spans.Add(new Span(el2));

                /*
                 * Span span = new Span(el2);
                 * Spans[span.Begin] = span;*/
            }

            nodes = el.GetElementsByTagName("MarkPrevious");
            foreach (XmlElement el2 in nodes)
            {
                PrevMarker prev = new PrevMarker(el2);
                prevMarkers[prev.What] = prev;
            }

            nodes = el.GetElementsByTagName("MarkFollowing");
            foreach (XmlElement el2 in nodes)
            {
                NextMarker next = new NextMarker(el2);
                nextMarkers[next.What] = next;
            }
        }
示例#20
0
 public Synopses(FountainBlockElement Synopses)
 {
     FSharpSynopses = (FountainBlockElement.Synopses)Synopses;
     Spans          = new Spans(FSharpSynopses.Item1);
     Range          = FSharpSynopses.Item2;
 }
示例#21
0
 public ISpan this[int key] {
     get { return(Spans.ElementAt(key)); } set { throw new InvalidOperationException(); }
 }
示例#22
0
 public void RecordSpan(SpanData span)
 {
     Spans.Add(span);
 }
示例#23
0
 public IEnumerator <ISpan> GetEnumerator()
 {
     return(Spans.GetEnumerator());
 }
示例#24
0
 public RootSpan()
 {
     Spans.Add(this);
 }
示例#25
0
 IEnumerator IEnumerable.GetEnumerator()
 {
     return(Spans.GetEnumerator());
 }
示例#26
0
 protected internal PayloadNearSpanScorer(PayloadNearQuery outerInstance, Spans spans, Weight weight, Similarity similarity, Similarity.SimScorer docScorer)
     : base(spans, weight, docScorer)
 {
     this.OuterInstance = outerInstance;
     this.Spans = spans;
 }
示例#27
0
 internal void Merge(Spans other) => inner.AddRange(other.inner);
示例#28
0
 //
 protected internal override bool SetFreqCurrentDoc()
 {
     if (!More)
     {
         return false;
     }
     Doc = Spans.Doc();
     Freq_Renamed = 0.0f;
     PayloadScore = 0;
     PayloadsSeen = 0;
     do
     {
         int matchLength = Spans.End() - Spans.Start();
         Freq_Renamed += DocScorer.ComputeSlopFactor(matchLength);
         Spans[] spansArr = new Spans[1];
         spansArr[0] = Spans;
         GetPayloads(spansArr);
         More = Spans.Next();
     } while (More && (Doc == Spans.Doc()));
     return true;
 }
示例#29
0
        /// <summary>
        /// Method who will add, update and remove one child
        /// </summary>
        /// <param name="databaseAccessRequest"></param>
        /// <returns></returns>
        private static async Task EFCoreBulkUpdateExtensionMethodUpdateChilsAsync(DatabaseAccessRequest databaseAccessRequest)
        {
            Console.ForegroundColor = ConsoleColor.Yellow;

            using (var context = new EfPocEntitiesEFCore(databaseAccessRequest))
            {
                //context.ChangeTracker.AutoDetectChangesEnabled = false;
                try
                {
                    Stopwatch w = new Stopwatch();
                    w.Start();
                    Console.WriteLine("Scenario: Add, Update, Remove Childs");

                    //Get all Members
                    var m1200 = await context.Members
                                .Include(member => member.Spans)
                                .FirstOrDefaultAsync(m => m.Id == 1200);

                    var m1210 = await context.Members
                                .Include(member => member.Spans)
                                .FirstOrDefaultAsync(m => m.Id == 1210);

                    var m1220 = await context.Members
                                .Include(member => member.Spans)
                                .FirstOrDefaultAsync(m => m.Id == 1220);

                    //Add new span
                    var span = new Spans
                    {
                        MemberId  = m1200.Id,
                        SpanType  = "SECD",
                        SpanValue = $"New {m1200.Id}",
                        StartDate = DateTime.Now
                    };
                    m1200.Spans.Add(span);


                    //Update span
                    foreach (var s in m1210.Spans)
                    {
                        s.SpanValue = "UPD Value";
                    }


                    //remove Spans
                    m1220.Spans.Clear();


                    await context.SaveChangesAsync();

                    ///For bulk operations (1000s), we should create different collections for each instruction (add or update and delete)

                    Console.WriteLine($"Finished in {w.ElapsedMilliseconds}ms");


                    Console.WriteLine("Getting member with new spans");
                    _showValues(await _getMember(context, 1200));

                    Console.WriteLine("Getting a member with updated spans");
                    _showValues(await _getMember(context, 1210));

                    Console.WriteLine("Getting a member with deleted spans");
                    _showValues(await _getMember(context, 1220));
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                }
            }
        }
示例#30
0
 protected internal PayloadNearSpanScorer(PayloadNearQuery outerInstance, Spans spans, Weight weight, Similarity similarity, Similarity.SimScorer docScorer)
     : base(spans, weight, docScorer)
 {
     this.outerInstance = outerInstance;
     this.spans         = spans;
 }
        public HighlightRuleSet(XmlElement el)
        {
            XmlNodeList nodes;

            if (el.Attributes["name"] != null)
            {
                Name = el.Attributes["name"].InnerText;
            }

            if (el.HasAttribute("escapecharacter"))
            {
                EscapeCharacter = el.GetAttribute("escapecharacter")[0];
            }

            if (el.Attributes["reference"] != null)
            {
                Reference = el.Attributes["reference"].InnerText;
            }

            if (el.Attributes["ignorecase"] != null)
            {
                IgnoreCase = bool.Parse(el.Attributes["ignorecase"].InnerText);
            }

            for (var i = 0; i < Delimiters.Length; ++i)
            {
                Delimiters[i] = false;
            }

            if (el["Delimiters"] != null)
            {
                var delimiterString = el["Delimiters"].InnerText;
                foreach (var ch in delimiterString)
                {
                    Delimiters[ch] = true;
                }
            }

//			Spans       = new LookupTable(!IgnoreCase);

            KeyWords    = new LookupTable(!IgnoreCase);
            PrevMarkers = new LookupTable(!IgnoreCase);
            NextMarkers = new LookupTable(!IgnoreCase);

            nodes = el.GetElementsByTagName("KeyWords");
            foreach (XmlElement el2 in nodes)
            {
                var color = new HighlightColor(el2);

                var keys = el2.GetElementsByTagName("Key");
                foreach (XmlElement node in keys)
                {
                    KeyWords[node.Attributes["word"].InnerText] = color;
                }
            }

            nodes = el.GetElementsByTagName("Span");
            foreach (XmlElement el2 in nodes)
            {
                Spans.Add(new Span(el2));
            }

            /*
             *                  Span span = new Span(el2);
             *                  Spans[span.Begin] = span;*/

            nodes = el.GetElementsByTagName("MarkPrevious");
            foreach (XmlElement el2 in nodes)
            {
                var prev = new PrevMarker(el2);
                PrevMarkers[prev.What] = prev;
            }

            nodes = el.GetElementsByTagName("MarkFollowing");
            foreach (XmlElement el2 in nodes)
            {
                var next = new NextMarker(el2);
                NextMarkers[next.What] = next;
            }
        }