0
排除零值,我就是用这个查询,以获得最显著值:从ElasticSearch聚集
keywords = Answer.search(
:size => 5,
:query => {
:match => {
:question_id => 32481
}
},
:aggregations => {
:keywords => {
:significant_terms => {
:field => 'text'
}
}
}
)
领域是:文本,但它具有零值,所以答案永远是:
2.1.2 :135 > keywords.map(&:text)
=> [nil, nil, nil, nil, nil]
我试图添加一个过滤器,为the documentation建议,但它给了我一个解析错误:
keywords = Answer.search(
:size => 5,
:query => {
:match => {
:question_id => 32481
},
:filtered => {
:filter => {
:exists => { :field => 'text' }
}
}
},
:aggregations => {
:keywords => {
:significant_terms => {
:field => 'text'
}
}
}
)
我试过很多组合,没有成功。我怎样才能得到有效的文本答案?
尝试keywords.map(&:text).compact – 2014-10-06 13:52:36
我相信这不是解决方案。我得到了后者查询的elasticsearch的解析错误。第一个结果的紧凑方法只会返回一个空数组。 – 2014-10-06 13:54:57