ときElasticsearchカスタムフィールドのオプションが役割を規範
この記事ではElasticSearchにおける電界効果パラメータの規範(テキストおよびキーワード)の2種類を説明しています。
設定は、マッピング:あなたはインデックスESを作成すると、一般的な構成の2種類の情報を指定。データストレージ(いくつかのフラグメント、いくつかのコピー)に関する設定、およびデータ・モデルのマッピングは、テーブルの構造が同様のMySQLで定義します。キーワードとテキスト:各フィールドの種類に指定されたマッピング情報は、ElasticSearchは、このような故障のようなものとなっている文字列、数値、日付... Stringとしてのフィールドの複数のタイプ(フィールドのデータ型)を、サポートしています。索引を作成する場合、各フィールドは、例えば、指定するため、及びフィールドタイプを定義します。
PUT my_index
{
"settings": {
"number_of_shards": 1,
"number_of_replicas": 0
},
"mappings": {
"_doc": {
"_source": {
"enabled": true
},
"properties": {
"title": {
"type": "text",
"norms": false
},
"overview": {
"type": "text",
"norms": true
},
"body": {
"type": "text"
},
"author": {
"type": "keyword",
"norms": true
},
"chapters": {
"type": "keyword",
"norms": false
},
"email": {
"type": "keyword"
}
}
}
}
}
タイトルフィールドタイプのmy_indexインデックスは、テキストである、と著者フィールドタイプがキーワードです。
テキスト型フィールドの場合、デフォルトでは、規範を開き、フィールドのキーワードタイプには、デフォルトの規範ではオフになっています
クエリを得点するとき、フィールドの長さが考慮されるべきであるかどうか。真(テキスト提出データ型)または偽(キーワード提出データ型を)受け入れ
フィールドのキーワードタイプがデフォルト規範で無効になっているのはなぜでしょうか?理解キーワード文字列型:インデックスにフィールドを行いますが、ない文字列値を分析していない、 すなわち:キーワードタイプフィールドがあるアナライザないシングルのトークンである1の用語、「に分析します」フィールドので、不要フィールド長(fieldNorm)が存在しない、tfNorm(用語頻度ノルム) 正規化因子の。テキストフィールドは、用語の多くが存在してもよい、分析の種類(分析)分析は、条件の数、テキストフィールドの二つのタイプを生成することで、そのような記事のタイトルとして(唯一の他のいくつかの用語(例えば、記事のテキストなど) )、マルチフィールドクエリで、我々は、テキストフィールドタイプのオプションは、それのデフォルトの理由の規範で有効になっている理由である、正規の長さを必要としています。また、Luceneのスコアリングアルゴリズムに共通に使用される二種類:TF-IDFとBM25を、TF-IDFは、高い評価を短い長さフィールドを与える傾向があります。
どのような役割規範?
規範は、ドキュメント/ワードスコア(スコア)を計算するために使用される「調節因子」。BM25のアルゴリズムは、具体的に参照して、規範パラメータを使用しているときにTF-IDFは、ドキュメントのスコアが計算され、この記事得点式Luceneのドキュメントです。
フィールドの数があり、文書(ドキュメント)ElasticSearch。クエリパーサー(QueryParser)ユーザ規約を解析クエリ文字列に入力され、様々な分野のそれぞれに合わせて、複数のフィールドの検索は、用語れ、スコアは、各フィールドに対して計算される、各フィールドのスコアを介していくつかの方法(IN単語を中心としたセンターを検索するための検索フィールド対)は、文書の最終的なスコアを取得するために組み合わせます。
ES公式文書規範については、説明します。
規範は、後で比較的クエリに文書のスコアを計算するために、クエリ時に使用される種々の正規化係数を格納します。
ここでは、クエリ文書のスコアを高めるための正規化係数が計算されます。文書は、いくつかの微調整をブースト、BM25スコアアルゴリズムを与えられた式に従って計算される。例えば、の計算で行われます。
規範の価格
オープン規範の後、各文書の各フィールドには、ストレージ・規範のバイトが必要です。テキストフィールドのタイプについて規範の面ではデフォルトで有効になっているので、得点しないフィールドのテキストタイプのために、あなたはそれの曲の利点とみなすことができる規範を、無効にすることができます。
スコアリングのために有用であるが、規範は、(一般的に、あなたのインデックス内のフィールドごとに、文書ごとに1バイトの順であっても、この特定のフィールドを持っていない文書について)ディスクのかなり多くが必要です。あなたが特定のフィールドに得点を必要としない場合は結果として、あなたはそのフィールド上の規範を無効にする必要があります
索引時間の一部を高めるに属する規範係数は、それは次のとおりです。インデックスファイル(書かれた文書が)、それは、保存されたクエリ時にメモリから読み出さ昇圧すべての要因を持っている場合、スコア計算に参加しています。言葉で「アクションでのLucene」を参照します。
インデックス作成時に、インデックス時間ブーストのすべてのソースは、文書内の各インデックスフィールドのための単一の浮動小数点数に組み合わされます。ドキュメントには、独自のブーストを有していてもよいです。各フィールドには、ブーストを有していてもよいです。そしてLuceneのフィールド内のトークン数(短いフィールドはより高いブーストを持っている)に基づいて自動的にブーストを計算します。これらブーストを合わせ、次いで、コンパクト文書ごとフィールドごとに格納されている単一バイトに(量子化)符号化されます。検索時、検索される任意フィールドのための規範は、メモリにロードされたバック浮動小数点数に復号化、及び関連性スコアを計算するときに使用されます。
「Solrのためのアプリケーションと関連した検索:昇圧探索時間昇圧クエリで指定された因子を昇圧し、その後ダイナミック得点は、文書、特定の基準計算の別の種類 、及びelasticsearch」 本明細書で詳細に説明しません。しかし、それは注目に値する:現在のESバージョンもはや後押しインデックス時間を推奨されていないが、むしろ後押し検索時間をお勧めします。次の書類によって与えられた公式の理由は、ES:
- 後押し要因は、インデックスファイル(オープン規範オプション)に格納され、一度保存し、それを変更することはできません。のみREINDEXインデックスを変更するには
- 検索時間同じを高める効果とインデックス時間を高め、検索時間は、動的要因(ただし、文書スコアを計算するときに、それはより多くのCPUを消費し)、より高い柔軟性を高める指定する能力を高めます。追加のストレージスペースの必要性を高め、インデックス時間
- フィールド規範に格納された係数を昇圧インデックスタイムは、それはあまり正確文書類似度算出結果につながる、フィールド長の正規化に影響を与える(低品質の関連性の計算)
添付:my_indexインデックスマッピング情報は:
GET my_index/_mapping
{
"my_index": {
"mappings": {
"_doc": {
"properties": {
"author": {
"type": "keyword",
"norms": true
},
"body": {
"type": "text"
},
"chapters": {
"type": "keyword"
},
"email": {
"type": "keyword"
},
"overview": {
"type": "text"
},
"title": {
"type": "text",
"norms": false
}
}
}
}
}
}