/// <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; }
public override Query VisitConstantScoreQuery(ConstantScoreQuery constantScoreq) { throw new NotImplementedException(); }
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); }
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); }