0
我在AWS上使用elasticsearch存儲來自Cloudfront的日誌。我創建了一個簡單的查詢,這將使我從過去的24小時中的所有條目,從新排序老:如何根據字段的內容排除elasticsearch的結果?
{
"from": 0,
"size": 1000,
"query": {
"bool": {
"must": [
{ "match": { "site_name": "some-site" } }
],
"filter": [
{
"range": {
"timestamp": {
"lt": "now",
"gte": "now-1d"
}
}
}
]
}
},
"sort": [
{ "timestamp": { "order": "desc" } }
]
}
現在,有一個一定的來源(基於用戶代理),爲此,我想排除結果。所以我的問題歸結爲:
如何從結果中篩選出某些字段包含某個字符串?或者:
query.filter.where('cs_user_agent').does.not.contain('Some string')
(這不是真正的代碼,很明顯)
我曾試圖讓Elasticsearch文檔的感覺,但我無法找到如何實現一個很好的例子。
我希望這是有道理的。提前致謝!
有沒有其他方式沒有使用通配符查詢?它似乎可以是緩慢的https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-wildcard-query.html –
你不是在用你的配對嗎? –
@SylvainAttoumani如果我嘗試你的建議,我會得到我不想看到的結果。不太清楚爲什麼。 – Sandyman