Kibanaでtextフィールドを使って可視化したい

解決したいこと


文字列をAnalyzed済みなキーワードでKibanaのVertical Barで添付画像のようなグラフを作りたいと思っています。
しかし、今触っているKibanaのVisualizeではkeyword型しかデータ選択ができなくて困っています。
まだkeyword型がなかったKibana 4系まではAnalyze済みなデータをこのリンクのように表示できていたと記憶しているのですが、何か手順が足りないでしょうか。

※Kibana上のIndex Patternsではデフォルトのtext型とkeyword型が登録されていることが確認できています。
また、DiscoverのテキストボックスでAnalyze済のキーワード検索ができているため、登録自体は問題なくできている認識です。

Visualize イメージ

52

環境情報


  • Elasticsearch ver: 5.6.3
  • Kibana ver: 5.6.3
  • Server Arch: x86_64

設定&投入データ


  • Elasticsearch

    {
      "date": "201711171920",
      "sentence": "this is a test this is a hoge"
    }
    
  • Kibana

    • metrics
      • Y-Azis
        • Aggregation: Unique Count
        • Field: sentence.keyword ※ここにkeywordではなく、textの「sentence」が選択出来れば表現できるかと思っています。
    • buckets
      • X-Axis
        • Aggregateion: Terms
        • Field: sentence.keyword ※ここにkeywordではなく、textの「sentence」が選択出来れば表現できるかと思っています。

こちらの内容がやりたい内容と似ているように思います。

Mappingをこのようにしたところ、sentenceがKibanaで選択できるようになりました。

PUT forum1117
{
  "mappings": {
    "doc": {
      "properties": {
        "sentence": {
            "type": "text",
            "fielddata": true, 
            "fields": {
              "keyword": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          }
      }
    }
  }
}

ただFieldに指定できたはいいものの、見え方は期待されている図と違ったので付記しておきます。

試した環境
ES, Kibanaともに5.6.3, Elasitc公式のDockerイメージを使用

1 Like

ありがとうございます!
手元の環境でも再現できました。
Unique Countでいけるかと思いましたが、一つのカラムに入っているユニークなValueをカウントしてしまうので5になってしまうっぽいのですね :sweat_smile:
かといってY-AxisをCount、X-AxisをSentenceにするとすべてが1つとカウントされてしまう・・・
やりたいことを実現するにはデータのコミット粒度を細かくして、
1つの文の中に単語が重複することを少しでも避けてY-AxisでCountするしかないのかもしれないですね :thinking:

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.