簡體   English   中英

Elasticsearch嵌套查詢聚合

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM