108

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

でマッピングを確認しTire.index('models').mappingても役に立たない場合は、フィールドが一覧表示されます。

4

8 に答える 8

175

おそらく、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の Sense プラグイン

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

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

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

于 2012-01-22T11:15:42.760 に答える
52

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

あなたのelasticsearchホストがhttp://127.0.0.1:9200.

ステップ1

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

ここに画像の説明を入力

ステップ2

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

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

ここに画像の説明を入力

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

ステップ 3

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

ここに画像の説明を入力

于 2016-05-17T10:41:26.660 に答える
11

エラスティックサーチ データ ブラウザ

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

于 2012-12-07T11:10:01.537 に答える
5

集計ソリューション

データをグループ化して問題を解決する - 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 ガイドでアクセスしやすい方法で紹介されています - これは例を意味にロードします. .

短い解決策

解決策は同じですが、アグリゲーションではaggs代わりに0facetsカウントが必要であり、制限を最大整数に設定します -コード例では 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
            }
        }
    }
}

フルソリューション

これをテストするための Sense コードは次のとおりです - 占有タイプとフィールド 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
            }
        }
    }
}

応答

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

    ....
    "aggregations": {
      "indexed_occupier_names": {
         "buckets": [
            {
               "key": "john",     
               "doc_count": 2     <= 2 documents matching
            },                        
            {
               "key": "mark",
               "doc_count": 1     <= 1 document matching
            }
         ]
      }
   }
   ....
于 2014-07-06T16:36:03.517 に答える
4

ElasticSearch のデバッグに大いに役立つツールはElasticHQです。基本的に、JavaScript を含む HTML ファイルです。ES 自体は言うまでもなく、どこにでもインストールする必要はありません。ダウンロードして int を解凍し、ブラウザーで HTML ファイルを開くだけです。

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

于 2016-03-15T19:11:17.513 に答える
1

@JanKlimo の例に従って、端末で行う必要があるのは次のとおりです。

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

Index の内容を表示するにはproducts_development_20160517164519304: $ curl -XGET 'http://127.0.0.1:9200/products_development_20160517164519304/_search?pretty=1'

于 2016-09-09T22:39:17.067 に答える
1

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

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

于 2016-07-30T13:51:46.407 に答える