【问题标题】:Get RANDOM ids with es query with node.js使用 node.js 使用 es 查询获取 RANDOM id
【发布时间】:2016-08-16 22:21:39
【问题描述】:

谁能帮帮我?我是 elasticSearch 和 node.js 的新手。

请求

app.get('/', function (req, res, next){
try {
    client.search({
        index: 'dbcatalogo',
        type: 'cars',
        size: 10,
        body: {
            query: {
                function_score:{
                    functions:[{
                        random_score:{
                            seed: 1
                        }
                    }]
                },
                match_all: {}
            },
            sort: {
                'AnoModelo': 'desc'
            }
        }
    }).then(function (json) {               
        res.json(json.hits);
    }, 
    function (err) {res.json(error.HandleError(err));});
}
catch (err) { res.json(error.HandleError(err)); }});

回复

[parse_exception] 无法解析搜索源。预期的字段名称,但得到 [START_OBJECT]

【问题讨论】:

    标签: node.js elasticsearch


    【解决方案1】:

    你快到了match_all 需要在function_score 的查询对象中,如下面的函数得分所示。

    示例:

    client.search({
        index: 'dbcatalogo',
        type: 'cars',
        size: 10,
        body: {
            query: {
                function_score:{
                    functions:[{
                        random_score:{
                            seed: 1
                        }
                    }],
                    query : {
                        match_all: {}
                }
            }
            },
            sort: {
                'AnoModelo': 'desc'
            }
        }
    }).then(function (json) {
        res.json(json.hits);
    }
    

    此外,如果您对score 以外的字段进行排序,则random_score 没有多大意义。

    【讨论】:

      猜你喜欢
      • 2016-12-10
      • 2020-04-04
      • 2019-01-10
      • 2016-06-15
      • 2022-01-08
      • 1970-01-01
      • 1970-01-01
      • 2011-09-06
      • 2018-01-27
      相关资源
      最近更新 更多