このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
mroonga:10.7:tutorial [2020/11/10 16:31] y2sunlight |
mroonga:10.7:tutorial [2020/11/10 17:56] (現在) y2sunlight [クエリ展開] |
||
---|---|---|---|
行 377: | 行 377: | ||
</ | </ | ||
- | 検索結果内の指定されたキーワードを強調表示します。各キーワードを ''< | + | 検索結果内の指定されたキーワードを強調表示します。各キーワードを'' |
詳しくは、Mroongaの[[https:// | 詳しくは、Mroongaの[[https:// | ||
行 385: | 行 385: | ||
==== スニペット ==== | ==== スニペット ==== | ||
- | スニペット(snippet)とは「切れ端」という意味で、検索結果として表示されるページへの短い説明文のことを指します。次のユーザ定義関数を SELECT リスト内で使って、検索語周辺のテキストを検索語をハイライトした状態でHTMLを出力できます。 | + | スニペット(snippet)とは「切れ端」という意味で、検索結果として表示されるページへの短い説明文のことを指します。次のユーザ定義関数を SELECT リスト内で使って、検索語周辺のテキストを検索語をハイライトした状態でHTML出力できます。 |
<code sql> | <code sql> | ||
行 411: | 行 411: | ||
</ | </ | ||
- | 検索結果内の指定されたキーワードを強調表示して、キーワード周辺のテキストを表示します。全体をで囲み | + | 検索結果内の指定されたキーワードを強調表示して、キーワード周辺のテキストを表示します。全体を '' |
より詳細な設定をしたい場合は、次の '' | より詳細な設定をしたい場合は、次の '' | ||
行 420: | 行 420: | ||
SELECT | SELECT | ||
mroonga_snippet( | mroonga_snippet( | ||
- | content | + | content |
- | , 100, 3 | + | , 100 -- スニペットの最大長(バイト単位) |
- | , ' | + | |
- | , 1, 1 | + | , ' |
- | , ' | + | , 1 -- 先頭の空白を無視する(1)か否(0)か |
- | , ' | + | |
- | , ' | + | , ' |
- | , ' | + | |
+ | , ' | ||
+ | , ' | ||
+ | , ' | ||
) as snippet | ) as snippet | ||
FROM diaries | FROM diaries | ||
行 436: | 行 439: | ||
<code sql> | <code sql> | ||
- | ..<span class=" | + | ...<span class=" |
...<span class=" | ...<span class=" | ||
...今日の< | ...今日の< | ||
行 446: | 行 449: | ||
\\ | \\ | ||
- | ==== クエリ展開 | + | ==== クエリ展開 ==== |
- | https:// | + | Mroongaのクエリ展開機能は、同義語や関連語を展開して検索する場合に利用できます。 |
- | の使い勝手が良かった | + | まずは、以下のような関連語テーブルを準備します。以下の例では、検索対象周辺の都道府県を持つ関連語テーブルを例として使用しますが、同義語テーブルなどが一般的かもしれません。 |
<code sql> | <code sql> | ||
+ | CREATE TABLE area ( | ||
+ | name varchar(255), | ||
+ | pref varchar(255), | ||
+ | INDEX (name) | ||
+ | ) ENGINE = Mroonga COLLATE utf8_unicode_ci; | ||
+ | INSERT INTO area VALUES (' | ||
+ | INSERT INTO area VALUES (' | ||
+ | INSERT INTO area VALUES (' | ||
+ | INSERT INTO area VALUES (' | ||
</ | </ | ||
+ | |||
+ | このようなテーブルを準備することによって、「東京」、「神奈川」、「埼玉」の何れが検索語として指定されても「東京」がヒットするようになります。尚、この例のように、'' | ||
+ | |||
+ | === mroonga_query_expand関数 === | ||
+ | |||
+ | 次のユーザ定義関数を '' | ||
+ | |||
+ | < | ||
+ | mroonga_query_expand(table, | ||
+ | </ | ||
+ | |||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | 例 | ||
+ | |||
+ | <code sql> | ||
+ | SELECT * FROM diaries | ||
+ | WHERE MATCH(content) AGAINST(mroonga_query_expand(" | ||
+ | -- または | ||
+ | SELECT * FROM diaries | ||
+ | WHERE MATCH(content) AGAINST(mroonga_query_expand(" | ||
+ | </ | ||
+ | |||
+ | 上の2つは以下の同じ検索結果を表示します。 | ||
+ | |||
+ | <code sql> | ||
+ | 明日の東京都の天気は晴れでしょう。 | ||
+ | </ | ||
+ | |||
+ | 詳しくは、Mroongaの[[https:// | ||
\\ | \\ | ||