2016-04-28 32 views
1

私が実行しようとしました:Elasticsearchでは、自動マッピングのインデックスを持つ方法とすべてのフィールドが分​​析されませんか?

PUT /index_name/ 

{ "index" : { 
     "analysis" : { 
      "analyzer" :"not_analyzed"    
     } 
    } 
} 

が、私はそれが正しい方法であるかわからない...

編集:

私は答えから両方の方法を適用します。しかし、私はそれをテストする方法がありません。実際にはそうである場合

GET /index_name/_mapping 
... 
    "metaData_requestHeaders_accept-language": { 
         "type": "string" 
        }, 
        "metaData_requestHeaders_akamai-origin-hop": { 
         "type": "string" 
        }, 
        "metaData_requestHeaders_alexatoolbar-alx_ns_ph": { 
         "type": "string" 
        }, 
        "metaData_requestHeaders_authorization": { 
         "type": "string" 
        }, 
        "metaData_requestHeaders_c": { 
         "type": "string" 
        }, 
        "metaData_requestHeaders_cache-control": { 
         "type": "string" 
        }, 
        "metaData_requestHeaders_ckiooe": { 
         "type": "string" 
        }, 
... 

ご覧のとおり、自動マッピングではどのアナライザが使用されているかわかりません。だから私はこれが実際に働いていることをテストする方法がありません。何か案は?あなたが表示されるはずテンプレート上にこのような何か適用後

PUT my_index 
{ 
"mappings": { 
    "my_type": { 
    "dynamic_templates": [ 
     { 
      "strings": { 
       "match_mapping_type": "string", 
       "mapping": { 
       "type": "string", 
       "index": "not_analyzed" 
       } 
      } 
      } 
     ] 
    } 
    } 
    } 

::のような

+0

ことを確認します。http://stackoverflow.com/questions/27570365/disabling-field-analyzing-by-default-in-elastic-searchは – alpert

答えて

1

使用Dynamic Templatesマッピング以上

GET /my_index/_mapping 

{ 
"my_index": { 
    "mappings": { 
    "my_type": { 
     "dynamic_templates": [ 
      { 
       "strings": { 
       "mapping": { 
        "index": "not_analyzed", 
        "type": "string" 
       }, 
       "match_mapping_type": "string" 
       } 
      } 
     ], 
     "properties": {} 
     } 
    } 
    } 
} 

は、すべての文字列がデフォルトでnot_analyzedであろうことを示しています。

+0

私を確認してくださいを編集 – gotch4

+0

私の答えで編集を参照してください。一つの質問があります。あなたのインデックスには 'metaData_requestHeaders_accept-language 'のような文字列フィールドがすでに含まれていますか? – Richa

+0

これでうまくいくようです – gotch4

0

あなたが探しているのはElasticsearch Templatesなので、マッピングを動的に作成することができます。

あなたはこのような何かしたい:

PUT index_name 
{ 
    "mappings": { 
    "type_name": { 
     "dynamic_templates": [ 
     { 
      "strings": { 
      "match_mapping_type": "string", 
      "mapping": { 
       "type": "string", 
       "fields": { 
       "raw": { 
        "type": "string", 
        "index": "not_analyzed" 
       } 
       } 
      } 
      } 
     } 
     ] 
    } 
    } 
} 
+0

私の編集を確認してください – gotch4

+0

マッピングは' : "not_analyzed" 'プロパティ?ダイナミックテンプレートを作成した後、インデックスを再作成しましたか?そうでない場合は、追加する可能性のある新しいフィールドについてのみマッピングが変更され、残りのフィールドは同じままになります。テストする方法としては、常に「用語集合」を適用しようとすることができます。結果のバケットのキーが小文字で、スペースやその他の句読記号で分割されている場合は、フィールドが分​​析されます。 – ystark

関連する問題