在 Mapping 里面,将 dynamic 参数设置成 strict 可以拒绝索引包含未知字段的文档。 此条 Tips 由 medcl 贡献。

elasticsearch使用bool多层嵌套

Elasticsearch | 作者 w565039616 | 发布于2018年09月29日 | 阅读数:2223

如果我想实现这个功能怎么做 (txt:"*游戏*"||(txt:"腾讯"&&txt:"网易"))&&(txt:"吃鸡"||(txt:"天龙"&&txt:"梦幻"))and not(txt:"易水寒"||(txt:"时光"&&txt:“石器”)) 上述括号中最外层括号关系是可以无限添加或关系的,内层括号可以无限添加与关系的,上述功能要实现dsl怎么写,代码怎么实现那?
已邀请:

rochy - rochy_he

赞同来自:

就是多个 boolQuery 嵌套,单个 boolQuery 里面可以写一个括号里面的逻辑,
例如:(txt:"*游戏*"||(txt:"腾讯"&&txt:"网易")) 的 DSL 语句如下(具体的匹配逻辑需要你自己写):
"bool" : {
"should" : {
//txt:"*游戏*"
},
"should": {
"bool" : {
"must" : {
//txt:"腾讯"
},
"must" : {
//txt:"网易"
},
}
}
}

要回复问题请先登录注册