0

Elasticsearch でインデックス myindex を作成し、いくつかのドキュメントをロードしました。私が訪問したとき:

localhost:9200/myindex/mytype/1023

特定のインデックスに、マッピング用の次のメタデータがあることに気付きました。

mappings: {
  mappinggroupname: {
    properties: {
      Aproperty: {
        type: string
      }
      Bproperty: {
        type: string
      }
    }
  }
}

すべてのドキュメントをリロード/再インデックス化することなく、「store:yes」と index:「analyzed」を追加する方法はありますか?

単一のドキュメントを表示したい場合は注意してください...

つまり、localhost:9200/myindex/mytype/1023

_source フィールドにそのドキュメントのすべてのフィールドが含まれていることがわかります。head プラグインの「ブラウザ」セクションに移動すると、すべての列が正しく、フィールド名に対応しているように見えます。では、なぜ「保存」がメタデータに表示されないのでしょうか? それらに対して _search を実行することもできます。

"stored":"true" と、上記の方法ですべてのドキュメントにインデックスを付けた後、すべてのフィールドと値を確認できるという事実の違いは何ですか?

4

1 に答える 1

0

いいえ、まさか!これが、基礎となる lucene でドキュメントがインデックス化された方法です。それを変更する唯一の方法は、すべてのインデックスを再作成することです!

これらすべてのフィールドが表示_sourceされるのは、デフォルトで Elasticsearch によって保存されている lucene の特別なフィールドのコンテンツが表示されるためです。すべてのフィールドを個別に保存しているわけではありませんが、_sourceドキュメント全体を含む 1 つのフィールドで最初にインデックスを作成したソース ドキュメントがあります。

通常、_sourceフィールドはそれだけで十分です。通常、すべてのフィールドを保存済みとして構成する必要はありません。

また、デフォルトは"index":"analyzed"、すべてのstringフィールドで指定されていない場合です。つまり、これらのフィールドは、マッピングで指定されていない場合、標準のアナライザーを使用してインデックスが付けられ、分析されます。したがって、マッピングからわかる限り、これらの 2 つのフィールドはインデックス化されているため、検索可能です。

于 2013-05-13T17:02:30.690 に答える