python - ElasticSearch 匹配查询得分

标签 python elasticsearch

使用标准分析器我有以下查询

{
        "query": {
            "match": {
                "title": {
                    "query": "iphone 6",
                    "operator": "and"
                }
            }
        },
        "track_scores": True,
        "sort": [
            {
                "_score": {
                    "order": "desc"
                }
            }
        ],
        "size": 10
    } 

这给了我以下结果 'title' => 'score'

iPhone 6 Plus 64GB  => 14.105422
iPhone 6 Plus 128GB => 13.942985
iPhone 6 16GB       => 13.678013
iPhone 6 64GB       => 13.473294
iPhone 6 Plus 16GB  => 12.974828
iPhone 6 128GB      => 12.974828

为什么 iPhone 6 PlusiPhone 6 更高?我应该怎样做才能获得其中一台 iPhone 6 作为第一台?

最佳答案

使用 groovy 让它工作

{
        "query": {
            "function_score": {
                "score_mode": "sum",
                "boost_mode": "replace",
                "query": {
                    "match": {
                        "title": {
                            "query":  "iphone 6",
                            "operator": "and"
                        }
                    }
                },

                "functions": [{
                    "script_score": {
                        "script": "def score = 1000 - _source.title.size(); score",
                        "lang": "groovy"
                    }
                }]
            }
        },
        "track_scores": True,
        "sort": [
            {
                "_score": {
                    "order": "desc"
                }
            }
        ],
        "size": 1
    }

关于python - ElasticSearch 匹配查询得分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31562351/

相关文章:

python - 迭代多个全局列表和一个计数器 : for/while

c++ - 在 C++ 中使用 Python 3.3 'python33_d.lib' 未找到

python - 如何避免使用 "SELECT * FROM {table_name}"进行 SQL 注入(inject)?

python - 无法在 Windows 10 上将目录添加到路径

Elasticsearch:产品变体价格建模和查询问题

elasticsearch - 理解elasticsearch查询解析异常,拯救海牛

python - 为什么可以调用类的实例?

Elasticsearch - 根据字段的特定值增强文档

elasticsearch - Elasticsearch 中的嵌套 bool 查询

elasticsearch - 使用 haystack 忽略 Elasticsearch 中的重音