有没有办法在elasticsearch中增加长文档中的匹配

时间:2013-07-05 19:49:17

标签: elasticsearch

在elasticsearch中,文档的长度对搜索结果的最终得分很重要。因此,如果我在一个只有一行的字段中匹配,那么它将比单个匹配得分高得多......例如,一个包含5页文本的文档。 有没有办法覆盖这种行为,或者可靠地反复提升结果以克服这种行为?

1 个答案:

答案 0 :(得分:3)

我猜你的意思是在计算得分时会考虑匹配字段的长度。如果您只想禁用此行为,则可以在编制索引时省略规范。这样你也会失去索引时间,但我猜你还没有使用它,即使你需要提升你也应该使用查询时间提升,方式更灵活。

您必须更新字段的映射,如下所示:

"field_name" : {
    "type" : "string",
     "omit_norms" : true
}

如果要覆盖所有字符串字段的默认行为,可以使用如下动态模板:

{
    "type_name" : {
        "dynamic_templates" : [
            {
                "omit_norms_template" : {
                    "match_mapping_type" : "string",
                    "mapping" : {
                        "omit_norms" : true
                    }
                }
            }
        ]
    }
}