以前Elasticsearchとkibanaインストール。
反転インデックス
正のインデックスへ
ドキュメントに基づいて正変位計、クエリのキーワードを含むすべての文書が見つかるまでキーとしてIDが、テーブルには、文書の各単語スキャン文書、情報のルックアップテーブル内の各単語の位置情報を記録します。
この組織構造は、インデックス作成時に、より便利かつ維持しやすいの確立が比較的簡単な方法で、インデックスが作成された文書に基づいているため、元に連結式の文書に直接新しいインデックス・ブロックを作成するために追加された新しい文書が、存在する場合インデックスファイルの背後にあります。削除された文書、文書に対応する文書数に直接インデックス情報がある場合は、それを直接削除します。照会時にそれが大幅に拡張検索時間、低検索効率を作るように、しかし、すべての文書のスキャンの必要性は、その一切の浮遊性を確保しないように。
が正の変位計の原理は非常に簡単であるが、その低い回収効率の、特定の場合、またはほとんどの実用的な値でない限り。
転置インデックス引用
キーワードインデックスの単語や言葉でテーブルを反転し、記録したエントリに対応する単語や単語のキーワードテーブル内のすべての文書の出現を記録し、テーブルエントリが語セグメントであり、それは文書レコード IDをと文字位置は文書で発生します。
対応する動的変更の文書の数、各単語または句として、テーブルの反転確立および維持はより複雑であるが、キーワードクエリ以来クエリ時に対応するすべての文書を取得するので、効率は容積よりも高くなるようにテーブル。効率が比較的低いが、全体の検索エンジンの効率に影響を与えることはありませんが、フルテキスト検索では、検索は、急速に最も重要なパフォーマンスに応じて、バックグラウンドでのインデックスの結果としてです。
フォワード指数キーワード(キーワード知ら文書化要件)への文書からのマッピングされ、転置インデックスは(キーワードシーク文書を知られている)文書の鍵からのマッピングです。
ドキュメントの内容:
いいえ。 |
ドキュメントの内容 |
1 |
Xiaojunは、車はアウディA8Lで開かれた、テクノロジー企業の創設者で加速し、クールに。 |
2 |
魏は、ある技術は、同社のフロントオープンカーであるポルシェ911 |
3 |
アリスはの魏買ったポルシェ911、加速クールを。 |
4 |
暁明は、ある技術開発会社担当、オープンカーアウディA6 L、加速涼しいです。 |
5 |
シャオジュンはある科学技術会社の開発、車があるBYDのスロービットを加速し、シャープなスピード |
逆ドキュメントのコンテンツのインデックス作成には、より多くの単語のキーワードよりも、あなたがキーに使用できるだろう単語が直接された文書のコンテンツをターゲット。
WordのI D |
単語 |
反転リストDOCID |
1 |
小さな |
1、2 、3 、4 、5 |
2 |
一つ |
1,2,4,5 |
3 |
テクノロジー企業 |
1,2,4,5 |
4 |
開発 |
4,5 |
5 |
車 |
1,2,4,5 |
6 |
アウディ |
1,4 |
7 |
クールを加速 |
1,3,4 |
8 |
ポルシェ |
2 、3 |
9 |
ポルシェ911 |
2 |
1 0 |
BYD |
5 |
高度なクエリ
よると、IDのクエリ
GET / mymayikt /ユーザー/ 12
出会うすべてのドキュメントの現在のタイプ
GET / mymayikt /ユーザー/ _search
よると、複数の ID -volume クエリ
発見より、それぞれのID として 1 、2
GET / mymayikt /ユーザー/ _mget
{
"IDS":[ "1"、 "2"]
}
複雑な問い合わせの条件
クエリの年齢は年齢 21 歳
?GET / mymayikt /ユーザー/ _search Q =年齢:21
クエリ年齢 30 歳-60 歳の間
GET / mymayikt /ユーザー/ _search?Q =年齢[30〜60]
注:TOがしなければならない大きさで、ライト
クエリ年齢 30 年-60 の間および年、年齢降順のから 0 条のデータセクション。1 条データ
GET / mymayikt /ユーザー[30〜60] / _search Q =年齢&ソート=年齢:?DESC&= 0&サイズ= 1から
年齢問い合わせ 30 歳-60 歳との間で、降順で年齢をから 0 Tiaoのデータに最初の 1 Tiaoのデータ、表示名と年齢フィールド
GET / mymayikt /ユーザー[30〜60] / _search Q =年齢&ソート=年齢:?DESC&= 0&サイズ= 1から
&_source =氏名、年齢
DSLの言語クエリとフィルタ
何が DSLの言語は、
ESの2つの方法でクエリ要求、1は別の使用して、クエリの簡易版であるJSON 構造化照会(と呼ばれる完全なリクエストボディ、DSLを)。
ので DSLのクエリより直感的で、より簡単なので、ほとんどこの方法を使用します。
DSLのクエリがあるPOST を過ぎてJSON のために、ポストの要求があるJSON 形式なので、多くの柔軟性があり、多くの形態があります。
よる名前の正確な照会名
GET mymayikt /ユーザー/ _search { "クエリ":{ "期間": { 「名前」:「暁明」 }
}
} |
##用語が何の単語が分析されていない、ある完全一致を表し、文書が全体の検索語が含まれている必要があります
自動車ファジークエリ名
GET / mymayikt /ユーザー/ _search { "から":0、 "サイズ":2、 "クエリ":{ "一致":{
"車": " 奥迪" } } } |
マッチ#### クエリは同等のファジー・マッチングで、ライン上でのキーワードの一部のみが含まれています
T ERM と M ATCH 違い
用語のクエリは、サブワード検索フィールドではありません、それは完全一致を使用します。
マッチは、このフィールドトークナイザベースのワードクエリを実行します。
使用フィルターろ過年齢
GET / mymayikt /ユーザー/ _search { "クエリ":{ "BOOL":{ "必見":[{ "match_all":{} }]、 "フィルタ":{ "範囲": { "age": { "gt": 21, "lte": 51 } }
}
}
}, "from": 0, "size": 10, "_source": ["name", "age"]
} |