1

私はこのようになりますインデックス、URLを、持っている:弾性検索:特定のURLパスでフィルタリング&グループ化するにはどうすればよいですか?

path: { 
    type: "string" 
}, 
@timestamp: { 
    type: "date", 
    format: "strict_date_optional_time||epoch_millis" 
}, 

パスは例えば、URLからPATHセクションを格納します:

https://facebook.com/profile/photos/album/1 

として格納されます

/profile/photos/album/1 

は、私はパスのすべての種類を格納していますので、より多くのようがあるかもしれない:

/profile/photos/album/1 
/profile/photos/album/2 
/profile/photos/album/2 
/profile/photos/album/2 
/profile/friends/1 
/profile/friends/2 
/newsfeed/me/ 
/newsfeed/me/ 
/newsfeed/friendName/ 

各パスに固有のページビューの数を調べようとしています。私はこれをどうやってやるべきか分からないので、正規表現を使うべきだろうか?

私はそれが(擬似コード)のようなものを見てね想像:

{ 
    "query": { 
     "regexp": { 
      "path": "" 
     }, 
     "unique": true 
    } 
} 

答えて

0

は、だから私はこれを行う方法を見つけました。私はaggsメソッド&を使用して正規表現を使用して結果を除外しています!

{ 
    "size": 0, // Don't return any _source results 
    "aggs": { 
    "path": { // This is the field that I'm 
     "terms": { 
     "field": "path", 
     "exclude": ".*(media|cache).*" // Add in the values here seper 
     } 
    } 
    } 
} 

内訳:

  1. パスアグリゲーションの
    • ただ、ラベル
  2. フィールド(パス)
    • 私は次のことを実行したい場正規表現
  3. は、パスがそれでメディアやキャッシュ

は私がElasticsearch: Run aggregation on field & filter out specific values using a regexp not matching values

からこれを発見した書類を返さないでください
  • を除外します
関連する問題