.net 在球场上中和比分

.net 在球场上中和比分,.net,lucene,lucene.net,.net,Lucene,Lucene.net,是否可以创建一个所有结果得分相同的searchQuery? 例子: 我想搜索一些文档类型,并且我希望文档类型上的匹配不会对分数产生任何影响 (nodeTypeAlias:newsItem nodeTypeAlias:activity) 此查询提供了所有将newsItem或activity作为nodeTypeAlias的项,但问题是activity项的得分为27581,newsItem项的得分为01061。这为活动项提供了一个起始点,这是不需要的 Ived尝试使用lucene.net使用0进行增强

是否可以创建一个所有结果得分相同的searchQuery? 例子: 我想搜索一些文档类型,并且我希望文档类型上的匹配不会对分数产生任何影响

(nodeTypeAlias:newsItem nodeTypeAlias:activity) 此查询提供了所有将newsItem或activity作为nodeTypeAlias的项,但问题是activity项的得分为27581,newsItem项的得分为01061。这为活动项提供了一个起始点,这是不需要的

Ived尝试使用lucene.net使用0进行增强,但当传递给QueryParser时,它会将其转换为^.0,lucene会在此类查询中中断


所以问题是:我如何才能让字段搜索不影响分数,但其他字段应该(这些字段我实际上是使用searchQuery搜索的)。

将查询或子查询包装为一个,如:


在3.1之前的版本中,
ConstantCoreQuery
只能与
过滤器一起使用,而不能与
查询一起使用。你可以用几种方法来做

  • 将查询包装为:

    有趣的事实:仍然有代码支持/优化此模式,在源代码中指出:

    修复Lucene 2.x/early-3.x中过时的使用模式:因为ConstantCoreQuery只接受过滤器,所以使用QueryRapperFilter包装查询

  • 使用:


  • 好像是我要找的。尽管如此,我在2.9.4 lucene.net上,当我使用ConstantCoreQuery时,我只能给它一个过滤器,这我不知道。有什么提示吗?当我在luke中执行这个查询ConstantCore(QueryRapperFilter(nodeTypeAlias:activity nodeTypeAlias:workgroup))时,我在nodeTypeAlias上得到了两个不同的分数。我是在Umbraco中构建的,所以我使用一个框架来与Lucene一起工作,但据我所知,我应该能够像使用API一样处理查询字符串,但结果并不像预期的那样。有什么想法吗?
    Query constantQuery = new ConstantScoreQuery(nodeTypeAliasBQ);
    booleanQuery.add(new BooleanClause(constantQuery, BooleanClause.Occur.MUST));
    booleanQuery.add(new BooleanClause(someOtherQuery, BooleanClause.Occur.SHOULD));
    
    Query constantQuery = new ConstantScoreQuery(new QueryWrapperFilter(nodeTypeBQ))
    
    Filter nodeTypeFilter = new TermsFilter();
    nodeTypeFilter.addTerm(new Term("nodeTypeAlias","newsItem"));
    nodeTypeFilter.addTerm(new Term("nodeTypeAlias","activity"));
    Query constantQuery = new ConstantScoreQuery(nodeTypeFilter)