improved search engine
* it's now possible to search for multiple words ("all words" or "one of the words" options)
* added a fixed limit for result count
git-svn-id: http://redmine.rubyforge.org/svn/trunk@321 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
1 parent
7a20a4d32b
commit
8b98ceb92c
9 files changed
+40
-20
No files matched your search
@@ -16,8 +16,14 @@
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
module ProjectsHelper
|
||||
def result_overview(text, token)
|
||||
match = excerpt(text, token)
|
||||
match ? highlight(match, token) : truncate(text, 150)
|
||||
|
||||
def highlight_tokens(text, tokens)
|
||||
return text unless tokens && !tokens.empty?
|
||||
regexp = Regexp.new "(#{tokens.join('|')})", Regexp::IGNORECASE
|
||||
result = ''
|
||||
text.split(regexp).each_with_index do |words, i|
|
||||
result << (i.even? ? (words.length > 100 ? "#{words[0..44]} ... #{words[-45..-1]}" : words) : content_tag('span', words, :class => 'highlight'))
|
||||
end
|
||||
result
|
||||
end
|
||||
end
|
||||
Reference in new issue
Block a user