的不同的價值觀,我解析URL,例如:聚集在參數
example.org/index.html?parameter_1=value_1¶meter_2=value_2
example.org/index.html?parameter_1=value_1¶meter_2=value_3
example.org/index.html?parameter_1=value_4¶meter_2=value_3
example.org/index.html?parameter_1=value_5¶meter_2=value_4
有通過網址多了很多參數,它們並不總是相同的,它只是簡化。
我想獲得parameter_2的不同值時,parameter_1等於_1和我有多少命中爲每個值(在這種情況下,「VALUE_2」/1和「VALUE_3」/1)。
這裏是我的映射:
"my_index" : {
"mappings" : {
"urls" : {
...
"page" : { "type" : "string", "index" : "not_analyzed" },
"parameters" : {
"type" : "nested",
"properties" : {
"name" : { "type" : "string", "index" : "not_analyzed" },
"value" : { "type" : "string", "index" : "not_analyzed" }
}
}
}
}
}
}
這給我的條目是這樣的:
{
"page": "example.org/index.html",
"parameters": [
{ "name": "parameter_1", "value": "value_1" },
{ "name": "parameter_2", "value": "value_2" }
]
}
如果我想這樣做,但在頁面上,我可以做這樣的過濾聚集:
{
"size": 0,
"aggs": {
"sitecodes": {
"filter": {
"nested": {
"path": "parameters",
"query": {
"bool": {
"must": [
{
"term": {
"parameters.name": "parameter_1"
}
},
{
"term": {
"parameters.value": "value_1"
}
}
]
}
}
}
},
"aggs": {
"pages": {
"terms": {
"field": "page"
}
}
}
}
}
}
但我無法找到一種方法來做相同的參數_2的值。
作爲一種變通方法,我可以複製我的映射信息,纔能有這樣的條目:
{
"page": "example.org/index.html",
"parameter_1": "value_1",
"parameters": [
{ "name": "parameter_1", "value": "value_1" },
{ "name": "parameter_2", "value": "value_2" }
]
}
但我相信有一個更好的方式來做到這一點,即使我還沒有找到它然而。
有什麼想法?
如果裏面你必須使用一個術語查詢或多個匹配查詢?接受多個條款的條款? –