Kibana querying for string length

后端 未结 3 1630
南旧
南旧 2021-01-14 14:51

Is there a way to query for a value of a certain length in Kibana?

For example, given the following two KV pairs:

key: \"some\"
key: \"something\"
         


        
3条回答
  •  耶瑟儿~
    2021-01-14 15:28

    If you can reindex your index or you are just creating it, you can create a custom tokenizer as in the following:

    PUT test_index
    {
      "settings": {
        "analysis": {
          "analyzer": {
            "character_analyzer": {
              "type": "custom",
              "tokenizer": "character_tokenizer"
            }
          },
          "tokenizer": {
            "character_tokenizer": {
              "type": "nGram",
              "min_gram": 1,
              "max_gram": 1
            }
          }
        }
      }, 
      "mappings": {
        "person": {
          "properties": {
            "name": { 
              "type": "text",
              "fields": {
                "keyword": { 
                  "type": "keyword"
                },
                "words_count": { 
                  "type": "token_count",
                  "analyzer": "standard"
                },
                "length": { 
                  "type": "token_count",
                  "analyzer": "character_analyzer"
                }
              }
            }
          }
        }
      }
    }
    
    PUT test_index/person/1
    {
      "name": "John Smith"
    }
    
    PUT test_index/person/2
    {
      "name": "Rachel Alice Williams"
    }
    
    GET test_index/person/_search
    {
      "query": {
        "term": {
          "name.length": 10
        }
      }
    }
    

提交回复
热议问题