Теперь, когда я понял, не могли бы вы посоветовать мне улучшить производительность?Агрегаты вложенных запросов Elasticsearch
Я пытаюсь реализовать фильтр агрегатора в моем приложении 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"}
}
}
Это один работает для меня. Есть ли лучший способ (perf. Wise) выполнить такой запрос?
{"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}}}}
Предложение, это помогло бы чрезвычайно если вы заявили в словах, что ваш запрос/агрегация должен делать вместо того, чтобы заставить читателя вывести его из ваших образцов кода –
Что мне нужно фильтровать документ с определенными условиями , фильтровать их также вложенным условием документа. Мне не нужен ни ранжирование, ни подсчет/сортировка. Мне просто нужно агрегирование такого запроса под crawl_page_id. – adamliesko