1

タイトル列を持つ「ファクト」という名前のテーブルがあります。これは全文インデックスである必要があります。

まず、全文索引を追加します。

ALTER TABLE fact ADD FULLTEXT title_fts (title)

だから、私は行を挿入します:

INSERT INTO fact (id, title) VALUES ('1', 'red blue yellow ok green grey ten first wise form');

そして、検索を実行します。

select * from fact f where contains (f.title, '"red" or "blue"')

次のクエリ、または「contains」ステートメントを含むその他のクエリを実行すると、空の結果セットが得られます。

私はこのステートメントを使用する必要があります。反対の一致などではありません。なぜこれが起こっているのか、誰かがたまたま考えているのですか?ありがとうございました。

4

1 に答える 1

4

全文検索を使用する場合、非常に重要な概念2 つあります。1 つ目は最小作業長さです (こちらを参照)。デフォルトの値は 4 で、これより短い単語は無視されます。さようなら「赤」、「OK」、「10」などの短い言葉。

2 番目に重要な概念は、ストップ ワード リストです (こちらを参照)。これにより、「ok」と「first」も削除されます。

テキストには「青」がなく、「赤」は無視されるため、クエリは何も返しません。

本当に含める必要がある単語を決定したら、インデックスを再構築する必要があります。

于 2015-07-01T14:43:21.157 に答える