web-dev-qa-db-ja.com

エラスティック検索:インデックス付きデータを表示する方法

ElasticSearchとRailsで問題が発生しました。attr_protectedにより一部のデータが適切にインデックス付けされませんでした。 Elastic Searchはインデックス付きデータをどこに保存しますか?実際のインデックス付けされたデータが間違っているかどうかを確認すると便利です。

Tire.index('models').mappingを使用してマッピングをチェックしても解決しないため、フィールドがリストされます。

96
Robin

ElasticSearchクラスターを探索する最も簡単な方法は、おそらく elasticsearch-head を使用することです。

以下を実行してインストールできます。

cd elasticsearch/
./bin/plugin -install mobz/elasticsearch-head

次に(ローカルマシンでElasticSearchが既に実行されていると仮定して)、ブラウザーウィンドウを開いて以下を実行します。

http://localhost:9200/_plugin/head/

または、コマンドラインからcurlを使用することもできます。例:

インデックスのマッピングを確認します。

curl -XGET 'http://127.0.0.1:9200/my_index/_mapping?pretty=1' 

サンプルドキュメントを入手してください。

curl -XGET 'http://127.0.0.1:9200/my_index/_search?pretty=1' 

特定のフィールドに保存されている実際の用語を確認します(つまり、そのフィールドの分析方法)。

curl -XGET 'http://127.0.0.1:9200/my_index/_search?pretty=1'  -d '
 {
    "facets" : {
       "my_terms" : {
          "terms" : {
             "size" : 50,
             "field" : "foo"
          }
       }
    }
 }

詳細はこちら: http://www.elasticsearch.org/guide

更新: Marvel のセンスプラグイン

Elasticsearchのcurlスタイルのコマンドを記述する最も簡単な方法は、 Marvelのセンスプラグイン です。

ソースの強調表示、かなりインデント、オートコンプリートが付属しています。

注: Senseはもともとスタンドアロンchromeプラグインでしたが、現在はMarvelプロジェクトの一部です

165
DrTech

インデックス付きデータを表示する最も簡単な方法は、ブラウザで表示することです。 ダウンロードやインストールは不要です。

Elasticsearchホストはhttp://127.0.0.1:9200であると仮定します。

ステップ1

http://127.0.0.1:9200/_cat/indices?vに移動して、インデックスをリストします。次のようなものが表示されます。

enter image description here

ステップ2

目的のインデックスにアクセスしてみてください:http://127.0.0.1:9200/products_development_20160517164519304

出力は次のようになります。

enter image description here

aliasesに注意してください。これは、次のインデックスにもアクセスできることを意味します:http://127.0.0.1:9200/products_development

ステップ3

http://127.0.0.1:9200/products_development/_search?pretty=1に移動して、データを表示します。

enter image description here

31
Jan Klimo

ElasticSearchデータブラウザー

検索、チャート、ワンクリック設定...

10
Oleg

集約ソリューション

データをグループ化して問題を解決する-DrTechの回答では、これを管理する際にファセットを使用しましたが、 Elasticsearch 1.0リファレンスに従って非推奨になります。

Warning

Facets are deprecated and will be removed in a future release. You are encouraged to
migrate to aggregations instead.

ファセットは集約に置き換えられます- Elasticsearch Guideでアクセス可能な方法で紹介-例を理解できるようにします。

ショートソリューション

解決策は、集約がaggsの代わりにfacetsを必要とし、 制限を最大整数に設定する0のカウント - サンプルコードにはMarvelが必要です)を除いて同じです。プラグイン

# Basic aggregation
GET /houses/occupier/_search?search_type=count
{
    "aggs" : {
        "indexed_occupier_names" : {    <= Whatever you want this to be
            "terms" : {
              "field" : "first_name",    <= Name of the field you want to aggregate
              "size" : 0
            }
        }
    }
}

完全なソリューション

これをテストするためのセンスコードは次のとおりです-家のインデックス、占有タイプ、およびフィールドfirst_nameの例:

DELETE /houses

# Index example docs
POST /houses/occupier/_bulk
{ "index": {}}
{ "first_name": "john" }
{ "index": {}}
{ "first_name": "john" }
{ "index": {}}
{ "first_name": "mark" }


# Basic aggregation
GET /houses/occupier/_search?search_type=count
{
    "aggs" : {
        "indexed_occupier_names" : {
            "terms" : {
              "field" : "first_name",
              "size" : 0
            }
        }
    }
}

応答

関連する集約コードを示す応答。インデックスにJohnとMarkの2つのキーがある場合。

    ....
    "aggregations": {
      "indexed_occupier_names": {
         "buckets": [
            {
               "key": "john",     
               "doc_count": 2     <= 2 documents matching
            },                        
            {
               "key": "mark",
               "doc_count": 1     <= 1 document matching
            }
         ]
      }
   }
   ....
5
not a patch

ElasticSearchのデバッグに非常に役立つツールは、 ElasticHQ です。基本的に、それはいくつかのJavaScriptを備えたHTMLファイルです。 ES自体はもちろん、どこにでもインストールする必要はありません。ダウンロードしてintを解凍し、ブラウザでHTMLファイルを開きます。

ESのヘビーユーザーに最適なツールかどうかはわかりません。それでも、急いでエントリを見たい人には本当に実用的です。

4
brandizzi

@JanKlimoの例に従って、ターミナルで行う必要があるのは次のとおりです。

すべてのインデックスを表示するには:$ curl -XGET 'http://127.0.0.1:9200/_cat/indices?v'

インデックスのコンテンツを見るproducts_development_20160517164519304$ curl -XGET 'http://127.0.0.1:9200/products_development_20160517164519304/_search?pretty=1'

1
koolhead17

Google Chromeを使用している場合、Senseという名前のこの拡張機能を使用できます。Marvelを使用する場合は、このツールもツールです。

https://chrome.google.com/webstore/detail/sense-beta/lhjgkmllcaadmopgmanpapmpjgmfcfig

1
Sudhanshu Gaur

Kibanaも良い解決策です。 Elastic用のデータ視覚化プラットフォームです。インストールされている場合、デフォルトでポート5601で実行されます。

それが提供する多くのもののうち。デバッグを行える「開発ツール」があります。

たとえば、次のコマンドを使用して、利用可能なインデックスを確認できます。

GET /_cat/indices
0
gd vigneshwar