投稿

ラベル(日本語全文検索エンジンクエリ文)が付いた投稿を表示しています

cockroachDB用の日本語全文検索エンジンクエリ文

  CockroachDB用の日本語全文検索クエリ文を以下にまとめます。 1. インデックス作成と設定 ```sql -- 日本語全文検索用のインデックス作成(INVERTED INDEXを使用) CREATE INVERTED INDEX documents_content_idx ON documents (content); -- 複数列に対する全文検索インデックス CREATE INVERTED INDEX documents_title_content_idx ON documents (title, content); -- インデックスの確認 SHOW INDEXES FROM documents; -- インデックスの削除 DROP INDEX documents_content_idx; ``` 2. 基本的な全文検索クエリ ```sql -- 単純な全文検索 SELECT * FROM documents WHERE content @@ '検索語'; -- 複数語の検索(AND条件) SELECT * FROM documents WHERE content @@ '検索 & 語'; -- 複数語の検索(OR条件) SELECT * FROM documents WHERE content @@ '検索 | 語'; -- フレーズ検索 SELECT * FROM documents WHERE content @@ '全文検索'; ``` 3. 高度な検索クエリ ```sql -- 前方一致検索 SELECT * FROM documents WHERE content @@ '検索:*'; -- 特定のフィールドでの検索(複合インデックス使用時) SELECT * FROM documents WHERE title @@ 'タイトル' AND content @@ '内容'; -- 重み付け検索(スコアリング) SELECT *, jsonb_pretty(ts_debug('english',...

Postgre SQLの日本語全文検索エンジンクエリ文

  PostgreSQLの日本語全文検索に関するクエリ文を以下にまとめます。 1. テキスト検索設定の作成 ```sql -- 日本語用のテキスト検索設定を作成 CREATE TEXT SEARCH CONFIGURATION japanese (COPY = pg_catalog.simple); -- 形態素解析用のパーサを指定(pg_bigmなど別途インストールが必要な場合も) CREATE TEXT SEARCH DICTIONARY japanese_ispell ( TEMPLATE = ispell, DictFile = japanese, AffFile = japanese, StopWords = japanese ); -- 設定に辞書を割り当て ALTER TEXT SEARCH CONFIGURATION japanese ALTER MAPPING FOR word, asciiword, numword, hword, hword_part, hword_asciipart, hword_numpart WITH japanese_ispell, simple; ``` 2. 全文検索インデックスの作成 ```sql -- tsvector型のカラムを追加 ALTER TABLE documents ADD COLUMN document_tsv tsvector; -- GINインデックスの作成 CREATE INDEX documents_tsv_idx ON documents USING GIN(document_tsv); -- インデックスを更新する関数 CREATE OR REPLACE FUNCTION documents_tsv_trigger() RETURNS trigger AS $$ begin new.document_tsv := to_tsvector('japanese', coalesce(new.title, '') || ' ' || coalesce(new.content, '')); return new; end $$ LANGUAGE p...