[groonga-dev,02334] Re: Groongaのスニペットのタグ上限値512個について

Back to archive index

Kouhei Sutou kou****@clear*****
2014年 5月 22日 (木) 11:44:36 JST


須藤です。

In <CANM+HheYbUTP=kJ8G2hv=QazmVODgzx3J6b4Cata-XRd=BS4gA****@mail*****>
  "[groonga-dev,02332] Groongaのスニペットのタグ上限値512個について" on Thu, 22 May 2014 09:23:55 +0900,
  Naoya Murakami <visio****@gmail*****> wrote:

> ただ、現状、困っていませんし、そもそも、スニペット(断片)という
> ぐらいなのだから、大きな文書全体に対して、スニペット関数を使う
> こと自体、筋違いなのかもしれません。
> ハイライトさせることだけが目的なので、アプリ側で対応するのが
> 筋なんですかね。

なるほど!
スニペットとは別にハイライトするAPIがあるとよさそうな気がし
ました!

RroongaにはPatriciaTrie#tag_keysというAPIがあって、それ相当
の機能を提供するとよいのかなぁと思いました。

  http://www.rdoc.info/github/ranguba/rroonga/Groonga/PatriciaTrie:tag_keys

--
require "groonga"
require "erb"

include ERB::Util
Groonga::Context.default_options = {:encoding => "utf-8"}
Groonga::Database.create
words = Groonga::PatriciaTrie.create(:key_type => "ShortText",
                                     :key_normalize => true)
words.add('ガッ')
words.add('MUTEKI')

text = 'muTEki マッチしない <> ガッ'
other_text_handler = Proc.new do |string|
  h(string)
end
options = {
  :other_text_handler => other_text_handler,
}
tagged_text = words.tag_keys(text, options) do |record, word|
  "<span class=\"keyword\">#{h(word)}</span>"
end
puts "Input:"
puts text
puts "Tagged:"
puts tagged_text
--

実行:
--
% ruby /tmp/a.rb
Input:
muTEki マッチしない <> ガッ
Tagged:
<span class="keyword">muTEki</span> マッチしない &lt;&gt; <span class="keyword">ガッ</span>
--

-- 
須藤 功平 <kou****@clear*****>
株式会社クリアコード <http://www.clear-code.com/> (03-6231-7270)

Groongaサポート:
  http://groonga.org/ja/support/
パッチ採用はじめました:
  http://www.clear-code.com/recruitment/
コードリーダー育成支援はじめました:
  http://www.clear-code.com/services/code-reader/




groonga-dev メーリングリストの案内
Back to archive index