1. 背景本番環境での使用では、Elasticsearch では完全一致だけでなく、あいまいなクエリ シナリオも必要になります。 2. 解決策についての議論この問題には、従来から 2 つの解決策があります。 2.1 ソリューション1: ngramトークナイザーngram トークナイザーを使用して、保存されたデータに対してきめ細かいセグメンテーションを実行し、きめ細かいトークンを使用して高速な呼び出しを行います。 これは、スペースを使用して時間を節約し、クエリに必要なルート コンテンツを絞り込み、正確な一致結果を持つ幅広いヒットを使用してファジー効果を実現するソリューションです。
ここに明らかな使用例があります。下の図に示すように、ngram を使用した test2 のインデックス スペースは、keyword を使用した元のインデックス スペースの約 10 倍の大きさになっています。 写真 2.2 ソリューション 2: ワイルドカード クエリワイルドカード クエリを使用します。これは、ワイルドカードをサポートするあいまい検索機能であり、SQL の like 一致に似ています。 ワイルドカードおよび正規表現クエリを実装するために、Ealsticsearch が依存する Lucene4.0 は、入力文字列パターンを DFA (決定性有限オートマトン) に構築します。ただし、ワイルドカード パターンを使用して構築された DFA は複雑でコストがかかる可能性があります。 具体的な分析: https://elasticsearch.cn/article/171 https://elasticsearch.cn/article/186
それぞれに長所があり、一部は互換性に欠ける 2 つのソリューションに直面した ES は、あいまい一致シナリオのニーズを解決するために、バージョン 7.9 でワイルドカード フィールド タイプを導入しました。 3. ワイルドカード型の使用方法の詳細な説明Elasticsearch のワイルドカード フィールド タイプは、バージョン 7.9 で初めて導入されました。このバージョンでは、特に大量のテキスト データを処理する場合に、クエリの効率とファジー マッチングのパフォーマンスを向上させることを目的として、ワイルドカード タイプのサポートが追加されました。この新しい機能は、主に以前のバージョンのワイルドカード クエリのパフォーマンスの問題に対処し、ワイルドカードと正規表現の検索要件をより効率的に処理する方法を提供します。 写真 https://www.elastic.co/guide/en/elasticsearch/reference/7.9/release-highlights.html まず、ワイルドカード型の使い方を見てみましょう。 まずワイルドカードタイプのフィールドを定義します
文書を書く
ワイルドカード クエリは次のようになります。 結果は
大文字と小文字を区別しない場合は、ワイルドカード クエリで case_insensitive パラメータを使用できます。 4. ワイルドカード原則ワイルドカード フィールドの実装に関しては、このフィールドのリリース時に公式から関連する指示が発表されました。 新しいワイルドカード フィールドは、次の 2 つのデータ構造を使用して、ワイルドカードと正規表現の検索を自動的に高速化します。
次に、ES で一般的に使用される doc 値形式が使用されます。ここでの主な効果は、doc 値形式の比較的高い圧縮率が活用され、自動クエリ検証によって n-gram 構文マッチングによって一致候補が生成されることです。 5. テストそれでは、ワイルドカードの実際のパフォーマンスを見てみましょう。 5.1 スペースのサイズ次の図に示すように、ワイルドカード フィールドを使用したインデックスは、元のインデックスとあまり変わらないことがわかります。 写真 5.2 クエリ効率
注: 詳細なインデックス情報はここでは省略します。これは同じインデックスの比較テストであることを知っておくだけで十分です。 まとめると、単一数字のあいまいクエリなど、あいまい検索フィールドの識別力が低い場合、最適化効率 rt は以前のものの約 1/3 になります。識別力が高い場合、最適化効率 rt は以前の約 1/15 となり、明らかな効果が現れます。 6. まとめ1. ワイルドカード フィールド タイプは、ファジー クエリの主な要件を満たし、比較的高いクエリ パフォーマンスも提供すると言えます。 2. ワイルドカードは、ngram トークナイザーに比べてスペース面で大きな利点があります。 3. ワイルドカードには大きな利点がありますが、クエリの効率はデータの識別に密接に関係しています。識別力が低いシナリオでは、効率とパフォーマンスの消費が依然として非常に深刻です。 4. 正確なクエリ シナリオでの ES の優れたパフォーマンス (つまり、用語キーワードの高効率とミリ秒単位の安定した戻り値) と比較すると、ファジー クエリ シナリオでのワイルドカード フィールドの使用には、R&D 担当者が実際のシナリオに基づいてテストおよび選択する必要があります。 7. 著者についてJin Duoan、Elastic 認定エキスパート、Elastic シニア運用保守エンジニア、Elasticsearch ナレッジ プラネット ゲスト、プラネット トップ アクティブ テクニカル エキスパート、サーチャー コミュニティ デイリー エディター Mingyi Tianxia が原稿を確認し、いくつかの細かい調整を加えました。 |
>>: コンテナ環境で「アドレスが利用できません」というメッセージが表示されたことを思い出してください
ヘルスケア業界は、必ずしも IT インフラストラクチャの最新のイノベーションと関連しているわけではあ...
2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますすべてのウ...
経済声「世界企業」の報道によると、昨日(4月30日)午後、インターネット企業Xunleiのウェブサイ...
みなさんこんにちは。私はMuzi Chengzhouです。 SEO 診断は、私が常にやり続けてきた仕...
Mirohost はウクライナの大手企業です。2001 年に事業を開始しました。事業内容は、ドメイン...
SEO はかつてウェブサイト トラフィックの主なソースであり、ここ数年で盛んに実施されてきました。検...
奇妙な現象が起きているサイトがあります。ウェブサイトのキーワードランキングは依然として検索結果の 1...
多くの医療業界はSEOの役割を特に重視していないと思います。結局のところ、Baidu K-stati...
01最近、ネット界で一番ホットな出来事は、小紅書が店頭から撤去されたことだ。 7月29日夕方、小紅書...
5月28日、メディアはテンセントのユーザーに対して大きなジョークを飛ばした。このジョークの背後にある...
エッジコンピューティングとは何ですか? エッジ コンピューティングは、モバイル コンピューティングと...
[51CTO.com からのオリジナル記事] 今日、私たちは情報革命の時代に生きています。情報技術の...
現在、extravmのシンガポールデータセンターのVPS再入荷が40%オフで販売されています。新しい...
数年前、ハイブリッド クラウド バーストの概念は非常に魅力的でした。プライベート クラウドとパブリッ...
fdcservers.net のクリスマス プロモーションが早くも始まりました。最初の 1 か月分を...