为ElasticSearch查询计算一个可能的“ max_score”

时间:2019-06-13 11:42:06

标签: elasticsearch elasticsearch-painless

我对ElasticSearch生态系统还很陌生,我需要社区的帮助。

我需要知道我从全文搜索中获得的结果是否可以被认为是好的。我看到_score取决于发送的查询,不能用于确定我们的结果是否相关。 在尝试找到解决方法后,我有了一个主意,但它似乎不起作用,我也找不到原因。

我尝试执行一个简单的脚本来计算未伪编成这样的“伪”文档的_score:

{
    "script":
    {
        "source": "_score"
    },
    "context": "score",
    "context_setup":
    {
        "index": _my_index,
        "document":
        {
            "text": "the cat ate the dog"
        },
        "query":
        {
            "bool":
            {
                "should": [
                {
                    "term":
                    {
                        "text": "the"
                    }
                },
                {
                    "term":
                    {
                        "text": "cat"
                    }
                },
                {
                    "term":
                    {
                        "text": "ate"
                    }
                },
                {
                    "term":
                    {
                        "text": "the"
                    }
                },
                {
                    "term":
                    {
                        "text": "dog"
                    }
                }]
            }
        }
    }
}

我期望的是最高的“理论”分数。但是,我得到的分数甚至比不完全匹配的索引文档还要小。我以为是因为处理查询时使用的IDF不是我为所有索引文档计算的IDF,但我找不到原因...

非常抱歉,我的英语水平

0 个答案:

没有答案