Exemplo n.º 1
0
        /// <summary>
        /// Expert: add a custom drill-down Filter, e.g. when
        /// drilling down after range faceting. 
        /// </summary>
        public void Add(string dim, Filter subFilter)
        {

            if (drillDownDims.ContainsKey(dim))
            {
                throw new System.ArgumentException("dimension \"" + dim + "\" already has a drill-down");
            }

            // TODO: we should use FilteredQuery?

            // So scores of the drill-down query don't have an
            // effect:
            ConstantScoreQuery drillDownQuery = new ConstantScoreQuery(subFilter);
            drillDownQuery.Boost = 0.0f;

            query.Add(drillDownQuery, Occur.MUST);

            drillDownDims[dim] = drillDownDims.Count;
        }
Exemplo n.º 2
0
 public override Query VisitConstantScoreQuery(ConstantScoreQuery constantScoreq)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 3
0
 public virtual Query VisitConstantScoreQuery(ConstantScoreQuery constantScoreq)
 {
     throw new NotImplementedException();
 }
        public virtual void TestSumScoreAggregator()
        {
            Store.Directory indexDir = NewDirectory();
            Store.Directory taxoDir = NewDirectory();

            DirectoryTaxonomyWriter taxoWriter = new DirectoryTaxonomyWriter(taxoDir);
            IndexWriter iw = new IndexWriter(indexDir, NewIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(Random())));

            FacetsConfig config = new FacetsConfig();

            for (int i = AtLeast(30); i > 0; --i)
            {
                Document doc = new Document();
                if (Random().NextBoolean()) // don't match all documents
                {
                    doc.Add(new StringField("f", "v", Field.Store.NO));
                }
                doc.Add(new FacetField("dim", "a"));
                iw.AddDocument(config.Build(taxoWriter, doc));
            }

            DirectoryReader r = DirectoryReader.Open(iw, true);
            DirectoryTaxonomyReader taxoReader = new DirectoryTaxonomyReader(taxoWriter);

            FacetsCollector fc = new FacetsCollector(true);
            ConstantScoreQuery csq = new ConstantScoreQuery(new MatchAllDocsQuery());
            csq.Boost = 2.0f;

            TopDocs td = FacetsCollector.Search(NewSearcher(r), csq, 10, fc);

            Facets facets = new TaxonomyFacetSumValueSource(taxoReader, config, fc, new TaxonomyFacetSumValueSource.ScoreValueSource());

            int expected = (int)(td.MaxScore * td.TotalHits);
            Assert.AreEqual(expected, (int)facets.GetSpecificValue("dim", "a"));

            IOUtils.Close(iw, taxoWriter, taxoReader, taxoDir, r, indexDir);
        }
Exemplo n.º 5
0
 public virtual Query VisitConstantScoreQuery(ConstantScoreQuery constantScoreq) { throw new NotSupportedException(); }
        public override SearchRequest <DemoEntity> TrunConditionToSql <DemoEntity>(BaseDemoCondition condition)
        {
            var mustClauses = new List <QueryContainer>();

            if (condition != null)
            {
                if (!string.IsNullOrEmpty(condition.MoNO))
                {
                    var termQuery = new TermQuery {
                        Field = "moNo", Value = condition.MoNO
                    };
                    var query = new ConstantScoreQuery()
                    {
                        Filter = termQuery
                    };
                    mustClauses.Add(query);
                }
                if (!string.IsNullOrEmpty(condition.RoNO))
                {
                    var termQuery = new TermQuery {
                        Field = "roNo", Value = condition.RoNO
                    };
                    var query = new ConstantScoreQuery()
                    {
                        Filter = termQuery
                    };
                    mustClauses.Add(query);
                }
                if (!string.IsNullOrEmpty(condition.BelongDate))
                {
                    var termQuery = new TermQuery {
                        Field = "belongDate", Value = condition.BelongDate
                    };
                    var query = new ConstantScoreQuery()
                    {
                        Filter = termQuery
                    };
                    mustClauses.Add(query);
                }
                if (!string.IsNullOrEmpty(condition.SiliconWaferSupplierCode))
                {
                    var termQuery = new TermQuery {
                        Field = "siliconWaferSupplierCode", Value = condition.SiliconWaferSupplierCode
                    };
                    var query = new ConstantScoreQuery()
                    {
                        Filter = termQuery
                    };
                    mustClauses.Add(query);
                }
                if (!string.IsNullOrEmpty(condition.CashmereLineCode))
                {
                    var termQuery = new TermQuery {
                        Field = "cashmereLineCode", Value = condition.CashmereLineCode
                    };
                    var query = new ConstantScoreQuery()
                    {
                        Filter = termQuery
                    };
                    mustClauses.Add(query);
                }
                if (!string.IsNullOrEmpty(condition.CashmereLineCodes))
                {
                    var arr_lineCode = condition.CashmereLineCodes.Split(',');
                    var termQuery    = new TermsQuery {
                        Field = "cashmereLineCode", Terms = arr_lineCode
                    };
                    var query = new ConstantScoreQuery()
                    {
                        Filter = termQuery
                    };
                    mustClauses.Add(query);
                }
                if (!string.IsNullOrEmpty(condition.WorkGroupCode))
                {
                    var termQuery = new TermQuery {
                        Field = "workGroupCode", Value = condition.WorkGroupCode
                    };
                    var query = new ConstantScoreQuery()
                    {
                        Filter = termQuery
                    };
                    mustClauses.Add(query);
                }
                if (condition.IsSingleSideType.HasValue)
                {
                    var termQuery = new TermQuery {
                        Field = "isSingleSideType", Value = condition.IsSingleSideType.Value
                    };
                    var query = new ConstantScoreQuery()
                    {
                        Filter = termQuery
                    };
                    mustClauses.Add(query);
                }

                if (!string.IsNullOrEmpty(condition.ClassShiftCode))
                {
                    var termQuery = new TermQuery {
                        Field = "classShiftCode", Value = condition.ClassShiftCode
                    };
                    var query = new ConstantScoreQuery()
                    {
                        Filter = termQuery
                    };
                    mustClauses.Add(query);
                }

                if (!string.IsNullOrEmpty(condition.OrderCode))
                {
                    var termQuery = new TermQuery {
                        Field = "orderInfo.orderCode", Value = condition.OrderCode
                    };
                    var query = new ConstantScoreQuery()
                    {
                        Filter = termQuery
                    };
                    mustClauses.Add(query);
                }
                if (condition.StartTime.HasValue && condition.EndTime.HasValue)
                {
                    //µ±Ìì23:59:59.999
                    var endTime = DateMath.Anchored(condition.EndTime.Value).RoundTo(DateMathTimeUnit.Day);

                    var dateQuery = new DateRangeQuery {
                        GreaterThanOrEqualTo = condition.StartTime.Value, LessThanOrEqualTo = endTime, Field = "createTime", TimeZone = "+08:00"
                    };

                    mustClauses.Add(dateQuery);
                }
                if (condition.DocumentType.HasValue)
                {
                    var termQuery = new TermQuery {
                        Field = "documentType", Value = condition.DocumentType.Value
                    };
                    var query = new ConstantScoreQuery()
                    {
                        Filter = termQuery
                    };
                    mustClauses.Add(query);
                }
            }
            var searchRequest = new SearchRequest <DemoEntity>()
            {
                Query = new BoolQuery {
                    Must = mustClauses
                }
            };

            return(searchRequest);
        }