- インデックス作成とは何ですか?
- 全文とは何ですか?
私は両方の質問に対する答えを知っていますが、インタビュアーに正確な方法でそれらの答えを公開することはできません。
- 索引付けとは、本の索引のようなものを意味します
- 全文は検索文字列を意味します
これらの質問のそれぞれについて、非常に簡単な定義を教えてください。
私は両方の質問に対する答えを知っていますが、インタビュアーに正確な方法でそれらの答えを公開することはできません。
これらの質問のそれぞれについて、非常に簡単な定義を教えてください。
インデックス作成は、インデックスを作成するプロセスです。インデックスは、SQL(またはより一般的にはDBMSまたは検索エンジン)が、含まれるフィールドの1つ(または複数)の値に基づいて、非常に効率的な方法でレコードを検索できるようにする構造です。
たとえば、データベースには、学生ID、名前、生年月日、電話番号などの学生レコードを含むテーブルが含まれている場合があります。電話番号にインデックスを作成することで、電話番号に基づいて学生を検索できます。インデックスがない場合、システムは同じレコードを検出しますが、この操作は、すべてのレコードを調べて、目的の電話番号と比較することによって実行されます。
フルテキストインデックスは、1つ(またはテキストを含む複数のフィールド)のインデックスを作成するプロセスです。フィールドの完全な値(または場合によっては単純な正規表現)を目的の検索値と比較することに基づく通常のインデックスとは異なり、FullTextインデックスは、フィールド内で見つかった単語に基づいてレコードを検索できます。
たとえば、書誌データベースには、ISBN、著者、タイトル、タイプ、価格などのフィールドを持つ本を説明するレコードが含まれている場合があります。タイトルフィールドの全文索引(「カタログ」と呼ばれることもあります)を使用すると、「男」という単語で検索すると、「老人と海」というタイトルの本を効率的に見つけることができます。
フルテキストエンジンには通常、テキストに関連する言語概念の組み込みのパラメータ化可能な「理解」があります。たとえば、「ノイズワード」(「ストップワード」とも呼ばれます)は、テキストで頻繁に見られる単語です(たとえば、英語では「the」、「and」、「of」、「in」)は無視できます。インデックスサイズを最小限に抑え、より選択的な単語での検索をより効率的にします。また、フルテキストエンジンは、単語のさまざまな文法形式、たとえば単数形および複数形の単語(インチとインチ、足と足、猫と猫など)、または動詞の活用(キャッチ、キャッチなど)を認識している場合があります。およびキャッチまたは解釈、解釈、解釈)。この文法的な認識のおかげで、
フルテキストエンジンは通常、ユーザーが目的の検索の特定の要素を指定できるようにする検索言語/構文も公開します。たとえば、「man」という単語から5語以内の「sea」という単語を検索します。または、「湖」または「海」という単語と「水」という単語などを検索します。
mysqlのインデックスは、列の各値(または列のセットの値)から、その列のその値(または列のセットの値)を含む行へのマッピングです。
列の全文索引は、各単語(通常は空白で区切られている)からその単語を含む行のセットへのマッピングです。
通常のインデックス:id:1 "bar" id:2 "foo baz"
「foo」を検索->結果なし。「foobaz」を検索->id:2の行「bar」を検索-> id:1の行
全文索引:id:1 "bar" id:2 "foo baz"
「foo」を検索->id:2の行「foobaz」を検索-> id:2の行「bar」を検索-> id:1の行