我刚刚升级到Elastic Search 1.5.0,到目前为止,我无法使inner_hits与嵌套过滤器一起工作,尽管它可以与嵌套查询一起工作。
假设我想检索电影对象中的内部嵌套对象演员。
当我运行以下嵌套查询时:
语法 1
GET my_index/movie/_search
{
"query": {
"filtered": {
"query": {"match_all": {}},
"filter": {
"nested": {
"path": "actors",
"query": {
"match": {
"actors.id": 12345
}
},
"inner_hits" : {}
}
}
}
}
}
=
但是当我尝试使用嵌套过滤器进行等效查询时:
语法 2
GET my_index/movie/_search
{
"query": {
"filtered": {
"query": {"match_all": {}},
"filter": {
"nested": {
"path": "actors",
"filter": {
"term": {
"actors.id": 12345
}
},
"inner_hits" : {}
}
}
}
}
}
=
QueryParsingException[[my_index][nested]需要“查询”或“过滤器”字段]
(这最后一个查询工作正常,当我删除inner_hits-除了当然,我没有得到内部命中…)
我使用的语法是否有问题,或者inner_hits还没有用嵌套过滤器实现?
先谢谢你
编辑2015年3月30日
它可以使用@mdewit提供的语法(谢谢!)
语法3
GET my_index/movie/_search
{
"query": {
"nested": {
"path": "actors",
"query": {
"filtered": {
"filter": {
"term": {"actors.id": 12345}
}
}
},
"inner_hits" : {}
}
}
}
即使此语法与嵌套筛选器文档不匹配
=
编辑04-22-2015:修复了ES 1.5.1中的错误,请参阅下面的评论
弹性搜索 1.5.1 中修复的错误,如此处所述
所以这种语法行得通(而且行得通)
GET my_index/movie/_search
{
"query": {
"filtered": {
"query": {"match_all": {}},
"filter": {
"nested": {
"path": "actors",
"filter": {
"term": {
"actors.id": 12345
}
},
"inner_hits" : {}
}
}
}
}
}
谢谢你们!
以下方法似乎行得通:
GET my_index/movie/_search
{
"query": {
"nested": {
"path": "actors",
"query": {
"filtered": {
"filter": {
"term": {"actors.id": 12345}
}
}
},
"inner_hits" : {}
}
}
}'
问题内容: 我刚刚升级到Elastic Search 1.5.0,到目前为止,尽管嵌套查询可以正常工作,但我无法使inner_hits与嵌套过滤器一起使用。 比方说,我要检索的内部嵌套对象 演员 一中 的电影 对象。 当我运行以下 嵌套查询时 : 语法1 =>我得到了这里记录的inner_hits ,这很好。 但是当我尝试使用 嵌套过滤器 进行等效查询时: 语法2 =>我得到以下解析错误 Quer
如何使用java8流和过滤器过滤嵌套循环? 假设我有一个汽车列表(
你知道我做错了什么吗?下面是我的ORM映射:
我有两个简单的POJOs: 然后我生成一些数据,我为父母添加100个孩子: 我的目标是移除所有10岁以下的儿童: 最后,我列出了十岁以上的孩子。但是我不想写一个单独的方法。 如何得到所有的父母与名单上的孩子十岁以上只使用单一流?
问题内容: Go支持在函数内部嵌套结构,但除了lambda之外没有嵌套函数,这是否意味着无法在函数内部定义嵌套类? 因此,类在函数内部被削弱感到有点奇怪。 有什么提示吗? 问题答案: 实际上,无论您要声明 带有 接收器还是 不 带有接收器的函数都没有关系:不允许在Go中嵌套函数。 尽管您可以使用函数文字来实现以下目的: 在这里,我们创建了一个具有函数类型的变量,并将其分配给另一个函数。调用“外部”
问题内容: 我有这样的角度嵌套对象。有没有办法为嵌套属性过滤它 我只显示父元素,但想按两个元素进行过滤,例如: 问题答案: 是的,如果我正确理解您的示例,则可以。 根据集合的大小,计算迭代所用的集合可能会更好,这样过滤器就不会随着模型的更改而不断地进行操作。 http://jsfiddle.net/suCWn/ 基本上,如果我理解正确,您会执行以下操作: