[英]Elasticsearch nested query aggregations
现在我做对了,您能建议我改善性能吗?
我正在尝试在我的Ruby on Rails应用程序中实现聚合过滤器(无关紧要)。 我正在使用以下条件查询elasticsearch。
我需要的是使用某些条件过滤文档,也通过嵌套文档条件过滤它们。 我不需要任何排名或评分/排序。 我只需要在crawl_page_id
下聚合这样的查询。
任何帮助都非常感谢。
这是索引的映射:
{:created_at=>{:type=>"date"},
:updated_at=>{:type=>"date"},
:domain_id=>{:type=>"integer"},
:users=>{:type=>"integer"},
:new_users=>{:type=>"integer"},
:sessions=>{:type=>"integer"},
:pageviews=>{:type=>"integer"},
:session_duration=>{:type=>"integer"},
:bounces=>{:type=>"integer"},
:exits=>{:type=>"integer"},
:conversion_rate=>{:type=>"integer"},
:goals=>{:type=>"integer"},
:assists=>{:type=>"integer"},
:unique_referrers=>{:type=>"integer"},
:by_traffic_source=>{:type=>"nested",
:properties=>{
:source=>{:type=>"string", :index=>:not_analyzed},
:goals=>{:type=>"integer"},
:pageviews=>{:type=>"integer"},
:assists=>{:type=>"integer"}}},
:by_goals=>{:type=>"nested",
:properties=>{
:id=>{:type=>"integer"},
:goals=>{:type=>"integer"},
:assists=>{:type=>"integer"}}},
:url=>{:type=>"string"},
:timestamp=>{:type=>"date"},
:rdn_url=>{:type=>"string"},
:scheme=>{:type=>"string"},
:host=>{:type=>"string"},
:port=>{:type=>"integer"},
:path=>{:type=>"string"},
:query_string=>{:type=>"string"},
:crawl_page_id=>{:type=>"string"}
}
}
这对我有用。 有没有更好的方法(明智)执行这样的查询?
{"query"=>
{"filtered"=>
{"query"=>{{"match_all"=>{}},
"filter"=>{
"bool"=>{
"must"=>[
{"term"=>{"domain_id"=>7721}},
{"range"=>{"goals"=>{"gte"=>0}}}
"nested"=>{"path"=>"by_traffic_source",
"filter"=>{
{"term"=>{"by_traffic_source.source"=>"organic"}}
}
}
}
]},
}
}
},
"aggs"=>{"crawl_pages"=>{"terms"=>{"field"=>"crawl_page_id", "size"=>200}}}}
没关系,您可能没有比这更好的了。
{"query"=>
{"filtered"=>
{"query"=>{{"match_all"=>{}},
"filter"=>{
"bool"=>{
"must"=>[
{"term"=>{"domain_id"=>7721}},
{"range"=>{"goals"=>{"gte"=>0}}}
"nested"=>{"path"=>"by_traffic_source",
"filter"=>{
{"term"=>{"by_traffic_source.source"=>"organic"}}
}
}
}
]},
}
}
},
"aggs"=>{"crawl_pages"=>{"terms"=>{"field"=>"crawl_page_id", "size"=>200}}}}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.