首页 > 解决方案 > 弹性搜索索引数据中的多个字段

问题描述

我在节点 js 中使用 monogsastic npm 进行弹性搜索。我想查询多个字段。我要使用的条件是这个字段或那个字段。

我成功地使用一个字段进行搜索

var userfollowers =['5c5bbc7c18425d3f440e82aa','5c5f7ef118425d3f440f5cec','5c6c22820c384e6f2cd65f31','5ca11df654572d6b67998591','5c9e296054572d6b6798f2bf','5ca2f87ee9131074001491b5','5ca1d1d554572d6b6799cb51'];
var topics = [ 'adaptive signal processing','amplifiers','biomedical equipment','business','chemical technology','imaging'];

    Paperupload.esSearch({ 
            from:from,
                    size:size,
                            query:{
                                    "terms" : {
                                    "userId._id": userfollowers
                                    }

                            },
                            sort:{
                                "createdAt":{
                                    "order" : "desc"
                                }
                            }   
                },
                function(err, results) {
                    console.log("err",err)
                    console.log("result:",results)
                }

还需要在索引数据的内容字段中搜索主题。要应用的条件是 OR(userFollowers 或内容中的主题)

标签: node.jsexpresselasticsearchnpm

解决方案


Paperupload.esSearch({      
                    query:{
                            bool:{
                                        "must": {
                                            "bool" : { "should": [{terms : {"userId._id": followersDetail}},{terms : {"topics.topic_name": topi}}] }
                                        }
                             }
                            },          
                            sort:{
                                "createdAt":{
                                    "order" : "desc"
                                }
                            }   
                    },
                    {
                        from:from,
                        size:size,
                    },
                    function(err, results) {

                    })

推荐阅读