小编dom*_*dom的帖子

Lucene 6.6.0 中的索引时间字段级别提升?

在 Lucene 6.6.0 及更高版本中,不推荐使用字段级索引时间提升。该文件指出:

不推荐使用索引时间提升,请将索引时间评分因素索引到文档值字段中,并在查询时使用例如将它们与分数组合。函数分数查询。

以前会在索引时提升一个字段,如下所示:

    Field title = new Field(PaperDAO.LUCENE_FIELD_TITLE, titleStr, fieldType);
    title.setBoost(3.00f);
    document.add(title);

    Field authors = new Field(PaperDAO.LUCENE_FIELD_AUTHOR, StringEscapeUtils.unescapeHtml4(this.getAuthorsForLucene()), fieldType);
    authors.setBoost(10.00f);
    document.add(authors);
Run Code Online (Sandbox Code Playgroud)

我不明白建议的 FunctionScoreQuery 如何是字段级别提升的合适替代品,因为只有一个现有的 Query 和一个 DoubleValuesSource 表示可能许多字段中的一个的提升值,因此构造了一个 FunctionScoreQuery :

// INDEX TIME
Field title = new Field(PaperDAO.LUCENE_FIELD_TITLE, titleStr, fieldType);
document.add(title);
document.add(new FloatDocValuesField(PaperDAO.LUCENE_FIELD_TITLE + "_boost", 3.00f));

// QUERY TIME
new FunctionScoreQuery(query, DoubleValuesSource.fromFloatField(PaperDAO.LUCENE_FIELD_TITLE + "_boost"))
Run Code Online (Sandbox Code Playgroud)

有人可以解释一下 Lucene >= 6.6.0 中 Field#setBoost @ index time 的适当替换吗?我们是否应该在查询时枚举所有可能的字段并应用相关的提升?如果是这样,该查询是如何构造的?

lucene scoring lucene-boosting

7
推荐指数
1
解决办法
1404
查看次数

带有“规则”的Gitlab计划作业未运行且无法触发

我想在预定的上下文中运行一个或多个作业,因此使用特定的规则来声明它。问题是管道既不会由我的计划配置触发,也不会在我通过计划管道 UI 手动触发时触发。我根本没有看到任何触发的预定管道。

亚特实验室版本:12.9.2

gitlab-ci.yml(部分):

workflow:
rules:
    -   if: $CI_COMMIT_TAG
    -   if: $CI_COMMIT_BRANCH

non-scheduled-job:
...
rules:
    -   if: '$CI_PIPELINE_SOURCE != "schedule"'


scheduled-job:
...
rules:
    -   if: '$CI_PIPELINE_SOURCE == "schedule"'
        when: always
    -   if: '$CI_PIPELINE_SOURCE != "schedule"'
        when: never
Run Code Online (Sandbox Code Playgroud)

我知道不需要调度作业的第二条规则,但即使没有这个规则,管道也无法正常运行。

gitlab gitlab-ci

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

gitlab ×1

gitlab-ci ×1

lucene ×1

lucene-boosting ×1

scoring ×1