ElasticSearch--単語

 

はじめに:

最近、一部のデータがでelasticSearchを使用してチェックアウトしていないことがわかったので、少し研究と、その単語の原因を見つけ、今とかすとまとめます。

 

:ElasticSearch 5.0の後に、文字列型は、文字列フィールドは二つの新しいデータ型に分割され、文字列型を除く、重要な変更されている  テキストのためのフルテキスト検索、およびキーワードのための検索キーワード

マッピングされているElasticSearchのデフォルトの文字列をテキストキーワードの種類は、次の処理が自動的に動的マッピング(ダイナミックマッピング)を作成します:

"relateId":{   "タイプ":" テキスト "   "フィールド":{     "キーワード":{       "タイプ":" キーワード "       "ignore_above":256     }    } }  







これは、フィールドの一部の原因は、自動的に対応するの「.keyword」フィールドを生成されますです。

 

保存されたクエリの例:

relateIdストレージ:20191101R672499460503          1つの値。 

relateId.keywordストレージ:672 499 460 503 R&LT 20191101    3つの値。

 

3つの単語に分割されているようrelateIdこの正確なクエリでは、あなたは、データを見つけることができません。

 

正確なクエリを使用すると、データを見つけることができrelateId.keyword:

 

 

どちらの比較:

テキスト:デフォルトの言葉、そしてインデックス付け、ファジー、正確な問い合わせをサポートし、集約をサポートしていません。

キーワード:言葉を直接インデックスなし、ファジー、正確なクエリとサポート重合をサポート

 

高度な処理:

注意:非常にスマートであるテキストのデフォルトの単語を、が、いくつかのテキストフィールドのための無駄なスペースを使用して、役に立たないいくつかのフィールドインチ そして、あなたは関係なく、言葉、それの、マッピングがanalyziedされていない設定することができます。

" relateId " :{  
  " タイプ"" テキスト" " インデックス"" not_analyzed "   
}

あなたが単語を指定したい場合は次のように使用します。

" relateId " :{  
  " タイプ"" テキスト" " 分析"" ik_max_word " " search_analyzer "" ik_smart " " フィールド" :{
       " キーワード" :{
          " タイプ"" キーワード" " ignore_above "256
      }
  }
}

 

 

 

 

おすすめ

転載: www.cnblogs.com/caoweixiong/p/11791238.html