Groonga 4.0.5リリース
今日は肉の日ですね!Groonga 4.0.5 をリリースしました!
それぞれの環境毎のインストール方法: インストール
変更内容
前回 は細かな改良・修正が主でしたが、今回は次のような大きめの機能拡張が入っています。
- クエリー構文(selectの–queryで指定するときの書式) で近傍検索できるようになりました。ドキュメントはまだないので詳細を後述します。
- 実験的ですが、キーワードハイライト用の関数を追加しました。(@naoa_yさん が開発。ドキュメントも書いてくれました!)
- highlight_html(): 対象テキストの中にあるキーワードを
<span class="keyword">...</span>
で囲みます。どのようにハイライトするかはCSSで指定してください。通常はこの関数で十分です。 - highlight_full():
highlight_html()
よりいろいろオプションを指定できるバージョンです。上級ユーザー向けです。
- highlight_html(): 対象テキストの中にあるキーワードを
また、次のような問題を修正しています。groonga-httpd を使っている方、1つの文書に同じトークンが大量に含まれる方はアップグレードをオススメします。
- バンドルしているnginxを1.7.4に更新しました。セキュリティー関連の修正を含んでいます。
- 1つの文書に同じトークンが大量に含まれている場合、インデックス構築時に無限ループが発生する問題を修正しました。
近傍検索
これまで、 スクリプト構文(selectの–filterで指定するときの書式)では近傍検索できた (スクリプト構文で近傍検索するときのドキュメントはあります)のですが、今回のリリースからクエリー構文( select
の --query
で指定するときの書式)でもできるようになりました。
通常の検索ではキーワードが文書中のどこかに含まれていればヒットします。
例えば、次のクエリーを考えます。
--query '渋谷 ラーメン'
この場合は、「渋谷でラーメンを食べた。」もヒットしますし、「新宿でラーメンを食べた。その後、渋谷に行った。」もヒットします。
フレーズ検索ではキーワードが指定した順番に出現していればヒットします。
例えば、次のクエリーを考えます。このクエリーは「渋谷」、「で」、「ラーメン」が順番に出現すればヒットします。
--query '"渋谷 で ラーメン"'
この場合は、「渋谷でラーメンを食べた。」はヒットしますが、「渋谷で味噌ラーメンを食べた。」はヒットしません。「で」と「ラーメン」の間に「味噌」が入っているからです。
今回から --query
でも指定できるようになった近傍検索は少し緩いフレーズ検索のような挙動になります。キーワードの出現した順番も大事ですが、キーワードの間にいくつか他のキーワードが入っていてもヒットします。
例えば、次のクエリーを考えます。このクエリーは「渋谷」、「ラーメン」が順番に出現すればヒットします。「渋谷」と「ラーメン」の間に10個までなら他のキーワードが入っていてもヒットします。
--query '*N"渋谷 ラーメン"'
この場合は、「渋谷でラーメンを食べた。」もヒットしますし、「渋谷で味噌ラーメンを食べた。」もヒットします。「渋谷でラーメン」は「渋谷」と「ラーメン」の間に「で」が入っていますが、間に入っているキーワードが1個なのでヒットします。「渋谷で味噌ラーメン」も「で」と「味噌」が入っていますが2個なのでヒットします。
間に何個別のキーワードを許容するかは N
の後に指定します。
次の例は1個まで間にキーワードを許容します。「渋谷でラーメン」はヒットしますが、「渋谷で味噌ラーメン」はヒットしません。
--query "*N1"渋谷 ラーメン"'
公式ドキュメントには --query
で使うときの説明はまだありませんが( --filter
で使うときの説明はあります)、ぜひ試してみて自分のブログやQiitaなどに使い方をまとめてみてください!
イベントのお知らせ
来月は、次のGroonga関連イベントがあります。都合のつくGroongaユーザーのみなさんはぜひ参加してください!
- ConoHa presents - Groonga "How-To" Talks
- この勉強会のテーマは「How-To」です。参加者がGroongaの具体的な使い方を勉強できる会を目指します。MroongaやRroongaなどGroonga関連プロジェクトも扱います。
- 日時: 2014-09-03(水)19:30
- 場所: GMOインターネットグループ シナジーカフェ GMO Yours
さいごに
4.0.4からの詳細な変更点は 4.0.5リリース 2014/08/29 を確認してください。
それでは、Groongaでガンガン検索してください!