EOF
response.to_a
end
private
def query(request)
request['query'] || ''
end
def words(request)
query(request).split
end
def render_search_box(request, response)
response.write(<<-EOF)
EOF
end
def render_search_result(request, response)
_words = words(request)
if _words.empty?
records = []
response.write(<<-EOS)
Rubyでgroonga使って全文検索
EOS
else
offset = 0
options = {}
before = Time.now
records = @documents.select do |record|
expression = nil
_words.each do |word|
sub_expression = record["content"] =~ word
if expression.nil?
expression = sub_expression
else
expression &= sub_expression
end
end
expression
end
total_records = records.size
records = records.sort([[".:score", "descending"],
[".last-modified", "descending"]],
:limit => 20)
elapsed = Time.now - before
response.write(<<-EOS)