弹性搜索中基于条件的查询

时间:2017-04-12 07:55:44

标签: elasticsearch

是否可以根据弹性搜索中的条件构建查询?

E.g

{
 "match": {
      "ticket_group.marketplaceticket_source_id": (q.preferredProvider!=0) ? q.preferredProvider:""                                        
 }    
}

在上面的系数中,如果" q.preferredProvider"是0然后我想省略" ticket_group.marketplaceticket_source_id"的条件或者你可以说" ticket_group.marketplaceticket_source_id"可以采取任何其他价值" ticket_group.marketplaceticket_source_id"应与" q.preferredProvider"匹配

如何在弹性搜索中编写它?

1 个答案:

答案 0 :(得分:0)

我认为这将有助于你: -

同时查看这些链接link link2 link3

{
    "query": {
        "bool": {
            "must_not": {
                "match": {
                    "q.preferredProvider": 0
                }
            },
            "must": {
                "match": {
                    "script": {
                        "script": {
                            "doc['ticket_group.marketplaceticket_source_id'].value ==  doc['q.preferredProvider'].value"
                        }
                    }
                }
            }
        }
    }
}