繁体   English   中英

Lucene一起使用分类法和DocValues方面

Lucene use taxonomy and DocValues facets together

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

有许多基于分类索引和DocValues使用构面的示例。 但我需要将类别(分类法)和范围查询(NumericDocValuesField)一起用作层次结构。 例如DrillSideways:

  DrillSideways ds = new DrillSideways (searcher, config, taxoReader);
  DrillSideways.DrillSidewaysResult result = ds.search (q, topScoreDocCollector);

ds.search()的第二个参数是TopScoreDocCollector

FacetsCollectords.search()内部创建,因此无法将此收集器传递给ds.search() 传递MultiCollector.wrap(FacetsCollector,TopScoreDocCollector)作为ds.search()中的第二个参数不正确(?)。 但是, FacetsCollector需要构建分类索引中不可用的构面:

 Facets facetsTime = new LongRangeFacetCounts (..., FacetsCollector, ...);
 facetsTime.getTopChildren (...);

还列出result.facet包含null值,该值引用DocValues facet。

也许您有一个可行的示例,如何在DrillSideways中一起使用分类法DocValues方面。

1 个回复

DrillSideways假定您仅使用TaxonomyFacets或SortedSetDocValuesFacets。 如果不是这种情况,则可以对DrillSideways进行子类化,并覆盖buildFacetsResult方法以构建最终的Facet(如果您愿意)。 您将获得用于DrillDownQuery的FacetsCollector和两个带有侧面FacetCollectors和暗淡的数组,对于您添加到DrissSideways中的每个暗淡而言。

这是一个例子:

public class MyDrillSideways extends DrillSideways {

  public MyDrillSideways(IndexSearcher searcher, FacetsConfig config, TaxonomyReader taxoReader) {
    super(searcher, config, taxoReader);
  }

  @Override
  protected Facets buildFacetsResult(FacetsCollector drillDowns, FacetsCollector[] drillSideways, String[] drillSidewaysDims) throws IOException {

    String longRangeFacetDim = "mySpecialLongRangeDim";
    Facets drillDownFacets = new FastTaxonomyFacetCounts(taxoReader, config, drillDowns);

    boolean foundLongRangeInDrillSideways = false;
    Map<String, Facets> drillSidewaysFacets = new HashMap<>();
    if (drillSideways != null) {
      for (int i = 0; i < drillSideways.length; i++) {
        String sidewaysDim = drillSidewaysDims[i];
        FacetsCollector drillSideway = drillSideways[i];

        Facets sidewaysFacets;
        if (sidewaysDim.equals(longRangeFacetDim)) {
          foundLongRangeInDrillSideways = true;
          sidewaysFacets = new LongRangeFacetCounts(...,drillSideway,...);
        } else {
          sidewaysFacets = new FastTaxonomyFacetCounts(taxoReader, config, drillSideway);
        }
        drillSidewaysFacets.put(sidewaysDim, sidewaysFacets);
      }
    }

    if (!foundLongRangeInDrillSideways) {
      Facets facetsTime = new LongRangeFacetCounts(..., FacetsCollector, ...);
      drillSidewaysFacets.put(longRangeFacetDim, facetsTime);
    }

    return new MultiFacets(drillSidewaysFacets, drillDownFacets);
  }
}
1 Lucene层次分类法搜索

我有一组带有等级分类标记的文档,例如 我需要按“ book_category”搜索书籍。 搜索必须返回与查询类别完全或部分匹配的书(具有定义的深度阈值),并根据匹配程度给它们不同的分数。 例如:查询“ book_category = / novel /喜剧”和“ depth_th ...

2 果园面包屑不能与分类法一起使用

我正在使用Orchard 1.6,并且正在尝试使我的面包屑小部件可用于所有页面和分类法。 对于页面,选择页面后,面包屑将按预期工作: 但是,作为该菜单的一部分(主菜单,由“默认”果园配方设置),我添加了一些分类法术语(通过向我的分类法术语内容类型中添加“菜单”部分)。 当我查 ...

4 使用WordPress内容项作为分类法

有没有办法(或插件)使WordPress中的给定内容类型(即帖子,页面,媒体,自定义帖子类型)充当分类法? 我基本上想建立一个给定帖子类型中的一个项目与另一个不同类型的项目之间的一对多关系。 所以基本上,我有一个自定义帖子类型,称为作者。 我想使用帖子类型而不是分类法,因为我需要比分类 ...

5 使用分类法创建高级搜索

与往常一样,我为问题苦苦挣扎了3天之后,我决定在这里寻求帮助。 我正在尝试使用分类法和关键字字段创建高级搜索页面。 您可以在http://alianzasuperior.com/empleo/busqueda-avanzada/中看到我实际得到的内容(不要惊慌,它的西班牙语是,但只要认为 ...

6 如何使用setcontent提取分类法内容

无法使setcontent与分类法一起工作。 我在一个记录模板中,想提取其他具有相同分类法值的项目。 因此,我不想对值进行硬编码,而是将其与当前记录进行比较。 例如,这是一个硬编码查询,用于检查主题分类法中包含“ Apps”的项目。 相反,我需要类似此伪代码的东西,但是可以 ...

7 如果使用php进行分类法声明

因此,在下面,我将详细介绍我要达到的目标,如果有人可以帮助我,那将非常有帮助。 我在下面的metabox中可以拉入并存储一张图片(未提供完整代码,并且自拍完该图片以来已删除var_dump)。 图片上传后,它将以_profile_photo的形式存储在数据库中(一旦删除,它将从数 ...

8 Drupal:如何使用分类法来实现我的想法

我有一堆Bout节点。 每个回合都与一所学校关联,并有一名去那所学校的球员。 我认为通过分类法进行这种关联将起作用。 (学校和参与者是从随时间推移保持相当稳定的列表中得出的。) 一种想法是将学校名称作为父术语,而将玩家作为子术语: 就强制执行完整性约束而言,这项工作是否可行? ...

9 如何使用OWL创建分类法

我是OWL新手,我将创建一种softwares , programming languages等的分类法。目前,我们将所有内容都保存为.txt文件,并且我认为使用OWL可以帮助我们拥有更漂亮的格式。 但是我的问题是实现。 我想如果要以OWL格式实施分类,我有两种选择: 1)将每个项 ...

10 使用分类法细化搜索结果

我是网络开发的新手,我的WordPress模板有一个小问题! 这是我正在谈论的页面: 单击以查看页面 在此页面中,您只能看到某个位置的住宿(在本例中为塞维利亚),我想要做的是以复选框的形式向边栏添加额外的过滤器,以便用户可以选择他们所选择的住宿类型想要某些设施。 例如,如果用户在侧边栏 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM