Module: FullSearch::QueryParser
- Defined in:
- lib/full_search/query_parser.rb
Defined Under Namespace
Classes: Token
Constant Summary collapse
- MAX_QUERY_LENGTH =
255
Class Method Summary collapse
Class Method Details
.parse(query) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/full_search/query_parser.rb', line 12 def parse(query) query = query.to_s.strip validate!(query) tokens = tokenize(query) return [] if tokens.empty? or_clauses = split_or(tokens) if or_clauses.size == 1 parse_and_clause(or_clauses.first) else [:or, or_clauses.map { |clause| parse_and_clause(clause) }] end end |
.to_match_expression(parsed) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/full_search/query_parser.rb', line 27 def to_match_expression(parsed) return '""' if parsed.empty? type, value = parsed case type when :and build_and_expression(value) when :or value.map { |sub| to_match_expression(sub) }.join(" OR ") else node_to_match(parsed) end end |