2017-03-14 71 views
0

我有一个字段(propertyScore),它位于'review'对象内部的属性模型中。 我想用elasticsearch排序在这个领域排序。在嵌套对象上排序elasticsearch 5.2,错误:不是嵌套类型

这里是我的财产的例子:

{ 
"bedrooms": 2, 
"bathrooms": 2, 
"review": { 
      "propertyScore": 20 
     }, 
} 

在我的卧室场我执行下面的搜索查询:

sort: 
    [ '_score', 
    { bathrooms: { order: 'desc'} } 
] 

我怎么会那么排序就在我的评论得分字段。

我已经做了目前:

sort: 
     [ '_score', 
     { propertyScore: { order: 'desc', 
          nested_path: 'review'} 
     } 
     ] 

,并收到错误消息:

[query_parsing_exception] [nested] nested object under path [review] is not of nested type 

回答

0

我相信有您的映射问题。 “review”属性不是嵌套类型。因此,当使用与“review”相等的“nested_pa​​th”进行排序时,您会收到此错误。

您可以更改此映射,也可以更改执行排序的方式。只是试试这个:

sort: 
[ '_score', 
    { "review.propertyScore": { order: 'desc'} } 
] 
+0

伟大的工作,谢谢! –