小企業(yè)官方網(wǎng)站制作湖南長沙seo教育
?響應(yīng)參數(shù)講解:
key (字符串)由 categorization_analyzer 提取的標(biāo)記組成,這些標(biāo)記是類別中所有輸入字段值的共同部分。 doc_count (整數(shù))與類別匹配的文檔數(shù)量。 max_matching_length (整數(shù))從較短消息中生成的類別也可能與從較長消息中生成的類別匹配。 max_matching_length 表示應(yīng)被視為屬于該類別的消息的最大長度。在搜索屬于該類別的消息時,任何長度超過 max_matching_length 的消息都應(yīng)被排除。使用此字段可以防止對短消息類別的搜索匹配到更長的消息。
regex (字符串)一個正則表達(dá)式,它將匹配類別中包含的所有輸入字段值。在類別中包含的值的順序不同時, regex 可能不會包含 key 中的每個術(shù)語。然而,在簡單情況下, regex 將是按順序連接的術(shù)語組成的正則表達(dá)式,允許在它們之間有任意部分。不建議將 regex 作為搜索原始被分類文檔的主要機制,因為正則表達(dá)式搜索非常慢。相反,應(yīng)該使用 key 字段中的術(shù)語來搜索匹配的文檔,因為術(shù)語搜索可以利用倒排索引,因此速度要快得多。然而,在某些情況下,使用 regex 字段來測試未被索引的少量消息是否屬于該類別,或者確認(rèn) key 中的術(shù)語在所有匹配文檔中按正確順序出現(xiàn),可能是有用的。
總結(jié):
重新分析大型結(jié)果集將需要大量的時間和內(nèi)存。應(yīng)將此聚合與異步搜索(Async search)結(jié)合使用。此外,你還可以考慮將該聚合作為采樣器(sampler)或多樣化采樣器(diversified sampler)聚合的子聚合使用。這通??梢蕴岣咚俣群蛢?nèi)存使用效率。
POST log-messages/_search
{
? "aggs": {
? ? "categories": {
? ? ? "categorize_text": {
? ? ? ? "field": "message"
? ? ? }
? ? }
? }
}
輸出
{
? "aggregations": {
? ? "categories": {
? ? ? "buckets": [
? ? ? ? {
? ? ? ? ? "doc_count": 3,
? ? ? ? ? "key": "Node shutting down",
? ? ? ? ? "regex": ".*?Node.+?shutting.+?down.*?",
? ? ? ? ? "max_matching_length": 49
? ? ? ? },
? ? ? ? {
? ? ? ? ? "doc_count": 1,
? ? ? ? ? "key": "Node starting up",
? ? ? ? ? "regex": ".*?Node.+?starting.+?up.*?",
? ? ? ? ? "max_matching_length": 47
? ? ? ? }
? ? ? ]
? ? }
? }
}
使用 categorization_analyzer 的示例配置:
{
? "aggs": {
? ? "categories": {
? ? ? "categorize_text": {
? ? ? ? "field": "message",
? ? ? ? "categorization_analyzer": {
? ? ? ? ? "char_filter": ["html_strip"],
? ? ? ? ? "tokenizer": "ml_standard",
? ? ? ? ? "filter": ["lowercase", "stop"]
? ? ? ? }
? ? ? }
? ? }
? }
}
使用 ? categorization_filters ? 的示例配置:
{
? "aggs": {
? ? "categories": {
? ? ? "categorize_text": {
? ? ? ? "field": "message",
? ? ? ? "categorization_filters": [
? ? ? ? ? "\\w+\\_\\d{3}", // 過濾掉類似 "foo_123" 的模式
? ? ? ? ? "ERROR:.*" // 過濾掉以 "ERROR:" 開頭的日志
? ? ? ? ]
? ? ? }
? ? }
? }
}
?